🇰🇷 한글 설명
Volmarg Personal Management System에서 인증된 공격자가 GET /public/get-file/{path} 엔드포인트에 절대 경로를 전달하여 임의의 파일을 읽을 수 있는 경로 탐색 취약점이 발견되었습니다. 경로 매개변수가 허용된 기본 디렉토리에 대한 정규화 과정 없이 file_get_contents() 함수로 직접 전달되어, 공격자가 디렉토리 탐색 시퀀스 없이도 PHP-FPM 프로세스가 접근 가능한 민감한 파일을 탈취할 수 있습니다.
💡 쉬운 설명
로그인한 사용자가 시스템의 특정 주소에 파일 경로를 입력하면, 원래 보여주면 안 되는 서버 내부의 중요한 파일들을 몰래 읽어갈 수 있는 보안 약점입니다. 공격자는 이를 통해 서버의 설정 파일이나 비밀번호가 담긴 파일을 훔쳐볼 수 있습니다.
🇺🇸 원문 (English)
Volmarg Personal Management System contains a path traversal vulnerability that allows authenticated attackers to read arbitrary files by supplying absolute filesystem paths to the GET /public/get-file/{path} endpoint. The path route parameter is passed directly to file_get_contents() without canonicalization against a permitted base directory, enabling attackers to retrieve sensitive files accessible to the PHP-FPM worker process without using directory traversal sequences.
📍 영향받는 시스템
Volmarg Personal Management System (버전 정보 미상)
⚔️ 공격 벡터
인증된 사용자가 GET /public/get-file/{path} 요청 시 절대 경로를 매개변수로 전달하여 공격
🛡️ 대응 방법
입력된 경로를 허용된 디렉토리 내로 제한하도록 정규화(Canonicalization) 로직을 적용하고, 파일 접근 권한을 최소화해야 합니다.
🔧 검증 코드
명령어 실행 시 HTTP 200 응답과 함께 시스템 파일 내용이 출력되면 취약한 상태이며, 403 또는 404 오류가 발생하면 안전한 상태입니다.
curl -I -u 'username:password' 'http://<target>/public/get-file//etc/passwd'