🇰🇷 한글 설명
OpenTelemetry JavaScript 2.9.0 미만 버전에서 @opentelemetry/propagator-jaeger 라이브러리가 잘못된 형식의 HTTP 헤더를 처리할 때 발생합니다. 공격자가 특수하게 조작된 퍼센트 인코딩 값을 전송하면 decodeURIComponent() 함수에서 URIError가 발생하여 Node.js 프로세스가 예기치 않게 종료될 수 있습니다.
💡 쉬운 설명
해커가 특수한 문자가 포함된 메시지를 보내면 서버 프로그램이 이를 해석하다가 오류를 일으켜 갑자기 꺼져버리는 문제입니다. 이로 인해 서비스가 중단되는 서비스 거부(DoS) 공격이 가능합니다.
🇺🇸 원문 (English)
OpenTelemetry JavaScript is the OpenTelemetry JavaScript client. Prior to 2.9.0, @opentelemetry/propagator-jaeger decodes incoming uber-trace-id and uberctx-* HTTP header values with decodeURIComponent() without handling decode errors, allowing an unauthenticated remote attacker to send a malformed percent-encoded value that throws an uncaught URIError and terminates a Node.js process using JaegerPropagator as the active propagator. This issue is fixed in version 2.9.0.
📍 영향받는 시스템
@opentelemetry/propagator-jaeger 2.9.0 미만 버전
⚔️ 공격 벡터
인증되지 않은 원격 공격자가 조작된 uber-trace-id 또는 uberctx-* HTTP 헤더를 전송
🛡️ 대응 방법
@opentelemetry/propagator-jaeger 라이브러리를 2.9.0 버전 이상으로 업데이트
🔧 검증 코드
출력된 버전 정보가 2.9.0 미만인지 확인하여 취약 여부를 판단합니다.
npm list @opentelemetry/propagator-jaeger