🇰🇷 한글 설명
SumatraPDF 3.6.1 및 이전 버전에서 조작된 CHM 파일을 열 때 LZX 허프만 코드 길이를 처리하는 과정에서 힙 메모리 손상이 발생할 수 있습니다. 이 취약점은 PRETREE 테이블의 범위를 벗어난 쓰기 작업을 유발하여 메모리 오염을 일으키지만, 아직 임의 코드 실행 사례는 보고되지 않았습니다.
💡 쉬운 설명
악의적으로 만들어진 도움말 파일(CHM)을 SumatraPDF로 열면 프로그램의 메모리 영역이 망가질 수 있습니다. 이로 인해 프로그램이 강제로 종료되거나 시스템에 예기치 않은 오류가 발생할 수 있습니다.
🇺🇸 원문 (English)
SumatraPDF is a multi-format reader for Windows. In 3.6.1 and earlier, a crafted CHM file can supply malformed LZX Huffman code lengths to make_decode_table in ext/CHMLib/lzx.c. In the long-code branch, the function writes new internal nodes through next_symbol before validating that the canonical Huffman table has overflowed. The PRETREE case can write beyond the 104-entry PRETREE_table into adjacent heap state in struct LZXstate when reached through chm_open, chm_retrieve_object, LZXdecompress, and BUILD_TABLE. This produces heap memory corruption in the parser process, while arbitrary code execution has not been demonstrated. No fixed version is available as of this review.
📍 영향받는 시스템
SumatraPDF 3.6.1 및 그 이전 버전
⚔️ 공격 벡터
조작된 CHM 파일을 사용자가 SumatraPDF로 열도록 유도
🛡️ 대응 방법
현재 수정 버전이 없으므로 신뢰할 수 없는 CHM 파일 실행을 자제하고 향후 보안 패치를 기다려야 함
🔧 검증 코드
출력된 버전 번호가 3.6.1 이하인지 확인하여 취약 여부를 판단합니다.
powershell -Command "(Get-Item 'C:\Path\To\SumatraPDF.exe').VersionInfo.ProductVersion"
📊 CVSS Vector String
CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:L/I:H/A:L
💻 영향받는 소프트웨어
Storage Protect Snapshot for Windows