🇰🇷 한글 설명
Pillow 라이브러리 13.0.0 미만 버전의 TarIO 초기화 과정에서 음수 8진수 멤버 크기를 허용하는 취약점이 존재합니다. 이로 인해 잘못된 파일 이름을 처리할 때 헤더를 반복적으로 읽으며 CPU 코어를 완전히 점유하여 무한 루프에 빠지는 서비스 거부(DoS) 현상이 발생할 수 있습니다.
💡 쉬운 설명
이미지 처리 도구인 Pillow에서 특수하게 조작된 파일을 읽을 때 컴퓨터의 두뇌 역할을 하는 CPU를 100% 사용하여 컴퓨터가 멈추게 만드는 문제입니다. 이 문제는 일반적인 이미지 열기 방식이 아닌 특정 기능을 직접 사용할 때만 발생합니다.
🇺🇸 원문 (English)
Pillow is a Python imaging library. Prior to 13.0.0, the TarIO initializer in src/PIL/TarIO.py accepts a negative octal member size and computes a backward seek that returns to the same 512-byte header. When the requested member name does not match, the parser repeatedly reads that header, consumes a full CPU core, and never returns. TarIO is reached only when an application directly uses PIL.TarIO.TarIO rather than the default Image.open() path. This issue is fixed in version 13.0.0.
📍 영향받는 시스템
Pillow version < 13.0.0 (PIL.TarIO.TarIO 사용 시)
⚔️ 공격 벡터
조작된 음수 8진수 크기 값을 포함한 Tar 파일을 통해 TarIO 클래스를 직접 호출하여 CPU 자원을 고갈시킴
🛡️ 대응 방법
Pillow 라이브러리를 13.0.0 이상의 최신 버전으로 업데이트하십시오.
🔧 검증 코드
출력된 버전 번호가 13.0.0보다 낮으면 취약한 상태입니다.
pip show Pillow | grep Version