🇰🇷 한글 설명
JWCrypto 라이브러리의 JWE 토큰 처리에서 ZIP 압축 데이터의 압축 해제 크기를 검증하지 않아, 250KB 미만의 토큰이 약 100MB까지 확장되면서 메모리 고갈 공격이 가능합니다. 1.5.7 버전에서 수정되었습니다.
💡 쉬운 설명
JWCrypto는 압축된 토큰을 처리할 때 실제 크기를 확인하지 않습니다. 작은 파일이 매우 큰 파일로 펼쳐져 서버 메모리를 전부 차지할 수 있습니다.
🇺🇸 원문 (English)
JWCrypto implements JWK, JWS, and JWE specifications using python-cryptography. Prior to 1.5.7, an unauthenticated attacker can exhaust server memory by sending crafted JWE tokens with ZIP compression. The existing patch for CVE-2024-28102 limits input token size to 250KB but does not validate the decompressed output size. An unauthenticated attacker can cause memory exhaustion on memory-constrained systems. A token under the 250KB input limit can decompress to approximately 100MB. This vulnerability is fixed in 1.5.7.
📍 영향받는 시스템
JWCrypto < 1.5.7
⚔️ 공격 벡터
인증되지 않은 공격자가 ZIP 압축된 JWE 토큰을 서버에 전송하여 메모리 고갈 유발
🛡️ 대응 방법
JWCrypto를 1.5.7 이상으로 업그레이드
🔧 검증 코드
설치된 JWCrypto 버전을 확인하여 1.5.7 이상이면 안전, 미만이면 취약합니다.
pip list 2>/dev/null | grep -i jwcrypto