🇰🇷 한글 설명
오픈 소스 JSON 파서인 Jawn의 1.7.0 미만 버전에서 AsyncParser를 사용할 때 발생하는 취약점입니다. 단일 JSON 토큰이 여러 개의 작은 청크로 나누어 전달될 경우, 각 absorb 호출 시마다 불완전한 토큰을 처음부터 다시 스캔하여 이차 함수적인 작업량을 발생시킵니다. 공격자가 신뢰할 수 없는 JSON 입력과 청크 크기를 제어할 수 있다면 CPU 자원을 고갈시켜 서비스 거부(DoS) 상태를 유발할 수 있습니다.
💡 쉬운 설명
데이터를 아주 잘게 쪼개서 보내면 컴퓨터가 이를 처리하기 위해 똑같은 작업을 반복하게 만들어 과부하를 일으키는 문제입니다. 이로 인해 프로그램이 멈추거나 서버가 응답하지 않을 수 있습니다.
🇺🇸 원문 (English)
Jawn is an open source JSON parser. Prior to 1.7.0, Jawn's AsyncParser can perform quadratic work when a single JSON token is delivered across many small chunks because each absorb call rescans the incomplete token from the start. A remote attacker who controls untrusted JSON input and its chunk sizes can exhaust CPU resources and cause denial of service in applications using AsyncParser. This issue is fixed in version 1.7.0.
📍 영향받는 시스템
Jawn AsyncParser 1.7.0 미만 버전
⚔️ 공격 벡터
조작된 크기의 작은 JSON 데이터 청크를 지속적으로 전송하여 CPU 자원 고갈 유도
🛡️ 대응 방법
Jawn 라이브러리를 1.7.0 버전 이상으로 업데이트
🔧 검증 코드
출력된 결과에서 jawn의 버전을 확인하여 1.7.0 미만인지 체크
mvn dependency:list | grep jawn