Containerfile
Defines the final nginx image based on debian:bookworm-slim, installs a custom-built .deb package, copies entrypoint scripts from the upstream nginx:1.25-bookworm image, and sets up log symlinks.
Containerfile:1-84Unbounded memory growth with session handling in TLSv1.3
CVE-2024-2511 has a selected CVSS score of 5.9 (medium); EIP currently links 1 lab environment.
Issue summary: Some non-default TLS server configurations can cause unbounded memory growth when processing TLSv1.3 sessions Impact summary: An attacker may exploit certain server configurations to trigger unbounded memory growth that would lead to a Denial of Service This problem can occur in TLSv1.3 if the non-default SSL_OP_NO_TICKET option is being used (but not if early_data support is also configured and the default anti-replay protection is in use). In this case, under certain conditions, the session cache can get into an incorrect state and it will fail to flush properly as it fills. The session cache will continue to grow in an unbounded manner. A malicious client could deliberately create the scenario for this failure to force a Denial of Service. It may also happen by accident in normal operation. This issue only affects TLS servers supporting TLSv1.3. It does not affect TLS clients. The FIPS modules in 3.2, 3.1 and 3.0 are not affected by this issue. OpenSSL 1.0.2 is also not affected by this issue.
CISA Coordinator · SSVC 2.0.3 · Evaluated Apr 9, 2024 · Source: CVE List
| Product | Source | Version range | Status |
|---|---|---|---|
OpenSSLBrowse OpenSSL / OpenSSLDefault status: unaffected | CVE List | 3.2.0 to < 3.2.2 | affected |
| 3.1.0 to < 3.1.6 | affected | ||
| 3.0.0 to < 3.0.14 | affected | ||
| 1.1.1 to < 1.1.1y | affected | ||
RUGGEDCOM RM1224 LTE(4G) EUBrowse Siemens / RUGGEDCOM RM1224 LTE(4G) EUDefault status: unknown | CVE List | Before V8.2 | affected |
RUGGEDCOM RM1224 LTE(4G) NAMBrowse Siemens / RUGGEDCOM RM1224 LTE(4G) NAMDefault status: unknown | CVE List | Before V8.2 | affected |
RUGGEDCOM RST2428PBrowse Siemens / RUGGEDCOM RST2428PDefault status: unknown | CVE List | Before V3.1 | affected |
SCALANCE M804PBBrowse Siemens / SCALANCE M804PBDefault status: unknown | CVE List | Before V8.2 | affected |
SCALANCE M812-1 ADSL-RouterBrowse Siemens / SCALANCE M812-1 ADSL-RouterDefault status: unknown | CVE List | Before V8.2 | affected |
SCALANCE M816-1 ADSL-RouterBrowse Siemens / SCALANCE M816-1 ADSL-RouterDefault status: unknown | CVE List | Before V8.2 | affected |
SCALANCE M826-2 SHDSL-RouterBrowse Siemens / SCALANCE M826-2 SHDSL-RouterDefault status: unknown | CVE List | Before V8.2 | affected |
SCALANCE M874-2Browse Siemens / SCALANCE M874-2Default status: unknown | CVE List | Before V8.2 | affected |
SCALANCE M874-3Browse Siemens / SCALANCE M874-3Default status: unknown | CVE List | Before V8.2 | affected |
SCALANCE M874-3 3G-Router (CN)Browse Siemens / SCALANCE M874-3 3G-Router (CN)Default status: unknown | CVE List | Before V8.2 | affected |
SCALANCE M876-3Browse Siemens / SCALANCE M876-3Default status: unknown | CVE List | Before V8.2 | affected |
A source-built nginx 1.25.5 container image that remediates CVE-2024-6119 (OpenSSL version bump) and CVE-2026-42945 (backported source patch) while preserving upstream runtime behavior. The environment includes a Dockerfile, build scripts, patch files, regression tests, compatibility tests, and VEX generation scripts.
README.md:1-4Containerfile:1-84The README explicitly states the project remediates two CVEs (CVE-2024-6119 and CVE-2026-42945) and provides a test suite, patch provenance, and VEX generation to demonstrate the fixes. The Containerfile builds a custom nginx image with these remediations.
README.md:1-4README.md:7-10Defines the final nginx image based on debian:bookworm-slim, installs a custom-built .deb package, copies entrypoint scripts from the upstream nginx:1.25-bookworm image, and sets up log symlinks.
Containerfile:1-84Fetches nginx and NJS source tarballs with SHA256 verification, applies the CVE-2026-42945 patch, compiles nginx with upstream-identical configure flags, builds dynamic modules and debug binaries, and assembles a .deb package.
build/build.sh:1-925A one-line backported fix for CVE-2026-42945 that resets e->is_args in ngx_http_script_regex_end_code().
README.md:201-204Downloads upstream nginx source tarballs, verifies their integrity, generates a diff, and confirms the committed patch applies cleanly and matches the upstream fix.
build/verify-patch.sh:1-150Generates an OpenVEX v0.2.0 document declaring CVE-2026-42945 as fixed via backported patch, for use with vulnerability scanners.
build/generate-vex.sh:1-68Starts a container with a custom nginx config that exercises the vulnerable rewrite code path, sends HTTP requests that manipulate query string state, and asserts no crashes, buffer overflows, or malformed responses occur.
test/test_cve_2026_42945.py:1-446Boots both the baseline nginx:1.25-bookworm and the candidate fixed image, and compares image metadata, nginx -V output, dynamic modules, filesystem layout, HTTP responses, TLS termination, graceful shutdown, config reload, and concurrent request handling.
test/compat.py:1-930Insufficient evidence
Listed in the README residual risk table as a vulnerability in libldap-2.5-0 with status 'Won't fix'. No evidence of active remediation or exploitation is provided.
README.md:456-457Insufficient evidence
Listed in the README residual risk table as a vulnerability in nginx, noted as mitigated in nginx >= 1.25.3 but still flagged by scanners. No evidence of active remediation or exploitation is provided.
README.md:454-455Insufficient evidence
Mentioned in the README as an OpenSSL CVE fixed by the version bump to 3.0.20, but no specific evidence of the vulnerability or its remediation is provided beyond the general statement.
README.md:170-172Insufficient evidence
Mentioned in the README as an OpenSSL CVE fixed by the version bump to 3.0.20, but no specific evidence of the vulnerability or its remediation is provided beyond the general statement.
README.md:170-172Insufficient evidence
Mentioned in the README as an OpenSSL CVE fixed by the version bump to 3.0.20, but no specific evidence of the vulnerability or its remediation is provided beyond the general statement.
README.md:170-172Insufficient evidence
Mentioned in the README as an OpenSSL CVE fixed by the version bump to 3.0.20, but no specific evidence of the vulnerability or its remediation is provided beyond the general statement.
README.md:170-172Insufficient evidence
Mentioned in the README as an OpenSSL CVE fixed by the version bump to 3.0.20, but no specific evidence of the vulnerability or its remediation is provided beyond the general statement.
README.md:170-172Insufficient evidence
Mentioned in the README as an OpenSSL CVE fixed by the version bump to 3.0.20, but no specific evidence of the vulnerability or its remediation is provided beyond the general statement.
README.md:170-172Supported by supplied evidence
The README describes the remediation as a dependency version bump to libssl3 >= 3.0.14, enforced by the .deb package's Depends field. The Containerfile installs libssl3, and the build script declares the dependency. The README also notes that scanners no longer report this CVE.
README.md:7-8README.md:160-172Containerfile:28-30build/build.sh:1-4Insufficient evidence
Mentioned in the README as an OpenSSL CVE fixed by the version bump to 3.0.20, but no specific evidence of the vulnerability or its remediation is provided beyond the general statement.
README.md:170-172Insufficient evidence
Mentioned in the README as an OpenSSL CVE fixed by the version bump to 3.0.20, but no specific evidence of the vulnerability or its remediation is provided beyond the general statement.
README.md:170-172Insufficient evidence
Listed in the README residual risk table as a vulnerability in dpkg with status 'Fixable (upgrade to 1.21.23)'. No evidence of active remediation or exploitation is provided.
README.md:458-459Insufficient evidence
Mentioned in the README as an OpenSSL CVE fixed by the version bump to 3.0.20, but no specific evidence of the vulnerability or its remediation is provided beyond the general statement.
README.md:170-172Insufficient evidence
Listed in the README residual risk table as a vulnerability in ncurses with status 'Won't fix'. No evidence of active remediation or exploitation is provided.
README.md:460-461Insufficient evidence
Listed in the README residual risk table as a vulnerability in dpkg with status 'Fixable (upgrade to 1.21.23)'. No evidence of active remediation or exploitation is provided.
README.md:458-459Insufficient evidence
Listed in the README residual risk table as a vulnerability in libgnutls30 with status 'No fix available in bookworm'. No evidence of active remediation or exploitation is provided.
README.md:456-457Insufficient evidence
Listed in the README residual risk table as a vulnerability in libgnutls30 with status 'No fix available in bookworm'. No evidence of active remediation or exploitation is provided.
README.md:456-457Supported by supplied evidence
The README, build script, patch file, verification script, and regression test all provide evidence of a backported one-line fix from nginx 1.30.1. The build script applies the patch and verifies the fix marker; the verification script re-derives the patch from upstream tarballs; the regression test exercises the vulnerable code path without crashes.
README.md:7-10README.md:201-204build/build.sh:60-80build/verify-patch.sh:1-150test/test_cve_2026_42945.py:1-446Insufficient evidence
Listed in the README residual risk table as a vulnerability in libc6/libc-bin with status 'glibc won't-fix for bookworm'. No evidence of active remediation or exploitation is provided.
README.md:458-459Insufficient evidence
Listed in the README residual risk table as a vulnerability in libc6/libc-bin with status 'glibc won't-fix for bookworm'. No evidence of active remediation or exploitation is provided.
README.md:458-459Insufficient evidence
Listed in the README residual risk table as a vulnerability in libc6/libc-bin with status 'Won't fix in this Debian release'. No evidence of active remediation or exploitation is provided.
README.md:456-457Insufficient evidence
Listed in the README residual risk table as a vulnerability in curl/libcurl4 with status 'Won't fix'. No evidence of active remediation or exploitation is provided.
README.md:460-461Insufficient evidence
Listed in the README residual risk table as a vulnerability in libc6/libc-bin with status 'glibc won't-fix for bookworm'. No evidence of active remediation or exploitation is provided.
README.md:458-459Insufficient evidence
Listed in the README residual risk table as a vulnerability in curl/libcurl4 with status 'Won't fix'. No evidence of active remediation or exploitation is provided.
README.md:460-461README.md:53-55test/test_cve_2026_42945.py:180-185test/compat.py:1build/build.sh:30-35build/build.sh:40-45build/verify-patch.sh:30-35test/compat.py:40-41README.md:53-55README.md:56-57README.md:59-60README.md:62-63README.md:65-66All visible behavior is directed at building, testing, and verifying a patched nginx container image within the lab's own scope. The Containerfile, build scripts, and test suites do not contain any instructions that escape the container boundary, persist data outside the lab, steal credentials, or connect to external systems beyond documented source downloads. The regression test starts a container with a custom config and sends HTTP requests to localhost; the compatibility test compares two local containers. No hidden or unnecessary host compromise is evident.
Containerfile:1-84build/build.sh:1-925test/test_cve_2026_42945.py:1-446test/compat.py:1-930This review is limited to the supplied lab evidence packet. It does not assert that the environment runs, reproduces a vulnerability, or is safe to execute. Contract: eip-docker-lab-analysis-v1.