CVE-2026-54514
Java 취약성 분석 및 완화

개요

CVE-2026-54514 is a Server-Side Request Forgery (SSRF) vulnerability in FasterXML jackson-databind caused by eager DNS resolution during InetSocketAddress deserialization. The JDKFromStringDeserializer class used new InetSocketAddress(host, port), which triggers an immediate DNS lookup for attacker-controlled hostnames at deserialization time — before any application-level validation or connection logic can execute. Affected versions span com.fasterxml.jackson.core:jackson-databind >= 2.0.0 < 2.18.8, >= 2.19.0 < 2.21.4, and >= 3.0.0 < 3.1.4. The vulnerability was discovered by Omkhar Arasaratnam (@omkhar), fixed on June 4, 2026, and publicly disclosed on June 16–23, 2026. It carries a CVSS v3.1 base score of 5.3 (Medium) (GitHub Advisory, FasterXML Advisory).

기술적 세부 사항

The root cause is classified as CWE-918 (Server-Side Request Forgery). The vulnerable code path in FromStringDeserializer.java called new InetSocketAddress(host, port), which the Java runtime resolves eagerly via DNS at construction time. When an application deserializes untrusted JSON containing a hostname in an InetSocketAddress-bearing field, the readValue() call triggers an outbound DNS query to an attacker-chosen hostname before any validation occurs. The fix, implemented in PR #5951 (commit 1f5a103), replaces this with InetSocketAddress.createUnresolved(host, port), deferring DNS resolution until an explicit network connect is made (FasterXML PR, Fix Commit).

영향

An unauthenticated attacker who can supply malicious JSON to an application that deserializes InetSocketAddress fields can force the server to issue arbitrary DNS queries to attacker-controlled hostnames. This enables DNS-based out-of-band interaction (e.g., DNS exfiltration), internal resolver probing to map internal network topology, and potential information leakage about the application's network configuration. There is no integrity or availability impact; the confidentiality impact is limited to low-level network reconnaissance (GitHub Advisory).

착취 단계

  1. Reconnaissance: Identify applications using a vulnerable version of jackson-databind (>= 2.0.0 < 2.18.8, >= 2.19.0 < 2.21.4, or >= 3.0.0 < 3.1.4) that accept JSON input and deserialize it into types containing InetSocketAddress fields.
  2. Set up DNS monitoring: Configure an attacker-controlled DNS server or use an out-of-band interaction platform (e.g., Burp Collaborator, interactsh) to capture incoming DNS queries.
  3. Craft malicious JSON: Construct a JSON payload with a hostname field pointing to the attacker-controlled domain, e.g., {"address": "attacker-controlled.example.com:1234"}.
  4. Submit payload: Send the crafted JSON to the target application's API endpoint that deserializes the input into an InetSocketAddress-bearing type.
  5. Observe DNS query: Confirm that the target server issues a DNS lookup for attacker-controlled.example.com upon calling readValue(), before any application validation runs — confirming the vulnerability and revealing the server's DNS resolver and potentially internal network details (FasterXML Advisory, FasterXML PR).

타협의 징후

  • Network: Unexpected outbound DNS queries from the application server to external or unusual hostnames, particularly those not associated with normal application operation; DNS queries originating from the JVM process to attacker-controlled domains.
  • Logs: Application logs showing readValue() calls on JSON inputs containing hostname strings in InetSocketAddress fields; DNS resolver logs recording queries to unfamiliar external domains initiated by the application server.
  • Process: Java process making DNS resolution calls at deserialization time rather than at connection time, observable via network monitoring tools (e.g., tcpdump, Wireshark) capturing DNS traffic from the application host.

완화 및 해결 방법

Upgrade com.fasterxml.jackson.core:jackson-databind to version 2.18.8, 2.21.4, or 3.1.4 (or later), which replace the vulnerable new InetSocketAddress(host, port) call with InetSocketAddress.createUnresolved(host, port). As a workaround, implement input validation to restrict or sanitize hostname values in JSON before deserialization, or use Jackson deserialization filters to block or restrict InetSocketAddress types if they are not required by the application. Applications that do not deserialize untrusted JSON into types containing InetSocketAddress fields are not affected (GitHub Advisory, FasterXML PR).

커뮤니티 반응

The vulnerability was reported by Omkhar Arasaratnam and characterized by the jackson-databind maintainer (cowtowncoder) as "minor" in severity, while the reporter rated it "LOW." The fix was quietly merged in May 2026 and released in early June 2026 before the CVE was publicly disclosed in mid-June 2026. The disclosure triggered a wave of automated dependency update pull requests across numerous open-source projects (including Apache Spark, Grafana, and others), reflecting the widespread use of jackson-databind in the Java ecosystem (FasterXML Advisory, FasterXML PR).

추가 자료


근원이 보고서는 AI를 사용하여 생성되었습니다.

관련 Java 취약점:

CVE ID

심각도

점수

기술

구성 요소 이름

CISA KEV 익스플로잇

수정 사항이 있습니다.

게시된 날짜

CVE-2026-54518NONE해당 사항 없음
  • JavaJava
  • jackson-databind
아니요Jun 25, 2026
CVE-2026-54517NONE해당 사항 없음
  • JavaJava
  • jackson-databind
아니요Jun 25, 2026
CVE-2026-54516NONE해당 사항 없음
  • JavaJava
  • infinispan-16.0
아니요Jun 25, 2026
CVE-2026-54515NONE해당 사항 없음
  • JavaJava
  • com.fasterxml.jackson.core:jackson-databind
아니요Jun 25, 2026
CVE-2026-54514NONE해당 사항 없음
  • JavaJava
  • com.fasterxml.jackson.core:jackson-databind
아니요Jun 25, 2026

무료 취약성 평가

클라우드 보안 태세를 벤치마킹합니다

9개의 보안 도메인에서 클라우드 보안 관행을 평가하여 위험 수준을 벤치마킹하고 방어의 허점을 식별합니다.

평가 요청

추가 Wiz 리소스

맞춤형 데모 받기

맞춤형 데모 신청하기

"내가 본 최고의 사용자 경험은 클라우드 워크로드에 대한 완전한 가시성을 제공합니다."
데이비드 에슬릭최고정보책임자(CISO)
"Wiz는 클라우드 환경에서 무슨 일이 일어나고 있는지 볼 수 있는 단일 창을 제공합니다."
아담 플레처최고 보안 책임자(CSO)
"우리는 Wiz가 무언가를 중요한 것으로 식별하면 실제로 중요하다는 것을 알고 있습니다."
그렉 포니아토프스키위협 및 취약성 관리 책임자