🇰🇷 한글 설명
Allure Report 2.x 버전(2.39.0 미만)에서 발생하는 경로 탐색 취약점입니다. 공격자가 인코딩된 상위 디렉토리 경로를 사용하여 서버 내의 임의의 파일을 읽을 수 있으며, 이는 민감한 자격 증명이나 CI/CD 데이터 유출로 이어질 수 있습니다.
💡 쉬운 설명
테스트 보고서를 보여주는 프로그램의 보안 허점을 이용해, 원래 보여주면 안 되는 컴퓨터 내부의 중요한 파일들을 몰래 훔쳐볼 수 있는 문제입니다. 공격자가 특수한 주소를 입력하면 프로그램이 경로를 제대로 확인하지 못해 발생합니다.
🇺🇸 원문 (English)
Allure 2 is the version 2.x branch of Allure Report, a multi-language test reporting tool. Prior to 2.39.0, the HTTP server started by allure serve and allure open uses URI.getPath() in Commands.setUpServer() in allure-commandline/src/main/java/io/qameta/allure/Commands.java and passes the percent-decoded request path to reportDirectory.resolve() without normalizing the result or confirming that it remains inside that directory. An unauthenticated client that can reach the server can submit parent-directory segments, including percent-encoded segments, and cause serveFile() to return any regular file readable by the Allure process. The server binds to localhost by default, but the --host option can expose it to other systems, and local users, adjacent containers, or browser-origin attacks may reach a local listener. This can disclose credentials, configuration, source code, build secrets, and other CI/CD data. This issue is fixed in version 2.39.0.
📍 영향받는 시스템
Allure Report 2.x branch (version < 2.39.0)
⚔️ 공격 벡터
인증되지 않은 클라이언트가 인코딩된 상위 디렉토리 경로(parent-directory segments)를 포함한 HTTP 요청을 전송
🛡️ 대응 방법
Allure Report를 버전 2.39.0 이상으로 업데이트하십시오.
🔧 검증 코드
출력된 버전 번호가 2.39.0 미만인 경우 취약한 버전이 설치된 상태입니다.
allure --version 2>/dev/null | grep -E '2\.[0-9]{1,2}\.'