Relationships
#3770 @swamp/cve/php-rce-2026-10 follow-ups: dry-run heading, command spelling, Debian 12 fix, podman image scan
Opened by skunk-ape · 10/22/2026· Shipped 10/22/2026
Summary
Follow-up to #3711. Five issues in @swamp/cve/php-rce-2026-10, found while building the #3712 advisory page by running the extension (branch head 11a408772) from source through the installed swamp CLI.
Findings
- Dry-run mitigate titled APPLIED. A
mitigatedry run (dryRun defaults to true) against an unreachable target printed# PHP RCE Mitigation: APPLIEDwith Outcome ERROR and Action unreachable. The target was adockerContainerthat had been removed. The heading should say DRY RUN or report the error. Its "Verify with:" line also suggestedscanFleet --input hosts=docker-<name>, which cannot work for a container target. - Old command spelling in the report. The scan "Next Step" and the mitigate "Verify with" lines print
swamp model method run php-rce-scanner …, and the README usesswamp model create/swamp model method runthroughout. The primary spelling is nowswamp behavior create/swamp behavior run, which the /cve/php-rce-2026-10 page uses. - Debian 12 is fixed. The Debian security tracker for CVE-2026-109618 lists bookworm php8.2 fixed in
8.2.35-1~deb12u1under DLA-4848-1, a Debian LTS advisory rather than a DSA. DISTRO_FIXES and the README still say Debian 12 has no fix, and the README's Debian 12 sample (8.2.34-1~deb12u1reported as check-vendor) depends on that. - Layout key leaks into a recommendation. A container scan of the official
php:8.2.34-apacheimage prints "Until upgraded, the advisories' partial mitigations for official are session.upload_progress.enabled=0, memory_limit=-1 …". "official" is the ini-layout key and reads as if it were a product name. - dockerImage scan fails under rootless podman. With DOCKER_HOST set to the podman socket, a
dockerImage=php:8.2.34-apachescan started the container, stopped it, then failed: "can only create exec sessions on running containers: container state improper". Starting the same image by hand with--pids-limit=-1and scanning it as adockerContainerworked. This is likely podman's default pids limit killing Apache, but the image path could pass the flag or report why the container exited.
Impact on swamp.club
The /cve/php-rce-2026-10 page (#3712) shows the scan and dry-run mitigate output of a real dockerContainer scan of php:8.2.34-apache. Fixes 2 and 4 change that output, so the page's sample needs a refresh once they ship.
Shipped
Click a lifecycle step above to view its details.
system commented 10/22/2026, 1:13:26 PM
Classified automatically when this issue was filed.
- Source: Extensions
If you feel this classification is incorrect, add a ripple to tell us so.
skunk-ape commented 10/22/2026, 1:14:07 PM
Diagnosis from the #3711 session (extension PR 539, still open at 11a408772), for whoever picks this up:
- Finding 3 (Debian 12): confirmed for both CVEs, bookworm php8.2 is fixed in 8.2.35-1
deb12u1 (DLA-4848-1). Adding a DISTRO_FIXES entry alone is not enough. verdictFor trusts a tracker entry only for builds of the same upstream version, which keeps Sury 8.3.35+[HOST-1] from matching the Ubuntu 8.3.6 backport, so 8.2.34-1deb12u1 would stay check-vendor. Trust the entry when the upstream version matches OR the installed build sorts below the fixed build. That also closes the open review finding on older Debian 13 php8.4 builds. Expect test fixtures (bookwormVm assumes no fix) and the README Debian 12 sample to flip from check-vendor to update-available. - Finding 1 (dry run titled APPLIED): the mitigate error path builds errorStatus with mitigation null and inContainer false, so the heading falls back to APPLIED and Verify suggests scanFleet. Carry dryRun and inContainer into the error status.
- Finding 2 (command spelling): the installed CLI has swamp behavior create/run and prefers it over model, so the report and README can switch.
- Finding 5 (podman): the dockerImage path starts the image with an entrypoint of sh -c "sleep 3600", so Apache is not involved. Under podman the probe fails its first fork ("Cannot fork") unless the container has --pids-limit=-1, so passing that flag in startDockerImage is the likely fix.
These change the report text, so the /cve/php-rce-2026-10 sample (#3712) needs a refresh after this lands. This should get its own session.
Sign in to post a ripple.