🇰🇷 한글 설명
성능 중심의 JavaScript 프레임워크인 Qwik의 FormData 파싱 과정에서 점 표기법(dotted form field names)을 사용한 배열 추론 오류가 발견되었습니다. 공격자가 배열 인덱스와 객체 속성을 혼합하여 전송할 경우, 애플리케이션이 배열로 예상하는 값에 사용자 제어 속성이 작성되어 서비스 거부(DoS)나 타입 혼란을 유발할 수 있습니다.
💡 쉬운 설명
데이터를 처리할 때 이름 규칙을 악용하여 프로그램이 예상치 못한 값을 강제로 주입하는 취약점입니다. 이를 통해 웹사이트의 기능을 마비시키거나 데이터 처리 오류를 일으킬 수 있습니다.
🇺🇸 원문 (English)
Qwik is a performance-focused JavaScript framework. Versions prior to 1.19.2 improperly inferred arrays from dotted form field names during FormData parsing. By submitting mixed array-index and object-property keys for the same path, an attacker could cause user-controlled properties to be written onto values that application code expected to be arrays. When processing application/x-www-form-urlencoded or multipart/form-data requests, Qwik City converted dotted field names (e.g., items.0, items.1) into nested structures. If a path was interpreted as an array, additional attacker-supplied keys on that path—such as items.toString, items.push, items.valueOf, or items.length—could alter the resulting server-side value in unexpected ways, potentially leading to request handling failures, denial of service through malformed array state or oversized lengths, and type confusion in downstream code. This issue was fixed in version 1.19.2.
📍 영향받는 시스템
Qwik versions prior to 1.19.2
⚔️ 공격 벡터
application/x-www-form-urlencoded 또는 multipart/form-data 요청 시 조작된 점 표기법 필드 이름 전송
🛡️ 대응 방법
Qwik 프레임워크를 버전 1.19.2 이상으로 업데이트하십시오.
🔧 검증 코드
출력된 버전 번호가 1.19.2 미만이면 취약한 상태이며, 1.19.2 이상이면 안전합니다.
npm list @builder.io/qwik | grep -E '@builder.io/qwik@([0-9]+\.[0-9]+\.[0-9]+)'