🇰🇷 한글 설명
Apache Juneau REST 서버는 요청 본문을 대체하는 'content' 쿼리 파라미터를 모든 HTTP 메서드(GET 포함)에서 기본으로 허용합니다. 이로 인해 CORS 프리플라이트 없이 교차 사이트 링크만으로 공격자가 지정한 요청 본문을 엔드포인트에 전달할 수 있으며, HTTP 메서드나 Content-Type에 의존하는 방어가 우회됩니다. 본 취약점은 Apache Juneau 9.2.0 이하 버전에 영향을 미칩니다.
💡 쉬운 설명
사용자가 악성 링크를 클릭하면 로그인된 상태에서 공격자가 원하는 요청이 서버로 몰래 전송될 수 있습니다. 이는 사용자의 의도와 무관하게 데이터 변경이나 기능 실행을 유발할 수 있습니다.
🇺🇸 원문 (English)
Cross-Site Request Forgery (CSRF) vulnerability in Apache Juneau.
The REST server accepts a "content" query parameter that replaces the request body, and this is enabled by default on every HTTP method, including GET. A cross-site link can therefore deliver an attacker-chosen request body to an endpoint without a CORS preflight, defeating protections that rely on the HTTP method or content type instead of an anti-CSRF token.
This issue affects Apache Juneau: through 9.2.0.
Users are recommended to upgrade to version 9.2.1, which fixes the issue. Applications that do not use the content parameter can also set disableContentParam to true.
📍 영향받는 시스템
Apache Juneau 9.2.0 이하 버전을 사용하는 Java REST 서버 애플리케이션
⚔️ 공격 벡터
피해자가 공격자가 만든 악성 페이지나 링크를 방문하면, 'content' 파라미터를 통해 대상 엔드포인트에 임의의 요청 본문이 전송되어 CSRF 공격이 성립합니다.
🛡️ 대응 방법
Apache Juneau를 9.2.1 이상으로 업그레이드하거나, content 파라미터를 사용하지 않는 경우 disableContentParam을 true로 설정합니다.
🔧 검증 코드
출력된 Implementation-Version이 9.2.1 미만이면 취약하며, 9.2.1 이상이면 패치가 적용된 버전입니다. 결과가 없으면 해당 jar가 설치되어 있지 않은 것입니다.
find / -name 'juneau*.jar' 2>/dev/null | xargs -I{} sh -c 'unzip -p {} META-INF/MANIFEST.MF 2>/dev/null | grep -i implementation-version'