|
1 | 1 | # Caddy Security Scan History |
2 | 2 |
|
3 | | -**Image**: `caddy:2.10.2` |
| 3 | +**Image**: `caddy:2.11.2` |
4 | 4 | **Purpose**: TLS termination proxy for HTTPS support |
5 | 5 | **Documentation**: [Caddy TLS Proxy Evaluation](../../research/caddy-tls-proxy-evaluation/README.md) |
6 | 6 |
|
7 | 7 | ## Current Status |
8 | 8 |
|
9 | | -| Version | HIGH | CRITICAL | Status | Scan Date | |
10 | | -| ------- | ---- | -------- | ------------------------------------ | ----------- | |
11 | | -| 2.10.2 | 14 | 4 | ⚠️ Partial improvement after upgrade | Apr 8, 2026 | |
| 9 | +| Version | HIGH | CRITICAL | Status | Scan Date | |
| 10 | +| ------- | ---- | -------- | ------------------------------------ | ------------ | |
| 11 | +| 2.11.2 | 10 | 2 | ⚠️ Partial improvement after upgrade | Apr 15, 2026 | |
12 | 12 |
|
13 | | -**Deployment Status**: ⚠️ Requires follow-up - upgrading from `2.10` to `2.10.2` reduced findings, but HIGH/CRITICAL issues remain in Caddy binary dependencies |
| 13 | +**Deployment Status**: ⚠️ Requires follow-up — 2 CRITICAL CVEs remain in upstream Caddy binary dependencies (smallstep/certificates, grpc-go). Fixes require upstream Caddy releases. |
14 | 14 |
|
15 | 15 | ## Vulnerability Summary |
16 | 16 |
|
17 | | -The Caddy 2.10 image has: |
| 17 | +The Caddy 2.11.2 image has: |
18 | 18 |
|
19 | | -- **Alpine base image**: Clean (0 vulnerabilities) |
20 | | -- **Caddy binary (Go)**: 4 vulnerabilities in dependencies (not Caddy core) |
| 19 | +- **Alpine base image**: 3 HIGH, 0 CRITICAL (libcrypto3/libssl3, zlib — fixed versions available) |
| 20 | +- **Caddy binary (Go)**: 7 HIGH, 2 CRITICAL in dependencies (not Caddy core) |
21 | 21 |
|
22 | | -All vulnerabilities have fixed versions available upstream and are expected to be resolved in the next Caddy release. |
| 22 | +The 2 CRITICAL CVEs are in upstream Caddy binary dependencies and require Caddy to update its vendored modules. |
23 | 23 |
|
24 | 24 | ## Scan History |
25 | 25 |
|
| 26 | +### April 15, 2026 - Remediation Pass 2 (Issue #432) |
| 27 | + |
| 28 | +**Scanner**: Trivy v0.69.3 |
| 29 | +**Scan Mode**: `--scanners vuln --severity HIGH,CRITICAL` |
| 30 | +**Image**: `caddy:2.11.2` |
| 31 | +**Status**: ⚠️ **12 vulnerabilities** (10 HIGH, 2 CRITICAL) |
| 32 | + |
| 33 | +#### Summary |
| 34 | + |
| 35 | +Upgraded Caddy from `2.10.2` to `2.11.2` (latest as of 2026-04-14). Meaningful reduction in findings but 2 CRITICAL CVEs remain in upstream binary dependencies. |
| 36 | + |
| 37 | +Vulnerability comparison: |
| 38 | + |
| 39 | +| Version | HIGH | CRITICAL | |
| 40 | +| -------- | ---- | -------- | |
| 41 | +| `2.10` | 18 | 6 | |
| 42 | +| `2.10.2` | 14 | 4 | |
| 43 | +| `2.11.2` | 10 | 2 | |
| 44 | + |
| 45 | +Issue left open — CRITICALs not fully cleared. |
| 46 | + |
| 47 | +#### Target Breakdown (`2.11.2`) |
| 48 | + |
| 49 | +| Target | Type | HIGH | CRITICAL | |
| 50 | +| -------------- | -------- | ---- | -------- | |
| 51 | +| caddy (alpine) | alpine | 3 | 0 | |
| 52 | +| usr/bin/caddy | gobinary | 7 | 2 | |
| 53 | + |
| 54 | +#### CVE Details |
| 55 | + |
| 56 | +**Alpine OS layer:** |
| 57 | + |
| 58 | +| CVE | Library | Severity | Fixed In | Notes | |
| 59 | +| -------------- | ------------------- | -------- | -------- | -------------------------- | |
| 60 | +| CVE-2026-28390 | libcrypto3, libssl3 | HIGH | 3.5.6-r0 | OpenSSL DoS via NULL deref | |
| 61 | +| CVE-2026-22184 | zlib | HIGH | 1.3.2-r0 | Buffer overflow in untgz | |
| 62 | + |
| 63 | +**Caddy binary (Go):** |
| 64 | + |
| 65 | +| CVE | Library | Severity | Fixed In | Notes | |
| 66 | +| -------------- | ---------------------- | -------- | ------------- | ------------------------------------------- | |
| 67 | +| CVE-2026-34986 | go-jose/go-jose v3+v4 | HIGH | 3.0.5 / 4.1.4 | DoS via crafted JWE | |
| 68 | +| CVE-2026-30836 | smallstep/certificates | CRITICAL | 0.30.0 | Unauthenticated SCEP cert issuance | |
| 69 | +| CVE-2026-39883 | otel/sdk | HIGH | 1.43.0 | Local PATH hijack (no remote path) | |
| 70 | +| CVE-2026-33186 | google.golang.org/grpc | CRITICAL | 1.79.3 | Authorization bypass via HTTP/2 path | |
| 71 | +| CVE-2026-25679 | stdlib | HIGH | 1.26.1 | Incorrect IPv6 parsing in net/url | |
| 72 | +| CVE-2026-27137 | stdlib | HIGH | 1.26.1 | Email constraint enforcement in crypto/x509 | |
| 73 | +| CVE-2026-32280 | stdlib | HIGH | 1.26.2 | Excessive work during chain building | |
| 74 | +| CVE-2026-32282 | stdlib | HIGH | 1.26.2 | Root.Chmod follows symlinks out of root | |
| 75 | + |
| 76 | +**Overall risk**: The 2 CRITICAL CVEs (CVE-2026-30836, CVE-2026-33186) are in upstream |
| 77 | +Caddy binary dependencies and require a new Caddy release to fix. CVE-2026-33186 |
| 78 | +(gRPC authorization bypass) has a network-accessible attack path. Revisit when |
| 79 | +Caddy ships the updated grpc-go and smallstep dependencies. |
| 80 | + |
| 81 | +--- |
| 82 | + |
26 | 83 | ### April 8, 2026 - Remediation Pass 1 (Issue #428) |
27 | 84 |
|
28 | 85 | **Scanner**: Trivy v0.68.2 |
@@ -85,7 +142,7 @@ Remaining issues are in upstream Caddy binary dependencies and require vendor/up |
85 | 142 | ## How to Rescan |
86 | 143 |
|
87 | 144 | ```bash |
88 | | -trivy image --severity HIGH,CRITICAL caddy:2.10.2 |
| 145 | +trivy image --severity HIGH,CRITICAL caddy:2.11.2 |
89 | 146 | ``` |
90 | 147 |
|
91 | 148 | ## Security Advisories |
|
0 commit comments