🇰🇷 한글 설명
네트워크 트래픽 분석 도구인 Malcolm의 파일 업로드 구성 요소에서 발생하는 취약점입니다. 기본 설정 시 파일 확장자 제한이 작동하지 않아, 권한이 제한된 사용자가 PHP 파일을 업로드하고 실행함으로써 서버에서 임의의 코드를 실행할 수 있습니다.
💡 쉬운 설명
파일을 올리는 권한만 가진 사용자가 악성 프로그램을 몰래 올려서 서버를 마음대로 조종할 수 있는 문제입니다. 허용된 파일 종류를 검사하는 기능이 꺼져 있어 발생하는 보안 결함입니다.
🇺🇸 원문 (English)
Malcolm is a network traffic analysis tool suite. The file-upload component (FilePond PHP backend) accepts uploads at `POST /server/php/submit.php` and stores them in a directory served by the same nginx and php-fpm instance. The allow-list that should restrict accepted file types is an empty array by default (`file-upload/php/config.php:16`), so the type check is a no-op and every extension is accepted. The filename sanitizer keeps the `.php` extension intact. Committed files land in `/var/www/upload/server/php/files` (`file-upload/php/config.php:7`), and the component's nginx routes any URL ending in `.php` to php-fpm. An authenticated `GET /server/php/files/<name>.php` then executes the uploaded code as `www-data`. Prior to version 26.06.1, in RBAC mode, the upload endpoint is reachable by the granular `ROLE_UPLOAD` role (`nginx/lua/nginx_auth_helpers.lua:71`), a role intended only for submitting capture files. As a result, a user holding the upload-only role runs arbitrary PHP as `www-data` inside the file-upload container. Version 26.06.1 fixes the issue.
📍 영향받는 시스템
Malcolm (version 26.06.1 미만)
⚔️ 공격 벡터
ROLE_UPLOAD 권한을 가진 사용자가 .php 확장자를 가진 파일을 업로드한 후 해당 경로로 접근하여 실행
🛡️ 대응 방법
Malcolm을 버전 26.06.1 이상으로 업데이트하십시오.
🔧 검증 코드
명령어 결과에 26.06.1 이상의 버전이 표시되면 취약점이 해결된 상태입니다.
malcolm --version 2>/dev/null | grep -E '26.06.1'