🔍 CVE-2026-54515

5.3
CVSS Score
MEDIUM
2026-06-23
2026-10-25 23:10
✅ 완료

🇰🇷 한글 설명

jackson-databind의 BeanDeserializerBase.createContextual() 메서드에서 @JsonIgnoreProperties를 통한 속성 제외 기능이 제대로 작동하지 않는 취약점입니다. @JsonFormat(ACCEPT_CASE_INSENSITIVE_PROPERTIES) 설정이 활성화될 경우, 필터링된 속성 맵이 원래의 필터링되지 않은 맵으로 덮어씌워져 무시되어야 할 속성이 다시 활성화됩니다. 이로 인해 보안상 제외되었어야 할 속성이 다시 쓰기 가능해질 수 있습니다.

💡 쉬운 설명

데이터를 읽어올 때 특정 항목을 숨기도록 설정해도, 대소문자 구분 기능을 켜면 숨겨진 항목이 다시 나타나는 문제입니다. 결과적으로 숨겨두었던 중요한 정보가 공격자에게 노출되거나 수정될 위험이 있습니다.

🇺🇸 원문 (English)

jackson-databind contains the general-purpose data-binding functionality and tree-model for Jackson Data Processor. From 2.8.0 until 2.18.9, 2.21.5, and 3.1.4, in BeanDeserializerBase.createContextual(), per-property @JsonIgnoreProperties exclusions are applied by _handleByNameInclusion(), producing a contextual deserializer whose BeanPropertyMap has the ignored properties removed. The subsequent per-property case-insensitivity block (triggered by @JsonFormat(ACCEPT_CASE_INSENSITIVE_PROPERTIES)) rebuilds from this._beanProperties (the original, unfiltered map) instead of contextual._beanProperties, then overwrites the filtered map — restoring every property _handleByNameInclusion had just removed. The ignored property becomes writable again. This vulnerability is fixed in 2.18.9, 2.21.5, and 3.1.4.

📍 영향받는 시스템

jackson-databind 2.8.0 ~ 2.18.9, 2.21.5 미만, 3.1.4 미만 버전

⚔️ 공격 벡터

대소문자 구분 없는 속성 처리(@JsonFormat)가 활성화된 환경에서 무시된 속성을 포함한 데이터 전송

🛡️ 대응 방법

jackson-databind를 2.18.9, 2.21.5 또는 3.1.4 이상의 버전으로 업데이트

🔧 검증 코드

출력된 jackson-databind의 버전이 취약한 버전 범위에 포함되는지 확인

Shell / Script
mvn dependency:tree | grep jackson-databind

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N

💻 영향받는 소프트웨어

Spring Data REST