Nicht php.net · Nicht NVD · Nicht CISA

PHP-Sicherheitslücken-Tracker

Inoffizielles Briefing zu Sicherheitslücken in PHP

English简体中文日本語DeutschFrançaisNederlandsEspañol

Sicherheitswarnung

PHP2Shell: PHP aktualisieren. Nur das behebt die Lücke vollständig.

CVE-2026-109618 und CVE-2026-109619 sind kritische Schwachstellen in PHP selbst, die Remote-Code-Ausführung ohne Authentifizierung erlauben. Das PHP-Projekt hat am 21. Oktober 2026 Updates für die unterstützten Zweige 8.2 bis 8.5 veröffentlicht. Starten Sie PHP nach dem Update neu. Eine Firewall ersetzt das Update nicht.

Schritte zur Behebung

Verwandter Vorfall · CA-Schlüsselkompromittierung · 17.–21. Oktober 2026

Kompromittierte eMudhra-Zwischen-CA-Schlüssel: Was PHP-Server prüfen müssen

Browser waren binnen Stunden geschützt. Bei PHP ist das anders: Die curl- und OpenSSL-Erweiterungen vertrauen dem CA-Bündel des Servers und beziehen in der Regel keine Browser-Sperrlisten. Veraltete Bündel sind daher das Problem.

Zuletzt aktualisiert

Was passiert ist

Ablauf der Reaktion (UTC)
DatumEreignis
17.10.2026, 18:05Meldung erreicht das Chrome Root Program
17.10., 19:45Chrome sperrt die sechs TLS-Zwischenzertifikate per CRLSet
17.10., 22:59Firefox sperrt alle acht per OneCRL
18.10.eMudhra widerruft die acht Zertifikate
19.10.Apple sperrt sie; Sectigo widerruft die Quersignaturen
20.10.Microsoft sperrt sie; NSS 3.131.1 entfernt emSign ECC Root CA - G3; curl cacert.pem 2026-10-20; composer/ca-bundle 1.4.16 und 1.6.0
27.10. (geplant)Chrome Root Store entfernt emSign ECC Root CA - G3 auf allen Geräten

Ist mein PHP-Server betroffen?

PHP bringt keine eigene CA-Liste mit. Die Erweiterungen openssl und curl lesen openssl.cafile / curl.cainfo, wenn gesetzt, sonst die Standardpfade von OpenSSL, normalerweise das ca-certificates-Bündel der Distribution. CRLSet oder OneCRL beziehen sie nicht. Enthält dieses Bündel noch emSign ECC Root CA - G3 (bei den Quersignaturen AAA Certificate Services), vertraut Ihr Server der kompromittierten Kette weiterhin.

Schritt 1: Das von PHP gelesene Bündel finden
# Which CA file does PHP use? Run as the same user/SAPI as the site if you can.
php -r 'print_r(openssl_get_cert_locations());'
php -i | grep -E 'openssl.cafile|openssl.capath|curl.cainfo'
Schritt 2: Gegen die Testhosts des Melders prüfen
# Does PHP still trust the compromised eMudhra intermediates?
# Good result: bool(false) plus a "certificate verify failed" warning.
# Bad result: the page body is printed (the chain was trusted).
php -r 'var_dump(file_get_contents("https://dv-g3b-emudhra.we-have-a-problem.com/"));'
php -r 'var_dump(file_get_contents("https://dv-g3b-aaa-emudhra.we-have-a-problem.com/"));'

# Same check through the curl extension
php -r '$c = curl_init("https://dv-g3b-emudhra.we-have-a-problem.com/");
curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
var_dump(curl_exec($c), curl_error($c));'
Schritt 3: Wurzel im Bündel suchen
# Is the eMudhra root still in the bundle?
ls /etc/ssl/certs | grep -i emsign            # Debian/Ubuntu symlinks
grep -n "emSign ECC Root CA - G3" /path/to/cacert.pem   # curl/Mozilla-format bundle
# composer/ca-bundle version inside a project
composer show composer/ca-bundle | grep versions

Prüfen Sie jede relevante SAPI. PHP-FPM und Apache mod_php können eine andere php.ini laden als die CLI; vergleichen Sie php --ini mit einer phpinfo()-Seite der Website.

So beheben Sie es

Systembündel und Composers ca-bundle aktualisieren
# Debian / Ubuntu (and Debian-based php:* Docker images)
sudo apt-get update && sudo apt-get install --only-upgrade ca-certificates
dpkg -l ca-certificates

# RHEL / Fedora / AlmaLinux / Rocky
sudo dnf upgrade ca-certificates

# Alpine (php:*-alpine images)
apk upgrade --no-cache ca-certificates

# Composer projects that ship composer/ca-bundle
composer update composer/ca-bundle    # 1.4.16+ or 1.6.0+

# Restart long-running PHP processes afterwards
sudo systemctl restart php8.3-fpm     # or apache2 / httpd / your queue workers
Stacks mit eigenem Bündel (XAMPP, WAMP, ältere Panels)
; php.ini — for stacks with their own stale bundle (XAMPP, WAMP, old panels)
; Download a current Mozilla-derived bundle from https://curl.se/ca/cacert.pem
; (the 2026-10-20 release or later), then point both settings at it:
curl.cainfo   = "/path/to/cacert.pem"
openssl.cafile = "/path/to/cacert.pem"
; Restart Apache / PHP-FPM so the new values load.

