🔍 CVE-2026-48038

5.3
CVSS Score
MEDIUM
2026-07-14
2026-10-24 21:10
✅ 완료

🇰🇷 한글 설명

joi는 JavaScript용 스키마 기술 언어이자 데이터 검증 라이브러리이다. 17.13.4 및 18.2.1 이전 버전에서는 재귀적 link() 스키마를 사용해 사용자 입력 JSON이나 객체를 검증하는 서비스에서 처리되지 않은 예외가 발생해 서비스 거부(DoS)가 가능하다. 요청 핸들러에서 try/catch 없이 validate()를 호출하면 깊게 중첩된 입력이 처리되지 않은 RangeError를 일으켜 프로세스가 종료될 수 있다.

💡 쉬운 설명

데이터 검증 도구 joi를 쓰는 웹 서비스에 아주 깊게 중첩된 데이터를 보내면 서버 프로세스가 멈출 수 있습니다. 버전을 업데이트하면 이 문제를 막을 수 있습니다.

🇺🇸 원문 (English)

joi is a schema description language and data validator for JavaScript. Prior to 17.13.4 and 18.2.1, denial of service is possible via an untrapped exception in services validating user-supplied JSON or object input with recursive link() schemas. When validate() is called without try/catch in a request handler, deeply nested input can trigger an unhandled RangeError and potentially crash the process; lower-impact paths using validateAsync() or try/catch produce a RangeError instead of a structured ValidationError. This issue is fixed in versions 17.13.4 and 18.2.1.

📍 영향받는 시스템

joi 17.13.4 미만 및 18.2.1 미만 버전을 사용하는 Node.js 애플리케이션

⚔️ 공격 벡터

재귀적 link() 스키마로 검증하는 엔드포인트에 깊게 중첩된 JSON 또는 객체를 전송하여 처리되지 않은 RangeError로 프로세스를 중단시킨다

🛡️ 대응 방법

joi를 17.13.4 이상 또는 18.2.1 이상으로 업그레이드하고 요청 핸들러에서 validate() 호출을 try/catch로 감싼다

🔧 검증 코드

출력된 joi 버전이 17.13.4 이상 또는 18.2.1 이상이면 조치가 완료된 것이고, 그보다 낮은 버전이면 취약하므로 업그레이드가 필요하다

Shell / Script
npm ls joi 2>/dev/null | grep joi

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L

💻 영향받는 소프트웨어

Oracle Java SE