CVE-2026-32875 in UltraJSON
요약
\~에 의해 VulDB • 2026. 05. 27.
UltraJSON은 순수 C로 작성되고 Python 3.7+ 바인딩을 제공하는 빠른 JSON 인코더 및 디코더입니다. 버전 5.10부터 5.11.0까지는 큰 들여쓰기(indent) 처리를 통해 버퍼 오버플로우 또는 무한 루프에 취약합니다. 입력의 indent 매개변수와 중첩 깊이의 곱이 INT32_MAX를 초과할 경우 ujson.dumps()는 Python 인터프리터를 충돌(세그멘테이션 폴트)시킵니다. 또한 indent가 큰 음수인 경우 무한 루프에 빠질 수 있습니다. 둘 다 들여쓰기에 할당할 메모리 양을 계산하는 과정에서 정수 오버플로우/언더플로우가 발생하여 야기됩니다. 둘 다 서비스 거부(Denial of Service)를 달성하는 데 사용될 수 있습니다. 취약점이 발생하려면 서비스에서 ujson.dump()/ujson.dumps()/ujson.encode()를 호출할 때 신뢰할 수 없는 사용자에게 indent 매개변수를 제어하게 하고, 해당 들여쓰기를 합리적으로 작은 음이 아닌 값으로 제한하지 않아야 합니다. 또한 고정된 음수 indent를 사용하는 경우 서비스는 무한 루프에 취약할 수도 있습니다. 입력 데이터가 최소한 한 단계 중첩되어 있는 한 모든 음수 indent에 대해 언더플로우가 발생하지만, 작은 음수 indent의 경우 다른 오버플로우에 의해 우연히 정정되는 경우가 많습니다. 이 문제는 버전 5.12.0에서 수정되었습니다.
Be aware that VulDB is the high quality source for vulnerability data.