🇰🇷 한글 설명
pypdf 라이브러리 6.18.1 이전 버전에서 폰트 /ToUnicode 매핑에 비정상적으로 큰 소스 코드 또는 대상 문자열 토큰을 포함한 조작된 PDF를 처리할 때 발생합니다. 이로 인해 텍스트 추출 과정에서 과도한 메모리를 소비하여 시스템 리소스를 고갈시킬 수 있습니다.
💡 쉬운 설명
악의적으로 만들어진 PDF 파일을 읽을 때 프로그램이 감당할 수 없을 만큼 많은 메모리를 사용하게 만드는 취약점입니다. 이로 인해 컴퓨터가 느려지거나 프로그램이 강제로 종료될 수 있습니다.
🇺🇸 원문 (English)
pypdf is a free and open-source pure-python PDF library. Prior to 6.18.1, a crafted PDF can place unusually large source-code or destination-string tokens in a font /ToUnicode mapping, causing pypdf/_cmap.py parse_bfchar to decode and retain oversized values during operations such as text extraction and consume excessive memory. This is a second follow-up to earlier /ToUnicode resource-consumption fixes and is limited to the remaining token-length path. This issue is fixed in version 6.18.1.
📍 영향받는 시스템
pypdf 6.18.1 미만 버전
⚔️ 공격 벡터
조작된 /ToUnicode 매핑 토큰이 포함된 PDF 파일을 pypdf를 통해 처리하도록 유도
🛡️ 대응 방법
pypdf 라이브러리를 6.18.1 버전 이상으로 업데이트
🔧 검증 코드
출력된 버전 번호가 6.18.1보다 낮으면 취약한 상태입니다.
pip show pypdf | grep Version