🇰🇷 한글 설명
pypdftk 0.5 이하 버전의 fill_form(), dump_data_fields(), pdftk_cmd_util() 함수에서 OS 명령 주입 취약점이 발견되었습니다. 공격자가 pdf_path 또는 out_file 경로를 조작하여 쉘 메타문자를 삽입하면, subprocess.Popen의 shell=True 설정으로 인해 임의의 OS 명령이 실행될 수 있습니다.
💡 쉬운 설명
프로그램이 파일 경로를 처리할 때 사용자가 입력한 악성 명령어를 그대로 실행해버리는 보안 결함입니다. 이를 통해 해커가 컴퓨터에 몰래 명령을 내려 시스템을 장악할 수 있습니다.
🇺🇸 원문 (English)
pypdftk through 0.5 contains an OS command injection vulnerability in fill_form(), dump_data_fields(), and pdftk_cmd_util() that builds shell commands from caller-supplied paths. Attackers controlling pdf_path or out_file can inject shell metacharacters interpreted by subprocess.Popen with shell=True to execute OS commands as the Python process.
📍 영향받는 시스템
pypdftk 0.5 이하 모든 버전
⚔️ 공격 벡터
사용자가 제어 가능한 파일 경로(pdf_path, out_file)에 쉘 메타문자를 삽입하여 명령 실행
🛡️ 대응 방법
pypdftk를 최신 버전으로 업데이트하거나, 입력값에 대한 검증 로직을 추가하고 subprocess 호출 시 shell=True 옵션을 제거하십시오.
🔧 검증 코드
출력된 버전이 0.5 이하인지 확인하여 취약 여부를 판단합니다.
pip show pypdftk 2>/dev/null | grep -E 'Version'