Repository navigation
feat: flag sites running a PHP release with a published vulnerability - #114
Merged
Merged
Conversation
PHP 8.2.35, 8.3.36, 8.4.27 and 8.5.12 fix two critical unauthenticated remote code execution vulnerabilities (CVE-2026-109618 and CVE-2026-109619). A site below those on its branch now has a critical php_known_vulnerability finding on the Security screen, which goes out through the existing finding.opened alert path. PHP 8.1 and older have no fixed release and are always affected. The advisories are a list in PhpAdvisories, read against the PHP version in the inventory every site already sends. The rule needs no capability, and the next advisory is a Manager release rather than a connector one. A version string cannot prove exposure, so the finding says what it cannot know. A Debian-family package suffix (8.3.6-1ubuntu1.2) is raised as high and asks the reader to check their vendor, since the fix may be backported under the older number. A site whose queue runs from cron reports the command-line PHP, which the finding says may differ from the web server's, and it calls out mod_php as the highest risk. The advisory's interim mitigations are listed but never lower the severity, because the two settings they turn on are not reported. An acknowledgement covers the advisories the finding named when it was made and reopens if a later one applies to the same site. The Security screen can be filtered with ?rule=<key> to the sites that have a given finding, with a link beside every finding. A key that is not a security rule is ignored, so a typo cannot read as a clean fleet. The factories' default PHP moves from 8.3.14 to 8.5.12 so that a default site is a clean one; otherwise every test that evaluates one would gain a critical finding and a notification. The audit entry written when an acknowledgement is withdrawn no longer says a certificate was renewed whatever the rule was.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
PHP 8.2.35, 8.3.36, 8.4.27 and 8.5.12 fix two critical unauthenticated RCEs (CVE-2026-109618, CVE-2026-109619). Any site below those on its branch now gets a critical
php_known_vulnerabilityfinding on the Security screen, delivered through the existingfinding.openedalert path. PHP 8.1 and older have no fixed release and are always affected.The advisories are a list in
PhpAdvisories, matched against the PHP version in the inventory every site already sends. The rule needs no capability, and there is no protocol or connector change, so the next advisory is a platform release only.What the finding refuses to claim
8.3.6-1ubuntu1.2) is raised as high and asks the reader to check their vendor, since the fix may be backported under the older number. Red Hat packages carry no suffix, so they read as critical; the text says to acknowledge those.apache2handler(mod_php) as the highest risk.session.upload_progress.enabledandfatal_error_backtracesare not reported, so Manager cannot tell a mitigated site from an exposed one.ResetsAcknowledgement: they cover the advisories named when they were made and reopen if a later advisory applies.Fleet view
/security?rule=<key>lists only the sites with that finding and says how many of the fleet that is, with an "Every site with this" link beside every finding. A key that is not a security rule is ignored and the whole fleet is shown, so a typo cannot read as a clean fleet.Other changes worth reviewing
docs/rollback.mdmoves to 1.9.1, becauseDocumentedVersionTestrequires it to name the release before the current one.Verification
Run in the ddev container from a clone of this branch with its own test database:
npm run buildon this tree and on pristinemaingive identical hashes, sopublic/buildis unchanged.CHANGELOG.mdhas a 1.10.0 entry in the same commit (1.9.1 is tagged). No migrations, no configuration, nothing to do on upgrade.Not in this PR
Reporting the two unreported settings, and capturing web-SAPI values rather than the queue's, needs a new
system.v5schema and a connector release. Until then the finding cannot tell a mitigated site from an exposed one.