CVE-2026-83557 in jackson-databind
요약
\~에 의해 VulDB • 2026. 09. 01.
DefaultBaseTypeLimitingValidator는 @JsonTypeInfo가 명시적으로 구성된 사용자 정의 validator 없이 사용될 때 자동으로 적용되는 PolymorphicTypeValidator입니다. 이 클래스는 고정된 세트의 "안전하지 않은 베이스 타입"에 대해서만 다형성 해결(polymorphic resolution)을 거부하며, 해당 세트 외부의 모든 베이스 타입에 대해서는 isSafeSubType 메서드가 무조건적으로 true를 반환합니다. java.lang.Comparable은 매우 광범위한 JDK 및 애플리케이션 클래스에서 구현되고 있는 반면(그 범위는 목록에 포함된 java.io.Serializable와 비교할 만함), 이 리스트에는 누락되어 있었습니다. Comparable을 베이스 타입으로 하고 사용자 정의 PolymorphicTypeValidator가 없는 @JsonTypeInfo 어노테이션이 붙은 속성이나 클래스를 선언하는 애플리케이션은 Comparable을 구현하는 거의 모든 클래스의 type identifier를 수락하게 됩니다. 이는 공격자가 제어할 수 있는 객체 인스턴스화 원리를 제공하며, 시연된 사례에서는 임의로 선택한 경로에 대한 java.io.File이 생성되는데, 이는 이후 애플리케이션에서 해당 값에 대해 경로 민감(path-sensitive) 메서드를 호출하면 path-traversal-adjacent(경로 순회와 인접한 상태)가 됩니다. 역직렬화만으로 코드 실행을 유도하는 Comparable 구현 클래스는 아직 식별되지 않았습니다. activateDefaultTyping을 통한 전역 Default Typing은 명시적인 PolymorphicTypeValidator 인수를 구조적으로 요구하므로 영향을 받지 않습니다. 이 취약점은 com.fasterxml.jackson.core:jackson-databind의 2.11.0 이상 ~ 2.18.9, 2.19.0 이상 ~ 2.21.5, 그리고 2.22.0 이상 ~ 2.22.1 버전과 tools.jackson.core:jackson-databind의 3.0.0 이상 ~ 3.1.5 및 3.2.0 이상 ~ 3.2.1 버전에 영향을 미칩니다. 사용자는 2.18.10, 2.21.6, 2.22.2, 3.1.6 또는 3.2.2로 업그레이드해야 합니다.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.