Skip to content

Commit c80af74

Browse files
committed
Merge #458: docs: [#429] document deployer scan pass-2 - CRITICAL pending OpenTofu upstream
f466dfb docs: [#429] document deployer scan pass-2 - CRITICAL pending OpenTofu upstream (Jose Celano) Pull request description: ## Summary Documents Remediation Pass 2 for the `torrust/tracker-deployer` Docker image CVE scan (issue #429). ## Changes - `docs/security/docker/scans/torrust-tracker-deployer.md` — added Pass 2 scan entry (Apr 15, 2026) with full CVE tables and decision rationale - `docs/security/docker/scans/README.md` — updated deployer row: 46 HIGH / 1 CRITICAL, Apr 15, 2026 - `docs/issues/429-deployer-cves.md` — checked off completed steps; filled Outcome - `project-words.txt` — added `cpython`, `kenv`, `libexpat` ## Scan results (Pass 2 — Apr 15, 2026) Image rebuilt `--no-cache` with OpenTofu v1.11.6 (latest). | Target | HIGH | CRITICAL | |--------|------|----------| | Debian OS (trixie 13.4) | 42 | 0 | | `usr/bin/tofu` | 4 | 1 | | **Total** | **46** | **1** | ## Decision **Issue #429 remains open.** The CRITICAL CVE-2026-33186 (gRPC-Go authorization bypass via HTTP/2 path validation) is present in `google.golang.org/grpc v1.76.0` embedded in `usr/bin/tofu`. The fix requires grpc-go ≥ 1.79.3; OpenTofu v1.11.6 has not yet updated this dependency. All Debian OS HIGH CVEs are `affected`/`will_not_fix`/`<no-dsa>` with no trixie backports available — accepted risk (same status as backup/Caddy OS layers). **Revisit**: when OpenTofu ships v1.11.7+ or v1.12.x with upgraded grpc-go. Related to #429 ACKs for top commit: josecelano: ACK f466dfb Tree-SHA512: 6eec46651eae057031545b3a8bd08c4787dfad8f561bbf382d44432cea366065758844cc28ad4d02123433f78ac3ec715b43025b60e42842cbdd5c84fe149b3d
2 parents 6bb23eb + f466dfb commit c80af74

4 files changed

Lines changed: 103 additions & 28 deletions

File tree

docs/issues/429-deployer-cves.md

Lines changed: 16 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -33,37 +33,38 @@ Remaining findings split into two areas:
3333

3434
## Steps
3535

36-
- [ ] Check current OpenTofu version pinned in the Dockerfile:
36+
- [x] Check current OpenTofu version pinned in the Dockerfile:
3737
`grep -i opentofu docker/deployer/Dockerfile`
38-
- [ ] Check latest OpenTofu release:
38+
- [x] Check latest OpenTofu release:
3939
<https://github.com/opentofu/opentofu/releases>
40-
- [ ] Rebuild and re-scan:
40+
- [x] Rebuild and re-scan:
4141

4242
```bash
4343
docker build --no-cache -t torrust/tracker-deployer:local docker/deployer/
4444
trivy image --severity HIGH,CRITICAL torrust/tracker-deployer:local
4545
```
4646

47-
- [ ] Compare against the pass-1 baseline in
47+
- [x] Compare against the pass-1 baseline in
4848
`docs/security/docker/scans/torrust-tracker-deployer.md`
49-
- [ ] For Debian base package CVEs, check fix availability:
49+
- [x] For Debian base package CVEs, check fix availability:
5050
<https://security-tracker.debian.org/tracker/>
51-
- [ ] Update `docs/security/docker/scans/torrust-tracker-deployer.md` with new
51+
- [x] Update `docs/security/docker/scans/torrust-tracker-deployer.md` with new
5252
scan results
5353
- [ ] **If CRITICAL is cleared**: update Dockerfile OpenTofu version; post results
5454
comment; close #429
5555
- [ ] **If only Debian packages improved**: post results comment; re-evaluate open
5656
status
57-
- [ ] **If no change**: post comment with accepted risk rationale for remaining
57+
- [x] **If no change**: post comment with accepted risk rationale for remaining
5858
CVEs; label `accepted-risk`; leave open with revisit note
5959

6060
## Outcome
6161

62-
<!-- Fill in after doing the work -->
63-
64-
- Date:
65-
- Current OpenTofu version in Dockerfile:
66-
- Latest OpenTofu release:
67-
- Findings after rebuild (HIGH / CRITICAL):
68-
- Decision: fixed / partial / accepted risk
69-
- Comment/PR:
62+
- Date: Apr 15, 2026
63+
- Current OpenTofu version in Dockerfile: installed via script (no pinned version)
64+
- Latest OpenTofu release: v1.11.6 (2026-04-08) — installed in rebuilt image
65+
- Findings after rebuild (HIGH / CRITICAL): 46 HIGH / 1 CRITICAL
66+
- Debian OS: 42 HIGH, 0 CRITICAL
67+
- `usr/bin/tofu` (v1.11.6): 4 HIGH, 1 CRITICAL
68+
- Decision: **leave open** — CRITICAL CVE-2026-33186 (grpc-go gRPC auth bypass) remains in tofu binary; requires OpenTofu upstream to bump grpc-go to v1.79.3+
69+
- Comment/PR: PR #458, comment on #429
70+
- Revisit: when OpenTofu ships v1.11.7+ or v1.12.x with updated grpc-go dependency

docs/security/docker/scans/README.md

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,16 @@ This directory contains historical security scan results for Docker images used
44

55
## Current Status Summary
66

7-
| Image | Version | HIGH | CRITICAL | Status | Last Scan | Details |
8-
| -------------------------------------- | ------- | ---- | -------- | ------------------------------------ | ------------ | ----------------------------------------------- |
9-
| `torrust/tracker-deployer` | trixie | 44 | 1 | ⚠️ Partial remediation | Apr 8, 2026 | [View](torrust-tracker-deployer.md) |
10-
| `torrust/tracker-backup` | trixie | 6 | 0 | ⚠️ Accepted risk (Debian `<no-dsa>`) | Apr 15, 2026 | [View](torrust-tracker-backup.md) |
11-
| `torrust/tracker-ssh-server` | 3.23.3 | 0 | 0 | ✅ Remediated (vuln scan) | Apr 8, 2026 | [View](torrust-ssh-server.md) |
12-
| `torrust/tracker-provisioned-instance` | 24.04 | 0 | 0 | ✅ Remediated (vuln scan) | Apr 8, 2026 | [View](torrust-tracker-provisioned-instance.md) |
13-
| `caddy` | 2.11.2 | 10 | 2 | ⚠️ Partial remediation | Apr 15, 2026 | [View](caddy.md) |
14-
| `prom/prometheus` | v3.11.2 | 4 | 0 | ✅ Remediated | Apr 14, 2026 | [View](prometheus.md) |
15-
| `grafana/grafana` | 12.4.2 | 4 | 0 | ⚠️ Partial remediation | Apr 8, 2026 | [View](grafana.md) |
16-
| `mysql` | 8.4 | 9 | 1 | ⚠️ Accepted risk (gosu) | Apr 15, 2026 | [View](mysql.md) |
7+
| Image | Version | HIGH | CRITICAL | Status | Last Scan | Details |
8+
| -------------------------------------- | ------- | ---- | -------- | -------------------------------------- | ------------ | ----------------------------------------------- |
9+
| `torrust/tracker-deployer` | trixie | 46 | 1 | ⚠️ CRITICAL blocked (OpenTofu grpc-go) | Apr 15, 2026 | [View](torrust-tracker-deployer.md) |
10+
| `torrust/tracker-backup` | trixie | 6 | 0 | ⚠️ Accepted risk (Debian `<no-dsa>`) | Apr 15, 2026 | [View](torrust-tracker-backup.md) |
11+
| `torrust/tracker-ssh-server` | 3.23.3 | 0 | 0 | ✅ Remediated (vuln scan) | Apr 8, 2026 | [View](torrust-ssh-server.md) |
12+
| `torrust/tracker-provisioned-instance` | 24.04 | 0 | 0 | ✅ Remediated (vuln scan) | Apr 8, 2026 | [View](torrust-tracker-provisioned-instance.md) |
13+
| `caddy` | 2.11.2 | 10 | 2 | ⚠️ Partial remediation | Apr 15, 2026 | [View](caddy.md) |
14+
| `prom/prometheus` | v3.11.2 | 4 | 0 | ✅ Remediated | Apr 14, 2026 | [View](prometheus.md) |
15+
| `grafana/grafana` | 12.4.2 | 4 | 0 | ⚠️ Partial remediation | Apr 8, 2026 | [View](grafana.md) |
16+
| `mysql` | 8.4 | 9 | 1 | ⚠️ Accepted risk (gosu) | Apr 15, 2026 | [View](mysql.md) |
1717

1818
**Overall Status**: ⚠️ **CVE database update detected** - Most images still show increased vulnerability counts from previous scans (Feb-Dec 2025). Deployer has a first remediation pass applied (49 HIGH -> 44 HIGH, with 1 CRITICAL still open).
1919

docs/security/docker/scans/torrust-tracker-deployer.md

Lines changed: 73 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@ Security scan history for the `torrust/tracker-deployer` Docker image.
44

55
## Current Status
66

7-
| Version | HIGH | CRITICAL | Status | Last Scan |
8-
| ------- | ---- | -------- | ------------------------------------------ | ----------- |
9-
| trixie | 44 | 1 | ⚠️ Improved after remediation (still open) | Apr 8, 2026 |
7+
| Version | HIGH | CRITICAL | Status | Last Scan |
8+
| ------- | ---- | -------- | -------------------------------------------------- | ------------ |
9+
| trixie | 46 | 1 | ⚠️ CRITICAL blocked on OpenTofu upstream (grpc-go) | Apr 15, 2026 |
1010

1111
## Build & Scan Commands
1212

@@ -24,6 +24,76 @@ trivy image --severity HIGH,CRITICAL torrust/tracker-deployer:local
2424

2525
## Scan History
2626

27+
### April 15, 2026 - Remediation Pass 2 (Issue #429)
28+
29+
**Image**: `torrust/tracker-deployer:local`
30+
**OpenTofu version**: v1.11.6 (latest, released 2026-04-08)
31+
**Trivy Version**: 0.69.3
32+
**Scan Mode**: `--scanners vuln --severity HIGH,CRITICAL`
33+
**Base OS**: Debian 13.4 (trixie)
34+
**Status**: ⚠️ **1 CRITICAL remains** (blocked on OpenTofu upstream) — 46 HIGH, 1 CRITICAL
35+
36+
#### Summary
37+
38+
Image rebuilt from scratch with `--no-cache`. OpenTofu v1.11.6 (latest) was installed.
39+
CRITICAL in `usr/bin/tofu` (CVE-2026-33186, grpc-go) **remains unresolved** — needs
40+
OpenTofu to upgrade `google.golang.org/grpc` to v1.79.3+.
41+
42+
#### Target breakdown
43+
44+
| Target | HIGH | CRITICAL |
45+
| ---------------------------------------------- | ------ | -------- |
46+
| `torrust/tracker-deployer:local` (debian 13.4) | 42 | 0 |
47+
| `usr/bin/tofu` | 4 | 1 |
48+
| **Total** | **46** | **1** |
49+
50+
#### Comparison vs pass 1 (Apr 8)
51+
52+
| Target | Apr 8 (HIGH / CRITICAL) | Apr 15 (HIGH / CRITICAL) | Delta |
53+
| -------------- | ----------------------- | ------------------------ | ------------------------------------------ |
54+
| Debian OS | 42 / 0 | 42 / 0 | no change (same Debian state) |
55+
| `usr/bin/tofu` | 2 / 1 | 4 / 1 | +2 HIGH (Trivy DB update) |
56+
| **Total** | **44 / 1** | **46 / 1** | **+2 HIGH (Trivy DB), CRITICAL unchanged** |
57+
58+
#### `usr/bin/tofu` CVE details (OpenTofu v1.11.6)
59+
60+
| CVE | Library | Severity | Status | Installed | Fixed | Title |
61+
| -------------- | ------------------------------ | -------- | ------ | --------- | ------ | ----------------------------------------------- |
62+
| CVE-2026-33186 | google.golang.org/grpc | CRITICAL | fixed | v1.76.0 | 1.79.3 | gRPC-Go: Authorization bypass via HTTP/2 path |
63+
| CVE-2026-34986 | github.com/go-jose/go-jose/v4 | HIGH | fixed | v4.1.2 | 4.1.4 | JOSE: DoS via crafted JSON Web Encryption |
64+
| CVE-2026-4660 | github.com/hashicorp/go-getter | HIGH | fixed | v1.8.2 | 1.8.6 | go-getter: Arbitrary file reads via crafted URL |
65+
| CVE-2026-24051 | go.opentelemetry.io/otel/sdk | HIGH | fixed | v1.38.0 | 1.40.0 | OTel Go SDK: Arbitrary code execution via PATH |
66+
| CVE-2026-39883 | go.opentelemetry.io/otel/sdk | HIGH | fixed | v1.38.0 | 1.43.0 | OTel Go SDK: BSD kenv PATH hijacking |
67+
68+
All `usr/bin/tofu` CVEs have fixes available in their respective upstream libraries but
69+
require OpenTofu to update its Go module dependencies and ship a new release.
70+
71+
#### Notable Debian OS CVEs (selected new or notable HIGH, all `affected` / no fix in trixie)
72+
73+
| CVE | Package | Title |
74+
| -------------- | -------------- | ----------------------------------------------------------- |
75+
| CVE-2025-13836 | python3.13 | cpython: Excessive read buffering DoS in http.client |
76+
| CVE-2025-15366 | python3.13 | cpython: IMAP command injection (`will_not_fix`) |
77+
| CVE-2025-15367 | python3.13 | cpython: POP3 command injection (`will_not_fix`) |
78+
| CVE-2026-25210 | libexpat1 | libexpat: Integer overflow — data integrity issues |
79+
| CVE-2026-29111 | libsystemd0 | systemd: Assert/freeze via spurious IPC (`<no-dsa>`) |
80+
| CVE-2026-35385 | openssh-client | OpenSSH: Priv escalation via scp legacy protocol |
81+
| CVE-2026-35414 | openssh-client | OpenSSH: Security bypass via authorized_keys principals |
82+
| CVE-2026-35535 | sudo | Sudo: Privilege escalation via failed privilege drop |
83+
| CVE-2025-69720 | ncurses | ncurses: Buffer overflow in `infocmp` CLI tool (`<no-dsa>`) |
84+
85+
#### Decision
86+
87+
**Leave issue #429 open — CRITICAL unresolved.**
88+
89+
- CRITICAL CVE-2026-33186 (grpc-go, gRPC authorization bypass) remains in `usr/bin/tofu` v1.11.6
90+
- Fix requires OpenTofu to bump `google.golang.org/grpc` to v1.79.3+ and ship a new release
91+
- Debian OS CVEs are all `affected`/`will_not_fix`/`<no-dsa>` with no trixie backports available
92+
93+
**Revisit**: When OpenTofu releases v1.11.7+ or v1.12.x with updated `grpc-go` dependency.
94+
95+
---
96+
2797
### April 8, 2026 - Remediation Pass 1 (Issue #428)
2898

2999
**Image**: `torrust/tracker-deployer:local`

project-words.txt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -578,3 +578,7 @@ userinfo
578578
ключ
579579
конфиг
580580
файл
581+
582+
cpython
583+
kenv
584+
libexpat

0 commit comments

Comments
 (0)