🇰🇷 한글 설명
pypdf는 순수 Python으로 작성된 무료 오픈소스 PDF 라이브러리입니다. 6.21.2 이전 버전에서는 공격자가 존재하지 않는 간접 객체를 반복 참조하는 PDF를 만들 수 있으며, 이 경우 페이지 등 파일 구성요소에 접근할 때마다 전체 파일 복구가 반복되어 처리 시간이 매우 길어집니다. 이 문제는 6.21.2 버전에서 수정되었습니다.
💡 쉬운 설명
악의적으로 만들어진 PDF 파일을 열면 프로그램이 같은 복구 작업을 계속 반복하여 매우 느려지거나 멈출 수 있습니다. 이는 서비스 거부(DoS) 공격에 활용될 수 있습니다.
🇺🇸 원문 (English)
pypdf is a free and open-source pure-python PDF library. Prior to 6.21.2, an attacker can craft a PDF that repeatedly references the same nonexistent indirect object, causing relevant file parts such as pages to trigger repeated full-file recovery loads and long runtimes when accessed. This issue is fixed in version 6.21.2.
📍 영향받는 시스템
pypdf 6.21.2 미만 버전을 사용하는 Python 애플리케이션 및 서버
⚔️ 공격 벡터
공격자가 존재하지 않는 객체를 반복 참조하는 특수 제작된 PDF 파일을 pypdf로 처리하는 시스템에 업로드하거나 전달
🛡️ 대응 방법
pypdf를 6.21.2 이상 버전으로 업그레이드 (pip install --upgrade pypdf)
🔧 검증 코드
출력된 Version 값이 6.21.2 이상이면 취약점이 수정된 것이며, 그보다 낮으면 업그레이드가 필요합니다.
pip show pypdf 2>/dev/null | grep -i '^version'
💻 영향받는 소프트웨어
Oracle Application Object Library