🇰🇷 한글 설명
AdonisJS 프레임워크의 HTTP 서버 패키지에서 router.matchers.slug() 함수가 정규 표현식의 중복된 탐욕적 반복을 포함하고 있어 발생합니다. 공격자가 제어하는 긴 슬러그 경로를 입력할 경우 이차 백트래킹(Quadratic Backtracking)이 발생하여 CPU 사용량이 급증하고 서비스가 중단될 수 있습니다. 이 문제는 인증이나 속도 제한 미들웨어가 실행되기 전 단계에서 발생하므로 미인증 공격에 취약합니다.
💡 쉬운 설명
특정한 규칙을 가진 긴 주소를 입력하면 서버가 이를 처리하느라 과도한 계산을 하게 되어 컴퓨터가 멈추는 현상입니다. 해커가 이 방법을 사용하면 웹사이트를 마비시킬 수 있습니다.
🇺🇸 원문 (English)
AdonisJS HTTP Server is a package for handling HTTP requests in the AdonisJS framework. Prior to 8.2.2 and 9.1.1, the regular expression returned by router.matchers.slug() contains adjacent greedy repetitions with overlapping character classes. When an application applies this matcher to an attacker-controlled route parameter, a long slug ending in a character rejected by the final assertion causes quadratic backtracking and excessive CPU use. Route matching occurs before route and group middleware, so authentication or rate-limiting middleware attached to the route may not prevent an unauthenticated request from blocking the Node.js event loop and stopping the worker from serving unrelated requests or health checks. This issue is fixed in versions 8.2.2 and 9.1.1.
📍 영향받는 시스템
AdonisJS HTTP Server versions prior to 8.2.2 and 9.1.1
⚔️ 공격 벡터
공격자가 조작된 긴 슬러그(slug) 형태의 URL 경로 파라미터를 전송하여 서버의 CPU 자원을 고갈시킴
🛡️ 대응 방법
AdonisJS HTTP Server를 8.2.2 또는 9.1.1 이상의 버전으로 업데이트하십시오.
🔧 검증 코드
출력된 버전이 8.2.2 또는 9.1.1보다 낮은지 확인하십시오.
npm list @adonisjs/http-server
💻 영향받는 소프트웨어
IBM WebSphere Application Server