🇰🇷 한글 설명
FreeScout 1.8.224 미만 버전에서 파일 업로드 제한 목록이 불완전하여 .pht 확장자를 차단하지 못하는 취약점이 존재합니다. 인증된 사용자가 .pht 확장자를 가진 웹쉘을 업로드하면 웹 서버 권한으로 임의의 명령을 실행할 수 있습니다.
💡 쉬운 설명
로그인 권한이 있는 사용자가 악성 파일을 업로드하여 서버를 마음대로 조종할 수 있는 보안 구멍이 발견되었습니다. 특정 파일 확장자를 막지 못해 발생하는 문제로, 서버의 제어권을 탈취당할 수 있습니다.
🇺🇸 원문 (English)
FreeScout is a free help desk and shared inbox built with PHP's Laravel framework. Prior to version 1.8.224, the denylist that neutralizes dangerous file uploads (`Helper::$restricted_extensions`) is incomplete: it does not cover the `.pht` extension. The authenticated upload endpoint `POST /uploads/upload` (`SecureController@upload`) stores files with their original extension into the web-accessible directory `storage/app/public/uploads/` (served at `/storage/uploads/`). On the standard Apache + `libapache2-mod-php` deployment, the default handler `<FilesMatch ".+\.ph(ar|p[3457]?|t|tml)$">` executes `.pht`, so **any authenticated agent can upload a `.pht` web shell and run arbitrary commands as the web-server user** (`www-data`). This is a direct bypass of the fix for CVE-2025-48471, which added `phtml`/`phar` but not `pht` (nor `phtm`, `phps`). Version 1.8.224 contains an updated fix.
📍 영향받는 시스템
FreeScout version < 1.8.224
⚔️ 공격 벡터
인증된 사용자가 POST /uploads/upload 엔드포인트를 통해 .pht 확장자를 가진 웹쉘 파일을 업로드하여 실행
🛡️ 대응 방법
FreeScout를 최신 보안 패치가 적용된 버전인 1.8.224 이상으로 업데이트하십시오.
🔧 검증 코드
명령어 실행 결과로 버전 번호가 출력되면 취약한 버전이 설치되어 있는 상태입니다.
php artisan --version | grep -E '1.8\.[0-9]+' | awk '$2 < "1.8.224"'