This tracker is no longer updated. Every tracked Debian suite, NixOS channel, nixpkgs branch, and pkgsrc branch ships the fixes.
Summary
| Field | Detail |
|---|---|
| Releases | PHP 8.5.11, 8.4.26, 8.3.35, and 8.2.34, all released 2026-09-24 — every supported branch at once |
| Advisories | 12 GitHub security advisories, 11 of them with a CVE ID — listed under Advisories |
| Highest severity | CVE-2026-91765 — 7.5 high (CVSS 3.1): unauthenticated remote crash of any SoapServer endpoint |
| Types | Stack exhaustion, heap buffer overflows and over-reads, an access-control bypass, TLS hostname verification flaws, a credential leak, archive entry injection |
| Differs by branch | GHSA-ch8v-r6jh-4vvr is fixed in 8.2.34 and 8.3.35 only — 8.4 and 8.5 already fixed it in 8.4.25 and 8.5.10. CVE-2026-17545 affects PHP on Windows only |
| CVE records | Published in the CVE List, assigned by the PHP project’s own CNA — scores mostly match the GitHub advisories; three (CVE-2025-1218, CVE-2026-93682, CVE-2026-6103) carry a higher CVSS score on a Scope: Changed vector, see the verification log |
| KEV listed | no |
| Public exploit | none known — the advisories carry proof-of-concept inputs, but no exploit has been published |
The releases close a dozen unrelated bugs across the interpreter’s extensions rather than one headline flaw, and which of them matter depends on what a host’s PHP is used for:
- Servers accepting requests. A
SoapServerendpoint can be crashed by one deeply nested request (CVE-2026-91765), and PHP-FPM’slisten.allowed_clientslets in any IPv6 address that shares the first 96 bits with an allowed one (CVE-2026-91768). - PHP as a client. Code that fetches URLs, talks TLS, or connects
to SOAP or MySQL servers trusts what those servers send back. A
malicious server can overflow or over-read heap buffers
(CVE-2026-91767, CVE-2025-14181, CVE-2026-93682, CVE-2025-1218), pass
hostname verification with a certificate that names a different host
(CVE-2026-91769), or collect the
Authorization,Cookie, andProxy-Authorizationheaders thehttp://wrapper forwards across a redirect to another origin or from HTTPS to HTTP (CVE-2026-91766). - Untrusted input to library code. A crafted TAR archive opened
through Phar injects entries of the attacker’s choosing
(CVE-2026-6103); an attacker-influenced
line-break-charsoption on aconvert.*stream filter reads past a heap buffer (CVE-2026-92842); andFILTER_SANITIZE_ENCODEDmay pass the byte0xFFthrough unencoded (GHSA-ch8v-r6jh-4vvr).
ℹ️ Each branch has its own fixed release: a host on PHP 8.4 needs 8.4.26, not 8.5.11. Which branch a system runs depends on its distribution — Debian 12 ships PHP 8.2, Debian 13 ships 8.4, while NixOS and pkgsrc offer all four side by side — so the table below gives each row’s PHP branch and the release it needs. A distribution may also backport the fixes onto an older release of the same branch, so the PHP version alone does not settle every row.
Advisories
The PHP 8 changelog lists what each release fixed. Every advisory below is fixed in all four 2026-09-24 releases, with one exception, GHSA-ch8v-r6jh-4vvr; CVE-2026-17545 matters only on Windows.
| Advisory | CVE | Area | Severity | Fixed in |
|---|---|---|---|---|
| GHSA-rgrp-mwpx-f6rm | CVE-2026-91765 | SOAP: unbounded recursion in server-side cleanup_xml_node() | 7.5 high | all four |
| GHSA-62xp-839h-2637 | CVE-2026-91768 | FPM: IPv6 listen.allowed_clients compares only 12 of 16 bytes | 6.5 medium | all four |
| GHSA-xr7j-rvgx-xq5p | CVE-2026-91767 | OpenSSL: heap over-read on a crafted wildcard certificate name | 6.5 medium | all four |
| GHSA-cj93-vc83-wgqv | CVE-2025-14181 | SOAP: integer overflow to heap buffer overflow in HTTP response parsing | 6.5 medium | all four |
| GHSA-88hq-2827-7pg6 | CVE-2026-92842 | Streams: convert.* filters over-read when line-break-chars contains NUL | 5.9 medium | all four |
| GHSA-fpwc-w8rq-cr92 | CVE-2026-91766 | Streams: HTTP wrapper forwards credentials across cross-origin redirects | 5.9 medium | all four |
| GHSA-7875-c8px-7q5f | CVE-2026-93682 | Streams: HTTP wrapper over-reads on an empty Location redirect | 5.3 medium | all four |
| GHSA-vvx9-73fr-5jjx | CVE-2026-91769 | OpenSSL: hostname verification falls back to the CN after a SAN mismatch | 4.3 medium | all four |
| GHSA-j3wh-g957-2m85 | CVE-2026-6103 | Phar: TAR size integer overflow allows archive entry injection | 4.0 medium | all four |
| GHSA-r6x9-5r99-36j7 | CVE-2025-1218 | mysqlnd: packet over-reads from a malicious server | 3.1 low | all four |
| GHSA-ch8v-r6jh-4vvr | — | Filter: FILTER_SANITIZE_ENCODED may leave 0xFF unencoded | 3.7 low | 8.2.34 and 8.3.35; already in 8.4.25 and 8.5.10 |
| GHSA-9f67-6fw4-hpfp | CVE-2026-17545 | Windows: reserved device names (CON, NUL, …) not rejected in paths | 6.9 medium (CVSS 4.0) | all four — Windows only |
Severities are the scores in PHP’s advisories, CVSS 3.1 unless marked.
ℹ️ Where the branches differ. 8.2 and 8.3 receive security fixes only, so their releases carry exactly the twelve advisories above. 8.4 and 8.5 are still in active support, so their security releases also carry regular bug fixes, among them memory-safety bugs that got no advisory — use-after-frees in DOM, Intl, and Phar, out-of-bounds reads in BCMath and
mb_ereg_replace(), and, in 8.4 only, a buffer overflow inhash_pbkdf2()with a large output length. And GHSA-ch8v-r6jh-4vvr is new in 8.2.34 and 8.3.35 only: the 8.4 and 8.5 fix shipped a month earlier, so an 8.4 or 8.5 host still older than 8.4.25 or 8.5.10 lacks that fix as well.
CVE-2026-17545 applies only to PHP running on Windows: the device-name check it adds is Windows code. None of the distributions tracked here build PHP for Windows, so their rows need only the other advisories of their branch.
Distribution status
A row is Fixed once its package closes every advisory its PHP branch’s 2026-09-24 release fixes (CVE-2026-17545 aside): by carrying that release or a later one, or by backporting all of the fixes onto an older release of the branch. A package that closes some but not all is Partial, with the advisories still open named.
PHP is the upstream PHP release the package builds; Package is
what the distribution calls it. Where a release offers several PHP
branches, the one its unversioned php package or attribute selects
is marked default. Debian versions are the
apt-installable value: the <suite>-security archive where it
carries the package, since that is what hosts run and where a DSA or
DLA fix lands first.
| Distribution | Release | PHP | Package | Fixed since | Status |
|---|---|---|---|---|---|
| Debian | sid | 8.4.26 | php8.4 8.4.26-1 | 2026-09-29 | ✅ Fixed |
| Debian | forky (testing) | 8.4.26 | php8.4 8.4.26-1 | 2026-10-11 | ✅ Fixed |
| Debian | 13 (trixie) | 8.4.26 | php8.4 8.4.26-1~deb13u1 | 2026-09-25 | ✅ Fixed |
| Debian | 12 (bookworm) | 8.2.34 | php8.2 8.2.34-1~deb12u1 | 2026-10-04 | ✅ Fixed |
| pkgsrc | pkgsrc-current | 8.4.26 | php84-8.4.26 (default) | 2026-09-24 | ✅ Fixed |
| pkgsrc | pkgsrc-current | 8.5.11 | php85-8.5.11 | 2026-09-24 | ✅ Fixed |
| pkgsrc | pkgsrc-current | 8.3.35 | php83-8.3.35 | 2026-09-24 | ✅ Fixed |
| pkgsrc | pkgsrc-current | 8.2.34 | php82-8.2.34 | 2026-09-24 | ✅ Fixed |
| pkgsrc | pkgsrc-2026Q3 | 8.4.26 | php84-8.4.26 (default) | 2026-10-21 | ✅ Fixed |
| pkgsrc | pkgsrc-2026Q3 | 8.5.11 | php85-8.5.11 | 2026-10-21 | ✅ Fixed |
| pkgsrc | pkgsrc-2026Q3 | 8.3.35 | php83-8.3.35 | 2026-10-20 | ✅ Fixed |
| pkgsrc | pkgsrc-2026Q3 | 8.2.34 | php82-8.2.34 | 2026-10-20 | ✅ Fixed |
| NixOS | nixos-unstable | 8.4.26 | php84 (default) | 2026-09-28 | ✅ Fixed |
| NixOS | nixos-unstable | 8.5.11 | php85 | 2026-09-28 | ✅ Fixed |
| NixOS | nixos-unstable | 8.3.35 | php83 | 2026-09-28 | ✅ Fixed |
| NixOS | nixos-unstable | 8.2.34 | php82 | 2026-09-28 | ✅ Fixed |
| NixOS | nixos-unstable-small | 8.4.26 | php84 (default) | 2026-09-27 | ✅ Fixed |
| NixOS | nixos-unstable-small | 8.5.11 | php85 | 2026-09-27 | ✅ Fixed |
| NixOS | nixos-unstable-small | 8.3.35 | php83 | 2026-09-27 | ✅ Fixed |
| NixOS | nixos-unstable-small | 8.2.34 | php82 | 2026-09-27 | ✅ Fixed |
| NixOS | nixos-26.05 | 8.4.26 | php84 (default) | 2026-09-28 | ✅ Fixed |
| NixOS | nixos-26.05 | 8.5.11 | php85 | 2026-09-28 | ✅ Fixed |
| NixOS | nixos-26.05 | 8.3.35 | php83 | 2026-09-28 | ✅ Fixed |
| NixOS | nixos-26.05 | 8.2.34 | php82 | 2026-09-28 | ✅ Fixed |
| NixOS | nixos-26.05-small | 8.4.26 | php84 (default) | 2026-09-27 | ✅ Fixed |
| NixOS | nixos-26.05-small | 8.5.11 | php85 | 2026-09-27 | ✅ Fixed |
| NixOS | nixos-26.05-small | 8.3.35 | php83 | 2026-09-27 | ✅ Fixed |
| NixOS | nixos-26.05-small | 8.2.34 | php82 | 2026-09-27 | ✅ Fixed |
| nixpkgs | master branch | 8.4.26 | php84 (default) | 2026-09-27 | ✅ Fixed |
| nixpkgs | master branch | 8.5.11 | php85 | 2026-09-27 | ✅ Fixed |
| nixpkgs | master branch | 8.3.35 | php83 | 2026-09-27 | ✅ Fixed |
| nixpkgs | master branch | 8.2.34 | php82 | 2026-09-27 | ✅ Fixed |
| nixpkgs | release-26.05 branch | 8.4.26 | php84 (default) | 2026-09-27 | ✅ Fixed |
| nixpkgs | release-26.05 branch | 8.5.11 | php85 | 2026-09-27 | ✅ Fixed |
| nixpkgs | release-26.05 branch | 8.3.35 | php83 | 2026-09-27 | ✅ Fixed |
| nixpkgs | release-26.05 branch | 8.2.34 | php82 | 2026-09-27 | ✅ Fixed |
| nixpkgs | nixpkgs-unstable | 8.4.26 | php84 (default) | 2026-09-27 | ✅ Fixed |
| nixpkgs | nixpkgs-unstable | 8.5.11 | php85 | 2026-09-27 | ✅ Fixed |
| nixpkgs | nixpkgs-unstable | 8.3.35 | php83 | 2026-09-27 | ✅ Fixed |
| nixpkgs | nixpkgs-unstable | 8.2.34 | php82 | 2026-09-27 | ✅ Fixed |
Debian
Debian ships one PHP branch per release, as a versioned source
package: php8.2 in bookworm, php8.4 in trixie, forky, and sid. The
unversioned php, php-cli, php-fpm packages come from
php-defaults and only depend on the branch’s packages, so their
version (2:8.4+96 on trixie) says nothing about which PHP release is
installed — look at the php8.X-* packages instead. php8.5 is in
experimental only, and PHP 8.3 never reached a Debian release — it
was only ever in experimental.
Debian’s PHP maintainer normally imports each upstream point release,
security uploads to the stable suites included, so the upstream part
of the version (everything before the last -) is the PHP release
it builds.
The Debian security tracker has a page per CVE; sid, forky, and trixie closed all ten applicable CVEs via a direct 8.4.26 upload (trixie’s via DSA-6514-1), and bookworm closed them via DLA-4819-1 (8.2.34). The tracker marks CVE-2026-17545 not affected (“Only affects PHP on Windows”). GHSA-ch8v-r6jh-4vvr has no CVE and so no tracker page; it reaches a suite with the upstream release or a changelog entry naming it.
forky took the fix once sid’s upload migrated to testing; that
migration had initially been blocked by a riscv64 autopkgtest
regression in another package, php-arthurhoaro-web-thumbnailer, but
went through once that cleared.
Bookworm is in its LTS period, so its PHP updates come as DLAs from
the LTS team, into bookworm-security; that archive can run ahead of
the main archive, which only catches up at a point release.
pkgsrc
pkgsrc (NetBSD’s package collection, also used on SmartOS, macOS via
pkgin, and elsewhere) packages every PHP branch side by side as
lang/php82 through lang/php85; the installed package is named
after the branch (php84-8.4.26). PHP_VERSION_DEFAULT selects the
branch a PHP-dependent package builds against unless the host
overrides it — 8.4 on both tracked branches.
pkgsrc-2026Q3, the quarterly branch most pkgsrc hosts run, was cut
on 2026-09-21 — before the releases — and received them by pullup from
pkgsrc-current almost four weeks later.
The identifier carries an nbN suffix when the package’s
PKGREVISION is set. That revision bumps for many reasons besides
security patches, so an nbN suffix on its own says nothing about
these fixes.
NixOS
nixpkgs builds all four branches from one expression,
pkgs/development/interpreters/php/default.nix, as the attributes
php82 through php85; the unversioned php (and phpPackages,
phpExtensions) is php84. The NixOS services.phpfpm module uses
pkgs.php unless a pool sets its own phpPackage. A channel row is
fixed once its pinned version reaches the branch’s fixed release, or
the expression carries the fixes as patches.
Flake users
A flake input like github:NixOS/nixpkgs/nixos-unstable resolves to
the git branch of that name, not to the channel — but the channel
bot advances the branch to exactly the revision the channel publishes,
so an input following a channel name is answered by that channel’s
rows.
Two branches have no channel gating them and will carry the fix
earlier — they are listed above as master and release-26.05:
github:NixOS/nixpkgs/master— the fix’s first appearance anywhere in nixpkgs, the moment it is merged.github:NixOS/nixpkgs/release-26.05— the ungated 26.05 branch, ahead of thenixos-26.05channel by however long Hydra takes.
No channel can be fixed before the branch it is cut from.
Detection
Check the installed package rather than the running interpreter: a
host can carry several PHP branches, and the web server’s may not be
the one on PATH.
Debian
List the PHP packages dpkg knows about, with their state and version:
dpkg-query -W -f='${db:Status-Abbrev} ${Package} ${Version}\n' 'php8*'
Lines starting ii are installed. The branch is in the package name (php8.4-fpm) and the upstream PHP
release is the version up to the last -. Compare it with
the row for your suite above; if a later Debian revision of the same
release appears (8.4.24-1~deb13u2), check its changelog for
backported fixes:
apt changelog php8.4-common
pkgsrc
pkg_info -e 'php8[0-9]-[0-9]*'
The output is php<branch>-<version> plus any nb<PKGREVISION>
suffix — for example php84-8.4.25nb1. Cross-reference it against the
pkgsrc rows above.
NixOS
Query the PHP versions in the current system closure:
nix-store -q --requisites /run/current-system | grep -- '-php-[0-9]'
Each store path ends in the PHP version it builds (php-8.4.25, or
php-8.4.25-dev for the development output).
Cross-reference against your channel’s rows above; a project built
from a flake or a nix-shell carries its own PHP, pinned by its own
nixpkgs input.
Mitigation
Upgrade to your branch’s fixed release — or to a distribution package that carries it — as soon as one is available. Until then, what helps depends on the advisory:
- SOAP servers (CVE-2026-91765). An unauthenticated request to any
SoapServerendpoint crashes the worker. If SOAP is not used, disable the extension (phpdismod soapon Debian, then restart PHP-FPM or Apache); otherwise limit who can reach the endpoint. - PHP-FPM over IPv6 (CVE-2026-91768). Only pools listening on an
IPv6 TCP socket with
listen.allowed_clientsset are affected. A Unix socket, or a firewall rule admitting only the web server’s exact address, closes it. - Outbound HTTP (CVE-2026-91766, CVE-2026-93682). Code passing
Authorization,Cookie, orProxy-Authorizationheaders tofile_get_contents()orfopen()onhttp://andhttps://URLs can set the stream context optionfollow_locationto0and handle redirects itself. - Outbound TLS (CVE-2026-91767, CVE-2026-91769). Both are triggered by the certificate a server presents to PHP as a client; there is no configuration workaround beyond not connecting to untrusted hosts.
- Untrusted archives (CVE-2026-6103). Don’t open user-supplied
TAR files through Phar or
PharDatauntil patched.
No exploit has been published for any of these. The advisories
describe proof-of-concept inputs, so crashing a SoapServer or
reading past a buffer takes little effort once the fix is public.
Verification log
Every verdict in the table above is backed by a checkable source. This log records the provenance — the advisory, repository index, or git reference that established each fact — so any row can be audited or reproduced. Most readers never need it.
Full verification log
Upstream
- Releases (via the [PHP 8 changelog][changelog] and the release
announcements for [8.5.11][rel-8511], [8.4.26][rel-8426],
[8.3.35][rel-8335], and [8.2.34][rel-8234]):
- All four dated 2026-09-24; each announcement calls its release “a security release” and asks all users of the branch to upgrade.
- 8.3.35 and 8.2.34 list the twelve advisories and nothing else.
- 8.5.11 and 8.4.26 list eleven advisories — all but GHSA-ch8v-r6jh-4vvr — among their regular bug fixes.
- GitHub advisories (via the GitHub REST API,
api.github.com/repos/php/php-src/security-advisories, since the advisory pages render only through JavaScript):- Twelve advisories published 2026-09-24; each lists the fixed version per branch as quoted in Advisories.
- GHSA-ch8v-r6jh-4vvr: patched in 8.2.34, 8.3.35, 8.4.25, and 8.5.10; no CVE ID.
- Severities and CVSS scores as quoted in the Advisories table: CVSS 3.1 for eleven, CVSS 4.0 only for CVE-2026-17545.
- CVE records (via the CVE Services API,
cveawg.mitre.org):- All eleven CVE IDs now have a
PUBLISHEDrecord, assigned byassignerShortName: php(the PHP project’s own CNA). - Eight of the eleven carry the same CVSS 3.1 vector and score as the matching GitHub advisory.
- Three score higher than their GitHub advisory on a
Scope: Changed(S:C) vector rather than the advisory’sS:U: CVE-2025-1218 (3.1 → 3.4), CVE-2026-93682 (5.3 → 5.8), and CVE-2026-6103 (4.0 → 4.3). The GitHub advisory’s version and severity stay the tracker’s source per its own convention; this is recorded here as the discrepancy, not acted on. - CVE-2026-17545’s CVSS 4.0 score (6.9) matches its GitHub advisory.
- All eleven CVE IDs now have a
- KEV: none of the eleven CVE IDs is in CISA’s catalog.
Distributions
- Debian (via
scripts/debian-versions, reading the security tracker’s source-package pages,php-defaults’debian/rules, and the package changelogs on tracker.debian.org):- Default branch per suite:
PHP_DEFAULT_VERSIONin the suite’sphp-defaultsdebian/rules. - Branch per suite:
php8.2in bookworm,php8.4in trixie, forky, and sid. - PHP release per row: the newest “New upstream version” line of the package’s changelog.
- No tracked advisory id in any changelog entry above that line.
- bookworm’s fixed version comes from
bookworm-security, an LTS team upload:php8.28.2.34-1~deb12u1, first seen 2026-10-04 on snapshot.debian.org. - trixie’s fixed version comes from
trixie-security:php8.48.4.26-1~deb13u1, first seen 2026-09-25 on snapshot.debian.org. - sid’s fixed version is
php8.48.4.26-1, first seen 2026-09-29 on snapshot.debian.org. - forky’s fixed version is
php8.48.4.26-1, migrated from unstable between 2026-10-11T12:00Z and 2026-10-11T18:00Z per testing’sSourceson snapshot.debian.org.
- Default branch per suite:
- Debian security tracker (per-CVE pages):
- All ten applicable CVEs closed for
php8.2in bookworm via [DLA-4819-1][dla-4819] (8.2.34-1~deb12u1), forphp8.4in trixie via [DSA-6514-1][dsa-6514] (8.4.26-1~deb13u1), and forphp8.4in sid and forky (8.4.26-1). - CVE-2026-17545
not-affected(“Only affects PHP on Windows”).
- All ten applicable CVEs closed for
- Debian testing migration (the migration excuses on
tracker.debian.org, and testing’s
Sourceson snapshot.debian.org):php8.48.4.26-1had initially been blocked from testing as a regression: the autopkgtest ofphp-arthurhoaro-web-thumbnailer/2.1.0+dfsg-5failed on riscv64.php8.48.4.26-1’s own autopkgtests pass on all seven release architectures.
- pkgsrc (via
scripts/pkgsrc-versionsagainst the local clone):- Versions from
lang/php/phpversion.mk;PHP_VERSION_DEFAULT84 on both branches. origin/trunk: the four releases landed 2026-09-24, one commit per PHP branch.origin/pkgsrc-2026Q3: branch point 2026-09-21.origin/pkgsrc-2026Q3: pullup tickets #7277 (lang/php83) and #7278 (lang/php82) landed 2026-10-20; #7294 (lang/php84) and #7295 (lang/php85) landed 2026-10-21. Each resetPKGREVISION.- No tracked advisory id in any
patches/directory on either branch.
- Versions from
- NixOS / nixpkgs (via
scripts/nixpkgs-versionsagainst the local clone at each channel’s revision pointer):- Versions from the
php82…php85blocks ofpkgs/development/interpreters/php/default.nix;php = php84. - No tracked advisory id in
default.nixorgeneric.nix. branch:masterandbranch:release-26.05carry all four fixed releases, each merged on 2026-09-27 (per each branch’s first-parent history).- php85’s 8.5.11 bump
b3151ec8was committed on 2026-09-24 but reachedmasterin mergefd08b24f(nixpkgs#566591) on 2026-09-27. nixos-unstable-smallandnixos-26.05-smallcarry all four fixed releases as ofnixos-26.11pre1080371.545c226a9af7andnixos-26.05.10742.a71ca2a7b9c4respectively, both published 2026-09-27 (viascripts/nixos-first-shipped).nixos-unstableandnixos-26.05(non--small) caught up a day later, carrying all four fixed releases as ofnixos-26.11pre1080855.7a0f122f5090andnixos-26.05.10769.cf5e76507c6erespectively, both published 2026-09-28 (viascripts/nixos-first-shipped).nixpkgs-unstablecarries all four fixed releases as ofnixpkgs-26.11pre1080404.3181085bfd08, published 2026-09-27 (viascripts/nixos-first-shipped).
- Versions from the
- NixOS security tracker ([tracker.security.nixos.org][nixos-sec]) — a JS-rendered application, linked for readers.