🇰🇷 한글 설명
psd-tools 1.17.1 미만 버전에서 SmartObject.save() 함수가 PSD 파일 내의 검증되지 않은 이름을 사용하여 임의의 경로에 파일을 작성할 수 있는 취약점이 존재합니다. 또한 SmartObject.open() 함수를 통해 공격자가 지정한 경로의 파일을 임의로 읽어낼 수 있는 파일 읽기 취약점도 포함되어 있습니다.
💡 쉬운 설명
악성 코드가 담긴 PSD 파일을 열면, 프로그램이 사용자의 허락 없이 컴퓨터의 중요한 위치에 파일을 만들거나 중요한 파일을 몰래 읽어갈 수 있습니다. 이는 파일 이름에 숨겨진 명령어를 이용해 시스템을 공격하는 방식입니다.
🇺🇸 원문 (English)
psd-tools is a Python package for working with Adobe Photoshop PSD files. Prior to version 1.17.1, `SmartObject.save()` writes an embedded smart object to a path taken verbatim from the PSD file. Because that name is attacker-controlled and unsanitised, a tool that extracts embedded objects from an untrusted `.psd` can be made to write attacker-chosen bytes to an attacker-chosen path (absolute or `../`-traversing), outside its intended output directory. A secondary issue in `SmartObject.open()` for external-kind smart objects allows the attacker-controlled `fullPath` descriptor to be used as an arbitrary file read path, enabling exfiltration of the read content to the controlled write destination. Both issues are fixed in v1.17.1.
📍 영향받는 시스템
psd-tools version < 1.17.1
⚔️ 공격 벡터
조작된 PSD 파일을 통한 임의 파일 쓰기(Path Traversal) 및 임의 파일 읽기
🛡️ 대응 방법
psd-tools를 최신 버전인 1.17.1 이상으로 업데이트하십시오.
🔧 검증 코드
출력된 버전 번호가 1.17.1보다 낮으면 취약한 상태입니다.
pip show psd-tools 2>/dev/null | grep Version