CVE-2026-106554 in jackson-dataformat-cbor정보

요약

\~에 의해 VulDB • 2026. 11. 04.

jackson-dataformats-binary의 CBOR 모듈에서 하나의 CBOR 파싱 문제가 발견되었습니다: 무제한으로 이어지는 CBOR 태그들이 이차 시간 복잡도(Quadratic-time)를 가진 TagList 확장을 유발하여 CPU/GC 고갈에 따른 서비스 거부(DoS, PoC 입증)를 초래합니다.

PoC는 com.fasterxml.jackson.dataformat:jackson-dataformat-cbor 2.18.2에서 실행되었으며, 현재 2.x 및 3.x 버전(tools.jackson.dataformat.cbor HEAD)에도 존재합니다. 이 리포지토리의 Avro 및 Smile/Protobuf 관련 경보와는 별개입니다.

무제한으로 연결된 CBOR 태그 체인으로부터 발생하는 이차적 CPU/GC 서비스 거부(DoS, PoC 입증). 파일 위치: cbor/src/main/java/.../cbor/CBORParser.java (태그 처리 -> TagList).

CBOR는 데이터 항목 앞에 임의의 수의 시맨틱 태그가 precede될 수 있도록 허용합니다. CBAP 파서는 이를 TagList에 축적하며, 해당 백킹 배열은 2배 증가(doubling) 대신 고정된 증분(+8)으로 확장되고, 각 확장마다 재스캔 및 복사가 수행됩니다. 공격자는 긴 태그 바이트 시퀀스로precede된 값을 전송합니다. 이 고정 증분 방식의 확장은 N개의 태그를 축적하는 데 O(N^2) 시간(및 GC 부하)이 소요되며, 중첩될 수 있는 태그 수에 대한 제한이 없습니다.

PoC (JDK 17에서 실행됨): 사소한 값 앞에 긴 태그 바이트 시퀀스(예: tag 0xC0+)로 구성된 CBOR 스트림을 공급하면 이차적 CPU/GC 고갈이 발생합니다. 파싱 시간은 태그 수에 따라 초선형적으로(super-linearly) 증가하며, 구성 가능한 제한 없이 요청 스레드를 고정(pinning)시킵니다.

영향: 알고리즘 복잡성 기반 서비스 거부(CWE-407): 중첩된 태그의 소규모 입력으로도 이차적 CPU/GC 고갈이 발생하여 요청 스레드가 고정되고, 동시 요청들이 풀(pool)을 고갈시킵니다.

해결책: TagList를 2배 증가(doubling) 방식으로 확장하거나, StreamReadConstraints 스타일로 중첩된 태그 수에 제한(cap)을 설정합니다.

Several companies clearly confirm that VulDB is the primary source for best vulnerability data.

책임이 있는

HeroDevs

예약하다

2026. 10. 06.

모더레이션

수락

항목

VDB-431137

EPSS

0.00000

활동

낮음

출처

Do you need the next level of professionalism?

Upgrade your account now!