Repository navigation
Turn off APT retries before the unproved APT paths (.github#295) - #1197
Conversation
….github#295) CVE-2026-109518: a vulnerable APT can follow a redirect on a retried package download and install a swapped package as root. The perf FPM experiment image (php:8.3.35-fpm-trixie, likely apt 3.0.3) and the worker-versioning conformance image (unpinned python:3.13-slim) now write Acquire::Retries "0" before their first APT network call. The production Dockerfile already proves the fixed floor with require-fixed-apt.sh. A new test, run by Public Boundary on every change, refuses any tracked Dockerfile stage whose first networked APT command has neither guard before it. It failed on exactly these two paths before the change. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…rable-workflow/.github#295) phpunit-feature.yml builds an inline Dockerfile from the base stage that runs apt-get. Its APT is the base's, already proved at the fixed floor, but nothing showed that at the call. The inline stage now re-runs require-fixed-apt.sh before its apt-get, as the production stage does. The APT test also reads Dockerfiles inlined in workflows; it flags the old workflow and passes the new one. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Security PASS at b5a0c48 (CI 67 passed, 1 skipped).
Non-blocking: |
|
Security PASS at fb82c13, on green CI. This replaces my b5a0c48 comment. The only change from b5a0c48 covers the inline |
|



Refs durable-workflow/.github#295 (CVE-2026-109518), for the server's two unprotected APT paths named in General's org audit.
Change
scripts/perf/Dockerfile.fpm-experiment(parentphp:8.3.35-fpm-trixie@ea1c5007, likely apt 3.0.3, below Trixie's 3.0.4 floor) andscripts/conformance/worker-versioning-mixed.Dockerfile(unpinnedpython:3.13-slim) now writeAcquire::Retries "0";to/etc/apt/apt.conf.d/99-no-retriesin the sameRUN, before their firstapt-get. Without retries, the CVE's redirect-on-retry path can't happen, whatever the parent's apt version.tests/Unit/Support/apt_no_retries_test.py, adapted from cli#143's test for Dockerfiles:update/install/upgrade/dist-upgrade/full-upgrade) must come after eitherrequire-fixed-apt.sh(the production Dockerfile's reviewed fixed-floor proof) orAcquire::Retries "0"..github/workflows/public-boundary.yml: one added line runs that test next to the Docker workflow isolation test. Public Boundary runs on every pull request, merge group and push.Checked
apt-config dumpin a--network nonecontainer reportsAcquire::Retries "0";after the written line.Dockerfileis unchanged; it already runsrequire-fixed-apt.shbefore each APT stage.🤖 Generated with Claude Code