CVE-2026-54517:
Java 취약성 분석 및 완화
개요
CVE-2026-54517 is an incorrect authorization vulnerability in FasterXML jackson-databind that allows unauthenticated network attackers to bypass @JsonView access controls on setterless Collection/Map properties. The flaw affects versions 2.21.0 through 2.21.3 and 3.0.0 through 3.1.3 of jackson-databind. It was discovered by Omkhar Arasaratnam (@omkhar), with the fix merged on May 6–7, 2026 and the advisory published on June 23, 2026. It carries a CVSS v3.1 base score of 5.3 (Medium) (GitHub Advisory).
기술적 세부 사항
The root cause (CWE-863: Incorrect Authorization) lies in BeanDeserializer._deserializeUsingPropertyBased(), where the active-view (@JsonView) filter was applied only to creator properties but not to the regular property-buffering branch. A prior change caused SetterlessProperty.isMerging() to return true, routing setterless Collection/Map properties through this unguarded code path. As a result, when a JSON payload is deserialized under a restricted view (e.g., PublicView), setterless properties annotated with a more privileged view (e.g., @JsonView(AdminView.class)) are still populated from attacker-controlled JSON because the prop.visibleInView(activeView) check is never performed. The fix adds an explicit view check in the buffering branch, skipping properties not visible in the active view (GitHub Advisory, Fix Commit 3.x, Fix Commit 2.x).
영향
Successful exploitation allows an unauthenticated remote attacker to write data into view-restricted (e.g., admin-only) setterless Collection or Map properties by sending crafted JSON, effectively bypassing intended access-control and mass-assignment protections. There is no risk of remote code execution or denial of service; the impact is limited to integrity — specifically, unauthorized modification of restricted data fields. Applications that rely solely on @JsonView annotations to gate sensitive properties (such as role lists or privilege sets) are most at risk, as those properties can be silently populated from untrusted input (GitHub Advisory).
착취 단계
- Reconnaissance: Identify applications using jackson-databind versions 2.21.0–2.21.3 or 3.0.0–3.1.3 that expose JSON deserialization endpoints (e.g., REST APIs accepting
Content-Type: application/json). - Identify target model: Determine if the target application uses
@JsonCreator-annotated constructors alongside setterless Collection/Map properties (no setter method) that are restricted by@JsonViewannotations (e.g.,@JsonView(AdminView.class)). - Craft malicious payload: Construct a JSON payload that includes the restricted property (e.g.,
"roles") alongside the required creator property (e.g.,"name"). Placing the restricted property before the creator property forces the buffering code path:{"roles":["admin"],"name":"alice"}. - Submit under restricted view: Send the crafted JSON to the target endpoint while the application is operating under a non-privileged view (e.g.,
PublicView). The missingvisibleInViewcheck causes the restrictedrolescollection to be populated despite the active view excluding it. - Verify bypass: Confirm that the restricted property was written by observing application behavior (e.g., elevated privileges, modified role assignments) that should not be possible under the active view (GitHub Advisory, Fix PR #5969).
타협의 징후
- Network: Unexpected JSON payloads to REST API endpoints containing fields that should be restricted by view (e.g.,
roles,permissions,adminFields) submitted by unauthenticated or low-privilege clients. - Logs: Application logs showing deserialization of view-restricted properties (e.g., admin-only collection fields) being populated during requests authenticated under a lower-privilege view; anomalous privilege escalation events following JSON deserialization.
- Application Behavior: Unexpected population of admin-only or restricted Collection/Map fields (e.g., role lists, permission sets) in objects deserialized from untrusted JSON input, detectable via application-level audit logging of object state post-deserialization.
완화 및 해결 방법
Upgrade jackson-databind to version 2.21.4 (for the 2.x line) or 3.1.4 (for the 3.x line), which include the fix for this vulnerability. A backport to version 2.18.8 was also released. As a workaround where immediate upgrade is not possible, avoid relying on @JsonView as the sole access-control mechanism for sensitive setterless Collection/Map properties — implement additional server-side validation or use explicit setter methods with proper authorization checks. Apache Spark users should note that upgrading to Jackson 2.21.4 is tracked under SPARK-57273 (GitHub Advisory, Fix PR #5969).
커뮤니티 반응
The vulnerability was rated "Moderate" by the maintainer (FasterXML) but "HIGH" by the reporter, reflecting differing assessments of real-world impact. HeroDevs published a vulnerability directory entry for CVE-2026-54517 shortly after disclosure. No significant broader media coverage or notable community debate has been observed beyond standard CVE tracking and aggregator sites.
추가 자료
근원: 이 보고서는 AI를 사용하여 생성되었습니다.
관련 Java 취약점:
무료 취약성 평가
클라우드 보안 태세를 벤치마킹합니다
9개의 보안 도메인에서 클라우드 보안 관행을 평가하여 위험 수준을 벤치마킹하고 방어의 허점을 식별합니다.
추가 Wiz 리소스
맞춤형 데모 받기
맞춤형 데모 신청하기
"내가 본 최고의 사용자 경험은 클라우드 워크로드에 대한 완전한 가시성을 제공합니다."
"Wiz는 클라우드 환경에서 무슨 일이 일어나고 있는지 볼 수 있는 단일 창을 제공합니다."
"우리는 Wiz가 무언가를 중요한 것으로 식별하면 실제로 중요하다는 것을 알고 있습니다."