Skip to content

php2shell anatomy of two PHP lifecycle bugs - #3351

Merged
carlospolop merged 2 commits into
masterfrom
update_php2shell_anatomy_of_two_PHP_lifecycle_bugs_7b8d227f348bcecf
Nov 13, 2026
Merged

carlospolop merged 2 commits into
masterfrom
update_php2shell_anatomy_of_two_PHP_lifecycle_bugs_7b8d227f348bcecf

Conversation

@carlospolop

Copy link
Copy Markdown
Collaborator

Blog URL

https://offsec.com/blog/php2shell-anatomy-of-two-php-lifecycle-bugs

Blog Title

php2shell: anatomy of two PHP lifecycle bugs

Blog high summary

php2shell examines two unauthenticated PHP-core RCEs (CVSS v4.0 9.2): CVE-2026-109618 corrupts a half-built hash table when multipart parsing triggers OOM and longjmp(), while CVE-2026-109619 leaves request-owned worker globals dangling across requests. Both execute before userland; 619 needs a persistent worker and same-worker follow-up request.

It explains mod_php/FrankenPHP impact, confirmed fatal-backtrace and session-upload-progress consumers, the misleading stalled-upload PoC and unproven bundle, fixed releases 8.2.35, 8.3.36, 8.4.27, and 8.5.12, partial mitigations, detection signals, and commit 31c0ea7's delayed-OOM and global-reset fixes.

PR changes

Errors

mdbook build unavailable

@carlospolop

Copy link
Copy Markdown
Collaborator Author

Decision: keep

The PHP advisory supports per-part header amplification as a distinct route to memory exhaustion. Datadog’s reproduction supports the URL-encoded field-shape and allocation-order constraints. The existing PHP request-lifecycle chapter is the canonical location. A duplicate closing banner was removed.

Head: 2c3694ebdfa1629b4adc8ccdfd03f910821a820a

@carlospolop

Copy link
Copy Markdown
Collaborator Author

merge

@carlospolop
carlospolop merged commit 6553889 into master Nov 13, 2026
2 checks passed
@carlospolop
carlospolop deleted the update_php2shell_anatomy_of_two_PHP_lifecycle_bugs_7b8d227f348bcecf branch November 13, 2026 15:45
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