🇰🇷 한글 설명
msgpack-python 1.2.3 미만 버전의 C 확장 모듈에서 strict_map_key=True 설정 시 디코딩된 맵 값이 유출되는 취약점이 발견되었습니다. 공격자가 조작된 MessagePack 데이터를 반복적으로 전송할 경우 프로세스의 메모리가 무제한으로 증가하여 서비스 거부(DoS) 상태를 유발할 수 있습니다.
💡 쉬운 설명
특정한 형식의 데이터를 처리할 때 컴퓨터의 메모리를 계속해서 잡아먹는 버그가 있습니다. 이를 악용하면 프로그램이 멈추거나 서버가 다운될 수 있습니다.
🇺🇸 원문 (English)
MessagePack is the serializer implementation for Python msgpack.org. Prior to 1.2.3, the msgpack-python C extension (msgpack._cmsgpack) leaks a decoded map value when deserialization rejects a key with strict_map_key=True (the default). Repeated malformed inputs can cause unbounded process memory growth and denial of service in applications that deserialize attacker-controlled MessagePack data. Both unpackb() and the streaming Unpacker API are affected. The pure-Python fallback does not exhibit this leak in the reported tests. This issue is fixed in version 1.2.3.
📍 영향받는 시스템
msgpack-python C extension (msgpack._cmsgpack) 1.2.3 미만 버전
⚔️ 공격 벡터
공격자가 제어하는 악의적인 MessagePack 데이터를 unpackb() 또는 Unpacker API를 통해 역직렬화 시도
🛡️ 대응 방법
msgpack-python 라이브러리를 1.2.3 버전 이상으로 업데이트
🔧 검증 코드
출력된 Version이 1.2.3 미만인지 확인하여 취약 여부를 판단합니다.
pip show msgpack | grep Version