🇰🇷 한글 설명
Pillow 라이브러리의 JPEG2000 디코딩 과정에서 타일별 너비를 재계산하지 않고 누적하여 계산하는 결함이 발견되었습니다. 이로 인해 조작된 JPEG2000 파일을 처리할 때 과도한 일시적 메모리 사용이 발생하여 메모리 부족(OOM) 오류를 유발할 수 있습니다.
💡 쉬운 설명
특수하게 만들어진 이미지를 열려고 하면 컴퓨터의 메모리를 갑자기 너무 많이 사용하여 프로그램이 멈추거나 꺼질 수 있는 문제입니다. 이미지 파일을 처리하는 과정에서 계산 실수가 발생하여 메모리를 과하게 잡아먹는 현상입니다.
🇺🇸 원문 (English)
Pillow is a Python imaging library. From 8.2.0 through 12.2.0, src/libImaging/Jpeg2KDecode.c accumulates total_component_width across every tile in a JPEG2000 image instead of recomputing it per tile, allowing a crafted tiled JPEG2000 file to force substantially higher transient memory usage and trigger out-of-memory failures during decoding. This issue is fixed in version 12.3.0.
📍 영향받는 시스템
Pillow 8.2.0 ~ 12.2.0 버전
⚔️ 공격 벡터
조작된 타일 구조를 가진 JPEG2000 이미지 파일을 시스템에 업로드하거나 처리하도록 유도
🛡️ 대응 방법
Pillow 라이브러리를 12.3.0 이상의 최신 버전으로 업데이트
🔧 검증 코드
출력된 버전 번호가 12.2.0 이하이면 취약한 상태이며, 12.3.0 이상이면 안전합니다.
pip show Pillow | grep Version