🇰🇷 한글 설명
pyzipper 0.4.0 미만 버전에서 연산자 우선순위 버그로 인해 AES 암호화 시 AE-2 형식이 아닌 AE-1 형식이 사용되는 취약점이 발견되었습니다. 이로 인해 ZIP 헤더나 데이터 설명 섹션에 평문 CRC32 체크섬이 노출되어, 공격자가 파일의 CRC32 값을 비교함으로써 저엔트로피 파일의 내용을 무차별 대입 공격(Brute-force)으로 알아낼 수 있습니다.
💡 쉬운 설명
암호화된 압축 파일의 검증용 데이터(CRC32)가 암호화되지 않은 채 노출되는 문제입니다. 공격자는 이 노출된 값을 이용해 암호화된 파일의 원래 내용을 추측해낼 수 있습니다.
🇺🇸 원문 (English)
pyzipper is a replacement for Python's zipfile that can read and write AES encrypted zip files. Prior to 0.4.0, a Python operator precedence bug in pyzipper/zipfile_aes.py caused the AE-2 format to never be automatically selected during encryption, causing encrypted entries to be written in AE-1 format and exposing the plaintext CRC32 checksum in the ZIP header and, for unseekable zip archives, in the datadescripter section, allowing an attacker who possesses the archive to brute-force candidate plaintexts for small or low-entropy files by comparing CRC32 values. This issue is fixed in version 0.4.0.
📍 영향받는 시스템
pyzipper version < 0.4.0
⚔️ 공격 벡터
공격자가 암호화된 ZIP 파일을 획득한 후, 노출된 CRC32 값을 이용해 파일 내용을 무차별 대입 공격함
🛡️ 대응 방법
pyzipper를 0.4.0 이상의 최신 버전으로 업데이트하십시오.
🔧 검증 코드
출력된 버전이 0.4.0 미만이면 취약한 상태이며, 0.4.0 이상이면 안전합니다.
pip show pyzipper | grep Version