🇰🇷 한글 설명
kin-openapi 0.148.0 미만 버전에서 OpenAPI 3.1 검증 과정 중 YAML의 NaN 또는 무한대(infinity) 값을 적절히 필터링하지 못하는 취약점이 발견되었습니다. 공격자가 특수하게 조작된 YAML 요청을 보내면 내부 의존성 라이브러리에서 nil 포인터 역참조가 발생하여 서비스가 중단될 수 있습니다.
💡 쉬운 설명
웹 서비스가 숫자를 처리할 때 '숫자가 아님(NaN)'이나 '무한대' 같은 잘못된 값을 제대로 걸러내지 못해 발생하는 문제입니다. 공격자가 이 값을 보내면 프로그램이 갑자기 멈추거나 꺼질 수 있습니다.
🇺🇸 원문 (English)
kin-openapi is a Go project for handling OpenAPI files. Prior to 0.148.0, the OpenAPI 3.1 validation path passes YAML NaN and infinity numeric values to santhosh-tekuri/jsonschema v6.0.2 without applying kin-openapi's existing finite-number guards. A remote unauthenticated client can send an application/yaml or application/x-yaml request body containing .nan, .inf, or -.inf to an operation with a numeric constraint, causing the dependency to create and dereference a nil big.Rat during ValidateRequest. Standard net/http servers recover the panic per connection, while other hosts or application goroutines may terminate the process. This issue is fixed in version 0.148.0.
📍 영향받는 시스템
kin-openapi versions prior to 0.148.0
⚔️ 공격 벡터
인증되지 않은 원격 공격자가 application/yaml 형식의 요청 본문에 .nan, .inf, -.inf 값을 포함하여 전송
🛡️ 대응 방법
kin-openapi를 0.148.0 이상의 버전으로 업데이트
🔧 검증 코드
출력된 버전 번호가 0.148.0 미만인지 확인
go list -m kin-openapi 2>/dev/null
📊 CVSS Vector String
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
💻 영향받는 소프트웨어
IBM WebSphere Application Server