🇰🇷 한글 설명
AdonisJS HTTP Server 패키지의 8.0.0-next.0~8.2.0 및 9.0.0~9.0.2 버전에서, 기본 HTML 예외 응답 생성 시 error.message가 이스케이프 없이 삽입된다. 이로 인해 조작된 존재하지 않는 라우트 URL을 피해자가 열면 공격자가 제어하는 JavaScript가 실행될 수 있다. 이 문제는 8.2.1 및 9.1.0 버전에서 수정되었다.
💡 쉬운 설명
웹 서버가 존재하지 않는 페이지 오류를 보여줄 때 오류 메시지를 안전하게 처리하지 않습니다. 공격자가 만든 링크를 클릭하면 악성 스크립트가 브라우저에서 실행될 수 있습니다.
🇺🇸 원문 (English)
AdonisJS HTTP Server is a package for handling HTTP requests in the AdonisJS framework. In versions 8.0.0-next.0 through 8.2.0 and 9.0.0 through 9.0.2, the error.message is interpolated into the default HTML exception response without escaping, allowing a crafted missing-route URL to execute attacker-controlled JavaScript when a victim opens it and no custom status page or JSON response handles the error. When debug mode is disabled and no custom status page handles the error, the default HTML renderer interpolates error.message directly into an HTML response. This issue is fixed in versions 8.2.1 and 9.1.0.
📍 영향받는 시스템
AdonisJS HTTP Server 8.0.0-next.0~8.2.0, 9.0.0~9.0.2 (디버그 모드 비활성화 및 커스텀 에러 페이지 미설정 환경)
⚔️ 공격 벡터
조작된 존재하지 않는 라우트 URL을 피해자에게 전달하여 클릭하게 함으로써 반사형 XSS를 유발
🛡️ 대응 방법
AdonisJS HTTP Server를 8.2.1 또는 9.1.0 이상으로 업그레이드하고, 커스텀 에러 페이지를 구현
🔧 검증 코드
출력된 버전이 8.0.0-next.0~8.2.0 또는 9.0.0~9.0.2 범위에 속하면 취약하며, 8.2.1 이상 또는 9.1.0 이상이면 패치된 것입니다.
npm ls @adonisjs/http-server 2>/dev/null | grep -E '@adonisjs/http-server@'