🇰🇷 한글 설명
Qwik 프레임워크의 서버 측 qwik-json 역직렬화 과정에서 발생하는 취약점입니다. 공격자가 조작된 thenable 객체를 포함한 요청을 보내면, 처리되지 않은 비동기 거부(unhandled rejection)가 발생하여 Node.js 서버가 종료될 수 있습니다. 이로 인해 단일 요청만으로도 서버가 다운될 수 있는 서비스 거부(DoS) 공격이 가능합니다.
💡 쉬운 설명
해커가 특수하게 조작된 데이터를 보내면 웹 서버가 갑자기 꺼져버리는 문제입니다. 이 공격을 반복하면 웹사이트를 계속 마비시킬 수 있습니다.
🇺🇸 원문 (English)
Qwik is a performance-focused JavaScript framework. Prior to @builder.io/qwik 1.20.0 and @qwik.dev/core 2.0.0-beta.37, default server-side qwik-json deserialization causes ResourceSerializer.$fill$ to pass resource._resolved to Promise.resolve without first rejecting attacker-controlled thenables. An unauthenticated request can provide a plain object whose then property is a QRL for an unregistered symbol, causing an orphaned asynchronous rejection that terminates Node.js under its default unhandled-rejection policy. A single request can crash a server, and repeated requests can keep replicas unavailable. This issue is fixed in @builder.io/qwik 1.20.0 and @qwik.dev/core 2.0.0-beta.37.
📍 영향받는 시스템
@builder.io/qwik 1.20.0 미만 및 @qwik.dev/core 2.0.0-beta.37 미만 버전
⚔️ 공격 벡터
인증되지 않은 사용자가 조작된 then 속성을 가진 JSON 객체를 포함한 HTTP 요청을 전송
🛡️ 대응 방법
@builder.io/qwik 1.20.0 또는 @qwik.dev/core 2.0.0-beta.37 이상 버전으로 업데이트
🔧 검증 코드
출력된 패키지 버전이 취약한 버전 범위에 포함되는지 확인
npm list @builder.io/qwik @qwik.dev/core