
CVE-2026-48095
7-Zip은 높은 압축률을 제공하는 파일 아카이버입니다. 버전 26.00 이하에는 NTFS 압축 스트림 버퍼의 과소 할당(GetCuSize 시프트 UB)으로 인한 힙 버퍼 오버플로우 취약점이 존재하며, 공격자가 임의 코드 실행 또는 애플리케이션 크래시를 유발할 수 있습니다. NTFS 핸들러의 CInStream::GetCuSize()는 압축 단위 버퍼 크기를 (UInt32)1 << (BlockSizeLog + CompressionUnit)으로 계산하는데, ClusterSizeLog >= 28 및 CompressionUnit == 4인 조작된 이미지는 지수를 32로 만들어 정의되지 않은 동작을 유발하고 x86/x64에서 계산이 붕괴되어 _inBuf가 1바이트로 할당됩니다. 그런 다음 ReadStream_FALSE는 64KB 반복으로 최대 256MB의 공격자 제어 데이터를 해당 1바이트 버퍼에 쓰며, CInStream 객체가 _inBuf로부터 불과 304바이트 뒤에 위치하므로 vtable 포인터가 덮어써지고 다음 디스패치 호출에서 vtable 하이재킹이 달성됩니다. 32비트 빌드에서는 오버플로우가 무조건 발생하며, 64비트에서는 병렬 8GB _outBuf 할당이 성공해야 하며, 그렇지 않으면 서비스 거부로 실패합니다. NTFS 핸들러는 순정 7z.dll에서 기본적으로 활성화되어 있으며, 오프셋 3에서 "NTFS "를 매칭하는 서명 기반 폴백을 통해 추출 또는 테스트 중에 파일 확장자와 관계없이 조작된 이미지를 엽니다. 버전 26.01에서 이 문제가 수정되었습니다.
이 프로젝트는 다음과 같은 안전하고 승인된 환경에서만 사용하세요:
설정 예시:
git clone <repository-url>
cd <repository-name>
사용 예시:
# Install dependencies
# Run the project
python cve-2026-48095.py
# Specify output file name
python cve-2026-48095.py poc_ntfs_sparse.zip
통제된 환경에서 사이버 보안 개념을 학습, 테스트 및 연구하기 위한 저장소입니다.
이 저장소는 교육 및 승인된 보안 연구 전용입니다.
사용자가 다음에 대해 학습할 수 있도록 설계되었습니다:
권한이 있는 환경에서만 이 저장소를 사용하세요:
승인되지 않았거나 불법적인 사용은 엄격히 금지됩니다.
저자와 기여자는 이 프로젝트로 인해 발생하는 손해, 오용, 법적 문제 또는 손실에 대해 책임을 지지 않습니다.
이 저장소를 사용함으로써 다음에 동의하게 됩니다:
이 프로젝트는 다음을 위해 만들어졌습니다:
책임 있는 공개 관행을 따르고 모든 관련 법률을 준수하세요.
책임 있는 공개 또는 협업을 위해 GitHub를 통해 저장소 관리자에게 연락하세요.