Skip to content

Security: Disable session upload progress by default and upgrade FrankenPHP to 1.13.2 - #731

Merged
jaydrogers merged 2 commits into
mainfrom
security/v5.0.3
Oct 23, 2026
Merged

jaydrogers merged 2 commits into
mainfrom
security/v5.0.3

Conversation

@jaydrogers

@jaydrogers jaydrogers commented Oct 23, 2026 •

Copy link
Copy Markdown
Member

This PR turns off PHP's session upload progress feature by default and upgrades FrankenPHP to 1.13.2.

Change Why
Session upload progress is off by default. Set PHP_SESSION_UPLOAD_PROGRESS_ENABLED=1 to turn it back on. PHP's October 23 advisory covers a new RCE (CVE-2026-115560), separate from the two v5.0.2 patched. It's not fixed yet, and this blocks it until PHP's next release.
FrankenPHP 1.13.1 → 1.13.2 Security fixes that came out after we built v5.0.2

Session upload progress

CVE-2026-115560 is a new vulnerability, not one of the two PHP fixed on October 21. The patched PHP versions in v5.0.2 don't fix it. PHP will publish the details and the fix in its next regular release. Until then, they recommend turning upload progress off.

It only affects a rare setup. An app has to change the session serializer at runtime before starting a session. Our images don't do that by default. Turning the feature off is still safer than asking everyone to check their app.

The only apps affected are ones that show upload progress using PHP's built-in sessions.

FrankenPHP 1.13.2

These fixes apply to our images:

Advisory Issue
GHSA-fq24-r53r-xcx3 An unauthenticated client could tie up every PHP thread by queuing requests and disconnecting
GHSA-4gfw-9v29-gp9h Worker mode could leak a previous request's input and server paths
GHSA-ccgp-ch9h-533f A self-referencing array could crash the whole process

The PHP and embedded app fixes in that release don't apply to us. v5.0.2 already ships the patched PHP. We don't ship embedded builds. Go and Caddy versions don't change.

Tested locally

Image Upload progress FrankenPHP test-image.sh
8.4-fpm-nginx-bookworm Off (On with the variable set to 1) n/a Passes
8.4-frankenphp-bookworm Off 1.13.2 Passes, including Octane

CI is the first build of the other variations and of Alpine. This is v5 only.

How to test

scripts/dev.sh --variation fpm-nginx --version 8.4 --os bookworm
docker run --rm --entrypoint php serversideup/php:8.4-fpm-nginx-bookworm -i | grep upload_progress.enabled
scripts/test-image.sh serversideup/php:8.4-fpm-nginx-bookworm

Repeat with --variation frankenphp.

Add PHP_SESSION_UPLOAD_PROGRESS_ENABLED and default it to 0, following
PHP's October 23 advisory for CVE-2026-115560.
@jaydrogers
jaydrogers marked this pull request as ready for review October 23, 2026 12:33
@cloudflare-workers-and-pages

Copy link
Copy Markdown

Deploying serversideup-php with  Cloudflare Pages  Cloudflare Pages

Latest commit: 8f39339
Status: ✅  Deploy successful!
Preview URL: https://6dab1ad1.serversideup-php.pages.dev
Branch Preview URL: https://security-v5-0-3.serversideup-php.pages.dev

View logs

@jaydrogers jaydrogers changed the title Disable session upload progress by default and upgrade FrankenPHP to 1.13.2 Security: Disable session upload progress by default and upgrade FrankenPHP to 1.13.2 Oct 23, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Images for PR #731

Build Test Publish
✅ 79 of 79 images built ✅ Every image passed on amd64 and arm64 ✅ Published to serversideup/php-dev

Try it:

docker run --rm -v "$PWD:/var/www/html" -p 8080:8080 serversideup/php-dev:731-8.5-fpm-nginx

Every image is on Docker Hub as serversideup/php-dev:731-<php>-<variation>-<os>. Browse all tags or view the run.

All images with sizes

Sizes are compressed, per architecture.

