dd-traceのURLクエリ文字列処理に脆弱性、細工したリクエストでサービス停止のおそれ
Summary
dd-traceのURLクエリ文字列を隠す処理の正規表現に、細工したリクエストで過剰な処理が起きる脆弱性(CWE-1333、CVSS v4 8.7)が見つかりました。2.0.0から5.131.1より前、および6.20.1より前のdd-trace-jsが影響を受け、攻撃されるとCPUを使い切ってアプリケーションが応答しなくなるおそれがあります。5.131.1または6.20.1以降の修正版に更新してください。
AI summary
Written by an external AI model and may contain mistakes. Check the original description and references below before acting on it.
dd-traceのURLクエリ文字列を隠す処理の正規表現に、細工したリクエストで過剰な処理が起きる脆弱性(CWE-1333、CVSS v4 8.7)が見つかりました。2.0.0から5.131.1より前、および6.20.1より前のdd-trace-jsが影響を受け、攻撃されるとCPUを使い切ってアプリケーションが応答しなくなるおそれがあります。5.131.1または6.20.1以降の修正版に更新してください。
Affected packages
| Ecosystem | Package | Affected | Fixed |
|---|---|---|---|
| DataDog | dd-trace-js | — | — |
| npm | dd-trace |
≥ 6.0.0, < 6.20.1 |
6.20.1 |
Original description The description as published by the source.
Summary
A regular expression used to obfuscate URL query strings can consume excessive CPU when processing certain attacker-controlled input. This can stall request processing and cause denial of service in applications using affected HTTP tracing integrations.
Details
The default query-string obfuscation pattern can exhibit excessive backtracking. The pattern is applied synchronously when recording HTTP URL metadata, allowing query-string processing to occupy application resources for an extended period.
As a workaround, set DD_TRACE_OBFUSCATION_QUERY_STRING_REGEXP to the fixed regex below, then restart the application.
DD_TRACE_OBFUSCATION_QUERY_STRING_REGEXP='(?:(?:"|%22)?)(?:(?:old[-_]?|new[-_]?)?p(?:ass)?w(?:or)?d(?:1|2)?|pass(?:[-_]?phrase)?|secret|(?:api[-_]?|private[-_]?|public[-_]?|access[-_]?|secret[-_]?|app(?:lication)?[-_]?)key(?:[-_]?id)?|token|consumer[-_]?(?:id|key|secret)|sign(?:ed|ature)?|auth(?:entication|orization)?)(?:(?:\s|%20)*(?:=|%3D)[^&]+|(?:"|%22)(?:\s|%20)*(?::|%3A)(?:\s|%20)*(?:"|%22)(?:%2[^2]|%[^2]|[^"%])+(?:"|%22))|(?:bearer(?:\s|%20)+[a-z0-9._\-]+|token(?::|%3A)[a-z0-9]{13}|gh[opsu]_[0-9a-zA-Z]{36}|(?:(?<![\w-])|(?<=%[0-9a-f]{2}))ey[I-L][\w-]+(?:=|%3D)*\.ey[I-L][\w-]+(?:=|%3D)*(?:\.(?:[\w.+/=-]|%3D|%2F|%2B)+)?|-{5}BEGIN(?:[a-z\s]|%20)+PRIVATE(?:\s|%20)KEY-{5}[^\-]+-{5}END(?:[a-z\s]|%20)+PRIVATE(?:\s|%20)KEY(?:-{5})?(?:\n|%0A)?|(?:ssh-(?:rsa|dss)|ecdsa-[a-z0-9]+-[a-z0-9]+)(?:\s|%20|%09)+(?:[a-z0-9/.+]|%2F|%5C|%2B){100,}(?:=|%3D)*…
Source: CVE.org (CVE Program・cvelistV5) NVD GitHub Advisory