fix(fw): pin podman 5.8.6 on the Forgejo runner VMs #405
No reviewers
Labels
No labels
bug
enhancement
in-progress
needs-info
needs-triage
p0
ready-for-agent
ready-for-human
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Cloonar/nixos!405
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "fix/runner-podman-pin"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Problem
Every Forgejo Actions job that uses a
uses:action (actions/checkout etc.) has failed onfj-runner-1/fj-runner-2since 2026-09-24 00:00 UTC:Jobs with only
run:steps were unaffected, which is why it looked repo-specific.Cause
The runner VMs picked up podman 5.8.7 from nixos-26.05 at 2026-09-23 22:00 UTC (fw generation 2036). 5.8.7 vendors buildah 1.43.4, whose CVE-2026-79705 fix extracts archives under an
os.Rootthat refuses to follow absolute symlinks. act_runner copies actions withPUT /containers/{id}/archive?path=/and entry pathsvar/run/act/actions/...;/var/run -> /runin the job image trips the check on the first entry.Reproduced on fj-runner-1 through the podman socket: the same tar fails at
path=/and succeeds with entries relative to/var/run/act. Last passing checkout job 2026-09-23 21:49 UTC, first failing 2026-09-24 00:00 UTC, across renovate-config, freescout, nanoclaw and wohnservice-wien-typo3.Upstream: podman-container-tools/podman#29805 (open), buildah fix podman-container-tools/buildah#7129 (open). Docker had the same regression (moby/moby#53258) and already fixed it.
Change
Pin
virtualisation.podman.packageon both runner VMs to podman 5.8.6 from nixpkgsc27cdad491a9, the last revision that shipped it. The podman module still applies itsextraPackages/extraRuntimesoverride on top, so runtimes and the socket are unchanged.Trade-off: 5.8.6 lacks the CVE-2026-79705 fix (path traversal during archive extraction). The extracted content on the runners is action repos the runner clones, so exposure is limited to workflows pulling a malicious action. Removal of the pin is tracked in #404, which includes the API reproduction to verify the fix.
Verification
podman --versionon 10.42.97.56/.57 shows 5.8.6 and the next renovate-config or freescout run passes its checkout step.🤖 Generated with Claude Code