You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Merge #453: chore: [#434] upgrade Grafana to 13.0.0 and document CVE-2026-34986 analysis
b1cda31 docs: [#434] fix cspell errors (bearertoken, defence) (Jose Celano)
516bfc6 docs: [#434] correct CVE-2026-34986 exploitability based on live test (Jose Celano)
8d54e6b chore: [#434] fix stale Grafana version in doc comment (Jose Celano)
b5ae273 chore: [#434] upgrade Grafana to 13.0.0 and document CVE-2026-34986 analysis (Jose Celano)
Pull request description:
## Summary
Upgrades Grafana from `12.4.2` → `13.0.0` to eliminate CVE-2026-34986, an unauthenticated remote DoS (CVSS 7.5, AV:N/AC:L/PR:N/UI:N) that affects our public-facing Grafana endpoint.
## Background
A full re-scan of `grafana/grafana:12.4.2` with an updated Trivy DB revealed 13 HIGH CVEs instead of the 4 originally found. Among them, CVE-2026-34986 (`go-jose/go-jose/v4 < 4.1.4`) allows an attacker to crash Grafana by sending a crafted JWE bearer token to any HTTP endpoint — no credentials required.
Grafana fixed this in [grafana/grafana#121830](grafana/grafana#121830) with a `no-backport` label, so no 12.x patch will be issued. `grafana/grafana:13.0.0` was released on 2026-04-11 and ships `go-jose/v4 4.1.4`.
## Version comparison
| Version | HIGH | CRITICAL | CVE-2026-34986 (remote DoS) |
| -------- | ---- | -------- | --------------------------- |
| `12.4.2` | 13 | 0 | present |
| `13.0.0` | 10 | 0 | **absent** ✅ |
## Files changed
| File | Change |
| ---- | ------ |
| `src/domain/grafana/config.rs` | Bump `GRAFANA_DOCKER_IMAGE_TAG` `12.4.2` → `13.0.0` |
| `src/infrastructure/.../context/grafana.rs` | Fix stale version in doc comment |
| `docs/issues/434-grafana-cves.md` | Full analysis, PoC, mitigation options, 13.0.0 scan results |
| `docs/security/docker/scans/grafana.md` | Updated scan history with 13.0.0 entry |
| `.github/workflows/docker-security-scan.yml` | Update example comment to 13.0.0 |
| `project-words.txt` | New security-related words for cspell |
## Validation
- All linters pass: `cargo run --bin linter all`
Closes#434
ACKs for top commit:
josecelano:
ACK b1cda31
Tree-SHA512: b257b521568301ce59868188bb2342375f0015a0ddf8e63c428e2e701a0f362161e0a8513a1b69b0044d9ff54b5507a0aae1b40572608cee02e4d3b302dc4797
|CVE-2026-28390 | No | Caddy terminates TLS; Grafana never processes raw TLS |
317
+
|CVE-2026-22184 | No |`untgz` path — unreachable via dashboard UI |
318
+
|CVE-2026-34040 | No | Moby Docker-client code, not a Grafana HTTP endpoint |
319
+
|CVE-2026-39883 | No | Local PATH-hijack — requires host shell access |
320
+
|CVE-2026-25679 | No |`elasticsearch` plugin internal path — not reachable via dashboard |
321
+
|CVE-2026-27137 | No |`elasticsearch` plugin internal path — not reachable via dashboard |
322
+
|CVE-2026-32280 | No | Go chain-building DoS on outbound TLS — not reachable from public internet |
323
+
|CVE-2026-32282 | No | Local `Root.Chmod` symlink — requires host shell access |
324
+
|CVE-2026-34986 | Not confirmed | JWE bearer token routed to API-key handler in live test; panic requires a code path that calls `jwe.ParseEncrypted()` (e.g. JWT-auth or OIDC flows) |
325
+
326
+
**Overall risk**: CVE-2026-34986 was not confirmed exploitable via simple bearer token
327
+
on this deployment — the API-key auth handler intercepted the request before go-jose
328
+
was called. The upgrade to `grafana/grafana:13.0.0` eliminates the vulnerability at
329
+
its root regardless. The remaining 10 HIGH CVEs have no realistic remote attack path
330
+
in this deployment. No CRITICALs in any version we are now deploying.
0 commit comments