🇰🇷 한글 설명
NanaZip의 SquashfsHandler.cpp 내 Lz4Decode 함수에서 잘못된 입력값에 대한 오류 처리가 미흡하여 발생하는 취약점입니다. 공격자가 조작된 인노드 오프셋을 사용하면 힙 메모리 범위를 벗어난 읽기 작업이 발생하여 인접한 힙 데이터가 유출되거나 프로세스가 충돌할 수 있습니다.
💡 쉬운 설명
압축 파일을 풀 때 특수하게 제작된 파일을 사용하면 컴퓨터 메모리의 민감한 정보가 파일로 저장되거나 프로그램이 강제로 종료될 수 있습니다. 이는 압축 해제 과정에서 데이터 크기를 잘못 계산하여 발생하는 문제입니다.
🇺🇸 원문 (English)
NanaZip is the 7-Zip derivative intended for the modern Windows experience. From version 1.0.88.0 until stable version 6.0.1698.0 and preview version 6.5.1742.0, the Lz4Decode function in NanaZip.Core/SevenZip/CPP/7zip/Archive/SquashfsHandler.cpp rejects only a zero return from LZ4_decompress_safe even though malformed input produces a negative error value. The negative int is converted to the unsigned SizeT destLen and then truncated into outBufWasWrittenSize, causing ReadBlock to trust an attacker-inflated _cachedUnpackBlockSize. During fragment extraction, an attacker-controlled inode Offset can make memcpy read beyond the _cachedBlock heap allocation and place adjacent heap contents in the extracted file, or crash the process. This issue is fixed in stable version 6.0.1698.0 and preview version 6.5.1742.0.
📍 영향받는 시스템
NanaZip 버전 1.0.88.0 ~ stable 6.0.1698.0 및 preview 6.5.1742.0 미만
⚔️ 공격 벡터
조작된 Squashfs 압축 파일 내의 인노드 오프셋(inode Offset)을 이용한 힙 기반 버퍼 오버리드
🛡️ 대응 방법
NanaZip를 최신 안정 버전(6.0.1698.0 이상) 또는 최신 프리뷰 버전(6.5.1742.0 이상)으로 업데이트하십시오.
🔧 검증 코드
출력된 NanaZip의 버전을 확인하여 취약한 버전 범위에 포함되는지 확인합니다.
winget list NanaZip 2>/dev/null | grep -i NanaZip
📊 CVSS Vector String
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:L
💻 영향받는 소프트웨어
Storage Protect Snapshot for Windows