🇰🇷 한글 설명
pypdf는 순수 Python으로 작성된 무료 오픈소스 PDF 라이브러리입니다. 6.6.0 이전 버전에서는 트레일러에 /Root 객체가 없고 /Size 값이 매우 큰 경우 처리 시간이 과도하게 길어질 수 있습니다. 이 문제는 비엄격(non-strict) 읽기 모드에서만 영향을 받으며 6.6.0 버전에서 패치되었습니다.
💡 쉬운 설명
PDF 파일을 읽는 프로그램이 특수하게 조작된 파일을 만나면 오랫동안 멈춰 있을 수 있습니다. 최신 버전으로 업데이트하면 이 문제가 해결됩니다.
🇺🇸 원문 (English)
pypdf is a free and open-source pure-python PDF library. Prior to version 6.6.0, pypdf has possible long runtimes for missing /Root object with large /Size values. An attacker who uses this vulnerability can craft a PDF which leads to possibly long runtimes for actually invalid files. This can be achieved by omitting the /Root entry in the trailer, while using a rather large /Size value. Only the non-strict reading mode is affected. This issue has been patched in version 6.6.0.
📍 영향받는 시스템
pypdf 6.6.0 미만 버전을 사용하는 Python 애플리케이션 및 시스템
⚔️ 공격 벡터
/Root 항목을 생략하고 매우 큰 /Size 값을 설정한 악성 PDF 파일을 pypdf로 비엄격 모드에서 처리하게 하여 서비스 지연을 유발
🛡️ 대응 방법
pip install --upgrade pypdf 명령으로 pypdf를 6.6.0 이상으로 업그레이드
🔧 검증 코드
출력된 버전 번호가 6.6.0 이상이면 패치가 적용된 것이며, 6.6.0 미만이면 업그레이드가 필요합니다.
pip show pypdf 2>/dev/null | grep -i '^version'
📊 CVSS Vector String
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L
💻 영향받는 소프트웨어
Oracle Application Object Library