GitHub Advisoryadvisory · Go

GHSA-2w8w-qhg4-f78j A stored XSS in jaeger UI might allow an attacker who controls a trace to perform arbitrary jaeger queries

MEDIUM Published 2023-07-11 Modified 2023-07-11 Official page ↗
Ecosystem
Go
Packages
github.com/jaegertracing/jaeger
Severity
Moderate
CVSS vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N
Weaknesses
CWE-79
Reviewed
2023-07-11

Affected packages

• Go github.com/jaegertracing/jaeger: < 1.47.0 → fixed in 1.47.0

Description

Related UI vulnerability advisory: https://github.com/jaegertracing/jaeger-ui/security/advisories/GHSA-vv24-rm95-q56r Summary Jaeger UI is using the `json-markup` dependency to display span attributes and resources. This dependency is not sanitising keys of an object though, thus the `KeyValuesTable` is vulnerable to XSS. Details The vulnerable line is here: https://github.com/jaegertracing/jaeger-ui/blob/main/packages/jaeger-ui/src/components/TracePage/TraceTimelineViewer/SpanDetail/KeyValuesTable.tsx#L49 PoC 1. Start a Jaeger UI 2. Save the following trace as a file: ```json { "data": [ { "traceID": "076ef819cc06c45a", "spans": [ { "traceID": "076ef819cc06c45a", "spanID": "076ef819cc06c45a", "flags": 1, "operationName": "and open 'attributes'", "references": [], "startTime": 1678196149232010, "duration": 13485, "tags": [ { "key": "sampler.type", "type": "string", "value": "{\"\":\"test\"}" } ], "logs": [], "processID": "p1", "warnings": null } ], "processes": { "p1": { "serviceName": "click here", "tags": [ ] } }, "warnings": null } ], "total": 0, "limit": 0, "offset": 0, "errors": null } ``` 3. Upload that trace to Jaeger UI in order to visualise it. 4. Open the trace, open it's span's attributes. 5. XSS should be fired. Impact This is a XSS on Jaeger UI. XSS can be used to run JavaScript.

Related

Weakness · CWE (1)

  • CWE-79 Improper Neutralization of Input During Web Page Generation weakness

References