Ältere All-in-one-Stacks und lange nicht gepflegte Panels setzen curl.cainfo oft auf eine mitgelieferte Datei, die nie erneuert wird. Prüfen Sie die Versionshinweise des Herstellers oder verweisen Sie wie oben auf eine aktuelle cacert.pem.

Wer bereits einen Fix ausgeliefert hat

Laut Testseite des Melders gepatchte Versionen (Stand 21.–22. Oktober 2026)
SoftwareBehobene Version
Mozilla NSS3.131.1 (Bug 2084101)
curl CA bundle (cacert.pem)2026-10-20
composer/ca-bundle1.4.16, 1.6.0 (2026-10-20)
Debian ca-certificates20250419~deb12u2, 20250419+deb13u1, 20260816+nmu1
Ubuntu ca-certificates20260816ubuntu0.22.04.1, 0.24.04.1, 0.26.04.1, 0.26.10.1
Fedora ca-certificates2026.2.92_v9.0.319
Alpine ca-certificates20261020-r0
Arch ca-certificates-mozilla3.131.1-1
FreeBSD ca_root_nss1.131.1

Wir haben curls aktuelle cacert.pem (Last-Modified 20. Oktober 2026) abgerufen: Sie enthält weder emSign ECC Root CA - G3 noch AAA Certificate Services. composer/ca-bundle 1.4.16 und 1.6.0 ergänzen außerdem CaBundle::findDistrustedCertificate.

Nicht gelistete Releases, darunter ältere Distributionen wie Ubuntu 20.04 oder Debian 11, waren in den geprüften Quellen nicht als gepatcht aufgeführt. Prüfen Sie den Tracker Ihres Anbieters.

FAQ

Bundles und Hosting-Panels

XAMPP und Hosting-Panels liefern eigene PHP-Builds; ihr CA-Bundle folgt deshalb nicht unbedingt den ca-certificates-Updates des Betriebssystems. Siehe die Produktseiten zu XAMPP, cPanel, Plesk, DirectAdmin, CloudLinux, aaPanel und 宝塔面板 oder die Produktliste.

Ist das Zertifikat meiner Website betroffen?

Sehr unwahrscheinlich. eMudhra gibt an, dass die acht Zwischenzertifikate keine Endzertifikate ausgestellt haben, und Chrome fand vor der Sperre keine verketteten TLS-Zertifikate in Certificate-Transparency-Logs. Websites mit Zertifikaten unter emSign ECC Root CA - G3 brauchen aber neue Zertifikate, weil diese Wurzel entfernt wird.

Wurden zig Millionen Zertifikate unsicher?

Nein. Die kursierenden großen Zahlen beziehen sich auf eMudhras gesamte historische Ausstellung, nicht auf Zertifikate, die mit den kompromittierten Schlüsseln signiert wurden.

Warum betrifft das PHP-Server, wenn Browser sicher sind?

Browser erzwingen Certificate Transparency und erhalten CRLSet- oder OneCRL-Updates. curl und OpenSSL in PHP tun meist beides nicht. Geschützt sind sie erst, wenn das gelesene CA-Bündel der eMudhra-Kette nicht mehr vertraut, etwa bei Zahlungs-APIs, Webhooks, SMTP über TLS und Composer-Downloads.

Welches Bündel nutzt PHP?

curl.cainfo und openssl.cafile, wenn sie in der php.ini gesetzt sind, sonst die in OpenSSL einkompilierten Standardpfade, meist das ca-certificates-Bündel der Distribution. Composer nutzt composer/ca-bundle, das das Systembündel bevorzugt und sonst die eigene cacert.pem verwendet.

Quellen

Externe Links verlassen diese Website. Wir hosten keinen Exploit-Code.

  1. Protecting Firefox users following the compromise of eMudhra intermediate certificates (20 October 2026) — Mozilla Security Blog
  2. Protecting Chrome and Android users from compromised eMudhra intermediate CA certificates — Google (Chrome and Android Security)
  3. eMudhra statement on recent certificate security incident (updated 21 October 2026) — eMudhra
  4. eMudhra Intermediate CA Compromise: client check and patched-software list — we-have-a-problem.com (reporter’s test site)
  5. Bug 2083449 — eMudhra: Private key compromise of Intermediate Certificates — Mozilla Bugzilla
  6. Bug 2084101 — Remove eMudhra emSign Root CA - G3 from NSS — Mozilla Bugzilla
  7. Compromised eMudhra Intermediate Certificates (guidance for trust store operators) — Mozilla dev-security-policy
  8. Indian certification authority eMudhra’s private keys compromised – one of them was the number 4 (20 October 2026) — The Register
  9. eMudhra’s weak P-384 CA keys: testing curl, Node.js and uv (21 October 2026) — lilting channel
  10. CA certificates extracted from Mozilla (cacert.pem) — curl project
  11. composer/ca-bundle 1.6.0 and 1.4.16: distrust compromised eMudhra intermediates — Composer (GitHub)
  12. OpenSSL runtime configuration (openssl.cafile, openssl.capath) — PHP manual
  13. cURL runtime configuration (curl.cainfo) — PHP manual