Variation PHP Base OS amd64 arm64 Image
cli 8.5.12 alpine3.23 47.6 MB 47.2 MB serversideup/php-dev:731-8.5.12-cli-alpine3.23
cli 8.5.12 alpine3.24 47.7 MB 47.3 MB serversideup/php-dev:731-8.5.12-cli-alpine3.24
cli 8.5.12 bookworm 193.0 MB 185.8 MB serversideup/php-dev:731-8.5.12-cli-bookworm
cli 8.5.12 trixie 192.4 MB 184.3 MB serversideup/php-dev:731-8.5.12-cli-trixie
cli 8.4.27 alpine3.23 44.6 MB 44.4 MB serversideup/php-dev:731-8.4.27-cli-alpine3.23
cli 8.4.27 alpine3.24 44.6 MB 44.4 MB serversideup/php-dev:731-8.4.27-cli-alpine3.24
cli 8.4.27 bookworm 189.0 MB 182.2 MB serversideup/php-dev:731-8.4.27-cli-bookworm
cli 8.4.27 trixie 188.4 MB 180.6 MB serversideup/php-dev:731-8.4.27-cli-trixie
cli 8.3.36 alpine3.23 40.5 MB 40.7 MB serversideup/php-dev:731-8.3.36-cli-alpine3.23
cli 8.3.36 alpine3.24 40.6 MB 40.8 MB serversideup/php-dev:731-8.3.36-cli-alpine3.24
cli 8.3.36 bookworm 184.2 MB 177.7 MB serversideup/php-dev:731-8.3.36-cli-bookworm
cli 8.3.36 trixie 183.6 MB 176.1 MB serversideup/php-dev:731-8.3.36-cli-trixie
cli 8.2.35 alpine3.23 39.7 MB 39.9 MB serversideup/php-dev:731-8.2.35-cli-alpine3.23
cli 8.2.35 alpine3.24 39.8 MB 40.0 MB serversideup/php-dev:731-8.2.35-cli-alpine3.24
cli 8.2.35 bookworm 183.3 MB 176.8 MB serversideup/php-dev:731-8.2.35-cli-bookworm
cli 8.2.35 trixie 182.7 MB 175.2 MB serversideup/php-dev:731-8.2.35-cli-trixie
cli 8.1.34 alpine3.22 42.4 MB 43.0 MB serversideup/php-dev:731-8.1.34-cli-alpine3.22
cli 8.1.34 bookworm 185.4 MB 178.7 MB serversideup/php-dev:731-8.1.34-cli-bookworm
cli 8.1.34 trixie 185.2 MB 178.1 MB serversideup/php-dev:731-8.1.34-cli-trixie
fpm 8.5.12 alpine3.23 41.7 MB 41.5 MB serversideup/php-dev:731-8.5.12-fpm-alpine3.23
fpm 8.5.12 alpine3.24 41.7 MB 41.6 MB serversideup/php-dev:731-8.5.12-fpm-alpine3.24
fpm 8.5.12 bookworm 181.2 MB 174.4 MB serversideup/php-dev:731-8.5.12-fpm-bookworm
fpm 8.5.12 trixie 180.6 MB 172.8 MB serversideup/php-dev:731-8.5.12-fpm-trixie
fpm 8.4.27 alpine3.23 39.5 MB 39.5 MB serversideup/php-dev:731-8.4.27-fpm-alpine3.23
fpm 8.4.27 alpine3.24 39.6 MB 39.5 MB serversideup/php-dev:731-8.4.27-fpm-alpine3.24
fpm 8.4.27 bookworm 179.0 MB 172.4 MB serversideup/php-dev:731-8.4.27-fpm-bookworm
fpm 8.4.27 trixie 178.4 MB 170.8 MB serversideup/php-dev:731-8.4.27-fpm-trixie
fpm 8.3.36 alpine3.23 36.4 MB 36.7 MB serversideup/php-dev:731-8.3.36-fpm-alpine3.23
fpm 8.3.36 alpine3.24 36.4 MB 36.7 MB serversideup/php-dev:731-8.3.36-fpm-alpine3.24
fpm 8.3.36 bookworm 175.9 MB 169.6 MB serversideup/php-dev:731-8.3.36-fpm-bookworm
fpm 8.3.36 trixie 175.3 MB 168.0 MB serversideup/php-dev:731-8.3.36-fpm-trixie
fpm 8.2.35 alpine3.23 35.6 MB 36.0 MB serversideup/php-dev:731-8.2.35-fpm-alpine3.23
fpm 8.2.35 alpine3.24 35.7 MB 36.0 MB serversideup/php-dev:731-8.2.35-fpm-alpine3.24
fpm 8.2.35 bookworm 175.2 MB 168.9 MB serversideup/php-dev:731-8.2.35-fpm-bookworm
fpm 8.2.35 trixie 174.6 MB 167.3 MB serversideup/php-dev:731-8.2.35-fpm-trixie
fpm 8.1.34 alpine3.22 38.5 MB 39.2 MB serversideup/php-dev:731-8.1.34-fpm-alpine3.22
fpm 8.1.34 bookworm 177.6 MB 171.1 MB serversideup/php-dev:731-8.1.34-fpm-bookworm
fpm 8.1.34 trixie 177.4 MB 170.4 MB serversideup/php-dev:731-8.1.34-fpm-trixie
fpm-apache 8.5.12 bookworm 187.5 MB 181.2 MB serversideup/php-dev:731-8.5.12-fpm-apache-bookworm
fpm-apache 8.5.12 trixie 187.0 MB 179.7 MB serversideup/php-dev:731-8.5.12-fpm-apache-trixie
fpm-apache 8.4.27 bookworm 185.4 MB 179.2 MB serversideup/php-dev:731-8.4.27-fpm-apache-bookworm
fpm-apache 8.4.27 trixie 184.8 MB 177.7 MB serversideup/php-dev:731-8.4.27-fpm-apache-trixie
fpm-apache 8.3.36 bookworm 182.2 MB 176.4 MB serversideup/php-dev:731-8.3.36-fpm-apache-bookworm
fpm-apache 8.3.36 trixie 181.7 MB 174.9 MB serversideup/php-dev:731-8.3.36-fpm-apache-trixie
fpm-apache 8.2.35 bookworm 181.5 MB 175.7 MB serversideup/php-dev:731-8.2.35-fpm-apache-bookworm
fpm-apache 8.2.35 trixie 181.0 MB 174.2 MB serversideup/php-dev:731-8.2.35-fpm-apache-trixie
fpm-apache 8.1.34 bookworm 183.9 MB 177.9 MB serversideup/php-dev:731-8.1.34-fpm-apache-bookworm
fpm-apache 8.1.34 trixie 183.8 MB 177.3 MB serversideup/php-dev:731-8.1.34-fpm-apache-trixie
fpm-nginx 8.5.12 alpine3.23 47.8 MB 48.1 MB serversideup/php-dev:731-8.5.12-fpm-nginx-alpine3.23
fpm-nginx 8.5.12 alpine3.24 49.2 MB 49.5 MB serversideup/php-dev:731-8.5.12-fpm-nginx-alpine3.24
fpm-nginx 8.5.12 bookworm 189.0 MB 182.6 MB serversideup/php-dev:731-8.5.12-fpm-nginx-bookworm
fpm-nginx 8.5.12 trixie 195.4 MB 187.8 MB serversideup/php-dev:731-8.5.12-fpm-nginx-trixie
fpm-nginx 8.4.27 alpine3.23 45.6 MB 46.0 MB serversideup/php-dev:731-8.4.27-fpm-nginx-alpine3.23
fpm-nginx 8.4.27 alpine3.24 47.0 MB 47.4 MB serversideup/php-dev:731-8.4.27-fpm-nginx-alpine3.24
fpm-nginx 8.4.27 bookworm 186.8 MB 180.6 MB serversideup/php-dev:731-8.4.27-fpm-nginx-bookworm
fpm-nginx 8.4.27 trixie 193.2 MB 185.8 MB serversideup/php-dev:731-8.4.27-fpm-nginx-trixie
fpm-nginx 8.3.36 alpine3.23 42.4 MB 43.2 MB serversideup/php-dev:731-8.3.36-fpm-nginx-alpine3.23
fpm-nginx 8.3.36 alpine3.24 43.9 MB 44.6 MB serversideup/php-dev:731-8.3.36-fpm-nginx-alpine3.24
fpm-nginx 8.3.36 bookworm 183.7 MB 177.8 MB serversideup/php-dev:731-8.3.36-fpm-nginx-bookworm
fpm-nginx 8.3.36 trixie 190.1 MB 183.0 MB serversideup/php-dev:731-8.3.36-fpm-nginx-trixie
fpm-nginx 8.2.35 alpine3.23 41.7 MB 42.5 MB serversideup/php-dev:731-8.2.35-fpm-nginx-alpine3.23
fpm-nginx 8.2.35 alpine3.24 43.2 MB 43.9 MB serversideup/php-dev:731-8.2.35-fpm-nginx-alpine3.24
fpm-nginx 8.2.35 bookworm 183.0 MB 177.1 MB serversideup/php-dev:731-8.2.35-fpm-nginx-bookworm
fpm-nginx 8.2.35 trixie 189.4 MB 182.3 MB serversideup/php-dev:731-8.2.35-fpm-nginx-trixie
fpm-nginx 8.1.34 alpine3.22 44.6 MB 45.8 MB serversideup/php-dev:731-8.1.34-fpm-nginx-alpine3.22
fpm-nginx 8.1.34 bookworm 186.5 MB 180.3 MB serversideup/php-dev:731-8.1.34-fpm-nginx-bookworm
fpm-nginx 8.1.34 trixie 194.0 MB 187.2 MB serversideup/php-dev:731-8.1.34-fpm-nginx-trixie
frankenphp 8.5.12 alpine3.23 76.5 MB 73.9 MB serversideup/php-dev:731-8.5.12-frankenphp-alpine3.23
frankenphp 8.5.12 alpine3.24 76.6 MB 74.0 MB serversideup/php-dev:731-8.5.12-frankenphp-alpine3.24
frankenphp 8.5.12 bookworm 214.8 MB 205.8 MB serversideup/php-dev:731-8.5.12-frankenphp-bookworm
frankenphp 8.5.12 trixie 214.2 MB 204.2 MB serversideup/php-dev:731-8.5.12-frankenphp-trixie
frankenphp 8.4.27 alpine3.23 72.5 MB 70.1 MB serversideup/php-dev:731-8.4.27-frankenphp-alpine3.23
frankenphp 8.4.27 alpine3.24 72.6 MB 70.2 MB serversideup/php-dev:731-8.4.27-frankenphp-alpine3.24
frankenphp 8.4.27 bookworm 210.9 MB 202.1 MB serversideup/php-dev:731-8.4.27-frankenphp-bookworm
frankenphp 8.4.27 trixie 210.3 MB 200.5 MB serversideup/php-dev:731-8.4.27-frankenphp-trixie
frankenphp 8.3.36 alpine3.23 67.6 MB 65.7 MB serversideup/php-dev:731-8.3.36-frankenphp-alpine3.23
frankenphp 8.3.36 alpine3.24 67.7 MB 65.7 MB serversideup/php-dev:731-8.3.36-frankenphp-alpine3.24
frankenphp 8.3.36 bookworm 206.0 MB 197.6 MB serversideup/php-dev:731-8.3.36-frankenphp-bookworm
frankenphp 8.3.36 trixie 205.4 MB 196.0 MB serversideup/php-dev:731-8.3.36-frankenphp-trixie

Updated on every push to this PR.

@jaydrogers
jaydrogers merged commit 6a0b5be into main Oct 23, 2026
132 checks passed
@jaydrogers
jaydrogers deleted the security/v5.0.3 branch October 23, 2026 12:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant