GHSA-2w8w-qhg4-f78j
A stored XSS in jaeger UI might allow an attacker who controls a trace to perform arbitrary jaeger queries
Quick fix
GHSA-2w8w-qhg4-f78j — github.com/jaegertracing/jaeger: upgrade to the fixed version with the command below.
go get github.com/jaegertracing/jaeger@v1.47.0Details
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": "{\"<img src=x onerror=alert(1)>\":\"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.
Are you affected?
Enter the version of the package you're using.
Affected packages
0Fixed in: 1.47.0go get github.com/jaegertracing/jaeger@v1.47.0References
- https://github.com/jaegertracing/jaeger-ui/security/advisories/GHSA-vv24-rm95-q56r[WEB]
- https://github.com/jaegertracing/jaeger/security/advisories/GHSA-2w8w-qhg4-f78j[WEB]
- https://github.com/jaegertracing/jaeger[PACKAGE]
- https://github.com/jaegertracing/jaeger-ui/blob/main/packages/jaeger-ui/src/components/TracePage/TraceTimelineViewer/SpanDetail/KeyValuesTable.tsx#L49[WEB]