🇰🇷 한글 설명
PHP용 오픈 소스 파일 저장 라이브러리인 Flysystem의 WhitespacePathNormalizer에서 잘못된 UTF-8 경로 처리로 인해 보안 검사를 우회할 수 있는 취약점이 발견되었습니다. 공격자는 제어 문자가 포함된 경로를 사용하여 파일 목록을 조작하거나 터미널 출력을 스푸핑할 수 있습니다. 이 문제는 버전 3.35.3에서 수정되었습니다.
💡 쉬운 설명
파일 이름을 만들 때 특수 문자를 걸러내는 기능이 제대로 작동하지 않는 문제입니다. 이를 통해 관리자가 파일 목록을 볼 때 가짜 정보를 보여주거나 화면을 어지럽히는 공격이 가능합니다.
🇺🇸 원문 (English)
Flysystem is an open source file storage library for PHP. Prior to 3.35.3, the default WhitespacePathNormalizer in src/WhitespacePathNormalizer.php used by Filesystem across adapters calls preg_match with the u modifier and treats both false and 0 as falsy. A path containing malformed UTF-8 causes PCRE to return false, so paths that also contain control characters bypass CorruptedPathDetected::forPath() in normalizePath(). Filesystem::write() can store such names and Filesystem::listContents() can return the raw ANSI escape sequences, allowing hidden or spoofed terminal file listings when an administrator displays them. This issue is fixed in version 3.35.3.
📍 영향받는 시스템
Flysystem 3.35.3 미만 버전
⚔️ 공격 벡터
잘못된 UTF-8 형식을 포함한 파일 경로를 생성하여 경로 정규화 검사를 우회함
🛡️ 대응 방법
Flysystem을 버전 3.35.3 이상으로 업데이트하십시오.
🔧 검증 코드
출력된 버전이 3.35.3 미만이면 취약한 상태입니다.
composer show league/flysystem | grep 'versions'