CVE-2026-54516:
Java 취약성 분석 및 완화
개요
CVE-2026-54516 is an authorization bypass vulnerability in FasterXML jackson-databind, described as "Renamed @JsonIgnore'd setters can deserialize via private fields." It affects com.fasterxml.jackson.core:jackson-databind versions >= 2.21.0 and < 2.21.4, and tools.jackson.core:jackson-databind versions >= 3.0.0 and < 3.1.4. The vulnerability was discovered by Omkhar Arasaratnam (@omkhar), fixed internally on May 6, 2026, and publicly disclosed via GitHub Security Advisory on June 23, 2026. It carries a CVSS v3.1 base score of 5.3 (Medium) (GitHub Advisory).
기술적 세부 사항
The root cause is classified as CWE-915 (Improperly Controlled Modification of Dynamically-Determined Object Attributes). The flaw resides in POJOPropertiesCollector._renameProperties(): when a POJO property has @JsonProperty("renamed") on its getter and @JsonIgnore on its setter, the property is renamed rather than dropped as intended. With MapperFeature.INFER_PROPERTY_MUTATORS enabled (the default), the private backing field is retained in the property descriptor. During deserialization, BeanDeserializerFactory.addBeanProps() detects hasField()==true, constructs a FieldProperty, and makes the backing field writable — allowing an attacker to supply the renamed JSON key and write directly to the private field, bypassing the @JsonIgnore annotation on the setter. The fix adds a prop.removeFields() call in _renameProperties() to strip inferred non-visible field mutators when the setter is ignored (GitHub Advisory, Fix PR #5967).
영향
Successful exploitation enables an unauthenticated, network-accessible attacker to write arbitrary values to private backing fields of Java objects that were intended to be read-only (serialization-only). This constitutes property tampering or mass assignment, allowing attacker-controlled data to silently populate fields that application logic assumes cannot be set via deserialization. The advisory explicitly notes this is not a general gadget chain and does not enable remote code execution; the integrity impact is low and there is no confidentiality or availability impact (GitHub Advisory).
착취 단계
- Identify target application: Locate a Java application that uses jackson-databind 2.21.0–2.21.3 or 3.0.0–3.1.3 and accepts JSON input for deserialization into POJOs.
- Identify vulnerable POJO pattern: Inspect the application's data model (via source code review, API documentation, or fuzzing) for classes where a getter carries
@JsonProperty("renamedKey")and the corresponding setter carries@JsonIgnore, creating a field intended to be read-only over the wire. - Craft malicious JSON payload: Construct a JSON request body containing the renamed property key (e.g.,
{"renamedProp": "attacker-controlled-value"}) that the application would normally reject or ignore during deserialization. - Submit payload: Send the crafted JSON to the application endpoint that deserializes the target POJO (e.g., via HTTP POST to a REST API).
- Achieve field write: Due to the vulnerability, jackson-databind builds a
FieldPropertyfor the private backing field and writes the attacker-supplied value directly, bypassing the@JsonIgnoreprotection — resulting in the private field being set to the attacker's value without going through the ignored setter (GitHub Advisory, Fix PR #5967).
완화 및 해결 방법
Upgrade jackson-databind to version 2.21.4 (for the 2.21.x branch) or 3.1.4 (for the 3.x branch), which contain the fix via prop.removeFields() in POJOPropertiesCollector._renameProperties(). As a temporary workaround, disable MapperFeature.INFER_PROPERTY_MUTATORS on your ObjectMapper if feasible for your application, which prevents the inferred field mutator from being retained. Apache Spark users should note that the Spark project has already issued a dependency upgrade to jackson 2.21.4 (SPARK-57273) (GitHub Advisory, Fix PR #5967, Backport PR #5968).
커뮤니티 반응
The vulnerability was reported by Omkhar Arasaratnam and fixed by the jackson-databind maintainer (cowtowncoder), who characterized the severity as "minor" while the reporter assessed it as "HIGH" — the published CVSS score of 5.3 (Medium) reflects a middle ground. The fix was merged on May 6, 2026, and the advisory was published on June 23, 2026, following a coordinated disclosure period. The vulnerability received routine coverage from CVE aggregation services and was noted in the Bluesky CVE feed, but has not generated significant broader security community discussion (GitHub Advisory).
추가 자료
근원: 이 보고서는 AI를 사용하여 생성되었습니다.
관련 Java 취약점:
무료 취약성 평가
클라우드 보안 태세를 벤치마킹합니다
9개의 보안 도메인에서 클라우드 보안 관행을 평가하여 위험 수준을 벤치마킹하고 방어의 허점을 식별합니다.
추가 Wiz 리소스
맞춤형 데모 받기
맞춤형 데모 신청하기
"내가 본 최고의 사용자 경험은 클라우드 워크로드에 대한 완전한 가시성을 제공합니다."
"Wiz는 클라우드 환경에서 무슨 일이 일어나고 있는지 볼 수 있는 단일 창을 제공합니다."
"우리는 Wiz가 무언가를 중요한 것으로 식별하면 실제로 중요하다는 것을 알고 있습니다."