🇰🇷 한글 설명
Datadog PHP Tracer 1.19.2 미만 버전에서 W3C baggage HTTP 헤더를 처리할 때 크기 제한을 강제하지 않는 취약점이 발견되었습니다. 공격자가 임의로 큰 데이터를 전송할 경우 해시맵 엔트리 할당 및 무제한적인 CPU와 메모리 소비를 유발할 수 있습니다.
💡 쉬운 설명
해커가 특수하게 조작된 데이터를 보내면 서버의 메모리와 CPU를 과도하게 사용하여 서버를 느리게 하거나 멈추게 할 수 있습니다. 이는 마치 너무 많은 요청을 한꺼번에 보내 서버를 마비시키는 것과 비슷합니다.
🇺🇸 원문 (English)
The Datadog PHP Tracer provides application performance monitoring and distributed tracing for PHP. Prior to 1.19.2, ddtrace_deserialize_baggage in ext/distributed_tracing_headers.c parses incoming W3C baggage HTTP headers without enforcing DD_TRACE_BAGGAGE_MAX_ITEMS or DD_TRACE_BAGGAGE_MAX_BYTES. A remote unauthenticated client can send an arbitrarily large number of comma-separated key-value pairs or a single oversized value, causing the tracer to allocate hash-map entries and consume unbounded CPU and memory on each request. Baggage extraction is enabled by default in most affected deployments unless baggage is removed from DD_TRACE_PROPAGATION_STYLE or DD_TRACE_PROPAGATION_STYLE_EXTRACT. This issue is fixed in version 1.19.2.
📍 영향받는 시스템
Datadog PHP Tracer 1.19.2 미만 버전
⚔️ 공격 벡터
인증되지 않은 원격 공격자가 조작된 W3C baggage HTTP 헤더를 전송하여 자원 고갈 유도
🛡️ 대응 방법
Datadog PHP Tracer를 1.19.2 이상의 최신 버전으로 업데이트
🔧 검증 코드
출력된 ddtrace의 버전이 1.19.2보다 낮은지 확인하십시오.
php -r "echo extension_loaded('ddtrace') ? 'Loaded' : 'Not Loaded';" && php -r "if(extension_loaded('ddtrace')) { echo 'Version: ' . phpversion('ddtrace'); }" 2>/dev/null