← Q-Day

Technologie

PHP2Shell en Q-Day: is PHP klaar voor post-quantum?

qdayiscoming.com · 3 november 2026

Vergelijking: PHP2Shell, twee lekken in PHP's code die binnen dagen met een update verholpen waren (20 tot 26 oktober 2026), tegenover Q-Day, waarbij elk gebruik van RSA en elliptische krommen in jaren moet overstappen op nieuwe algoritmen

Een fout los je op met een update. Q-Day vraagt een migratie (stand 3 november 2026).

Nog niet, voor de delen die je zelf schrijft. Draait je server OpenSSL 3.5 of nieuwer, dan bieden HTTPS-verbindingen met de standaardinstellingen al een hybride post-quantumsleuteluitwisseling aan, maar PHP's eigen openssl_*-functies kunnen nog geen post-quantumversleuteling of -handtekeningen. PHP2Shell, het kritieke PHP-lek dat op 21 oktober 2026 werd gedicht, heeft niets met quantumcomputers te maken. Het laat wel zien waarom dat gat ertoe doet.

Eén fout hield de PHP-wereld een week bezig met noodpatches. Q-Day is niet één fout.

Wat er gebeurde met PHP2Shell

Op 21 oktober 2026 bracht het PHP-project PHP 8.5.12, 8.4.27, 8.3.36 en 8.2.35 uit. Die dichten "two critical vulnerabilities that can allow unauthenticated remote code execution", CVE-2026-109618 en CVE-2026-109619, allebei beoordeeld met 9,2 op 10 (CVSS v4.0) (php.net). Remote code execution zonder authenticatie betekent dat een vreemde zonder account jouw server zijn opdrachten kan laten uitvoeren. De beveiligingspers gaf het tweetal de bijnaam PHP2Shell. Volgens PHP is het risico het grootst voor sites die PHP als Apache-module draaien (mod_php).

De release liep rommelig. Volgens de PHP Foundation lekten de CVE-nummers op 20 oktober uit, waarna het project de release een dag naar voren haalde. Chainguard, dat de reparatie als distributeur vooraf had gekregen, publiceerde op 21 oktober om 07:41 UTC gerepareerde images, ruim zes uur vóór de afgesproken release (PHP Foundation). Op 23 oktober volgde een extra advies over een los, "unlikely" aanvalspad, CVE-2026-115560. Op 26 oktober zette de Amerikaanse cyberdienst CISA beide hoofdlekken op zijn lijst van kwetsbaarheden die in de praktijk worden misbruikt (CISA).

AI speelde op de achtergrond mee. De PHP Foundation schrijft dat ze PHP via het Alpha-Omega-project met Claude Mythos van Anthropic heeft laten scannen, en dat onderzoek met AI het aantal meldingen heeft opgedreven: 15 CVE's sinds 1 juli, en meer dan 100 meldingen die ongeldig, dubbel of niet na te bootsen waren. Ze zegt niet dat de PHP2Shell-meldingen zelf van AI kwamen.

Waarom een patch Q-Day niet oplost

PHP2Shell was een fout in code. Je repareert de code, brengt een update uit, en binnen een paar dagen is iedereen die bijwerkt veilig. Q-Day is anders. Een grote quantumcomputer met het algoritme van Shor zou de wiskunde achter RSA en elliptische krommen zelf breken. Er is geen fout om te repareren. Elk systeem dat die wiskunde gebruikt, moet overstappen op andere algoritmen: zijn sleutels, zijn certificaten, zijn opgeslagen gegevens, en elke partner waarmee het praat.

Denk aan een gebouw. PHP2Shell is een kapot slot op één type deur: de slotenmaker vervangt het slot en het gebouw is weer veilig. Q-Day is het bericht dat één soort sleutel te kopiëren is door iedereen met een bepaalde machine. Dan moet je elke deur van nieuwe sloten voorzien, en alles wat jaren geleden met de oude sleutels is afgesloten, staat ook open. Dat laatste heet nu oogsten, later ontcijferen: gegevens die vandaag worden opgenomen, zijn te lezen zodra zo'n machine bestaat.

Daarom worden de deadlines in jaren gemeten. De definitieve overgangsrichtlijn van NIST van 27 oktober 2026 noemt alle quantumkwetsbare public-key-algoritmen "deprecated" (afgeraden) na 2030 en "disallowed" (niet meer toegestaan) na 2035 (NIST IR 8547). Ons overzicht van post-quantumdeadlines zet op een rij wie wanneer moet handelen. Een deadline is geen voorspelling: wanneer zo'n computer er is, is onzeker, en de Q-Day-countdown loopt naar de vroegste voorspelling met een naam erbij, die van Gartner: 2029.

Waar PHP nu staat

Eerst twee begrippen. ML-KEM is de post-quantummethode die NIST heeft gestandaardiseerd om samen een geheime sleutel af te spreken; ML-DSA en SLH-DSA zijn post-quantumhandtekeningen. "Hybride" betekent dat de nieuwe methode naast de oude draait, zodat een aanvaller ze allebei moet breken.

LaagStand op 3 november 2026
HTTPSGeregeld door je webserver en OpenSSL, niet door je PHP-code. OpenSSL 3.5.0 (8 april 2025) voegde ML-KEM, ML-DSA en SLH-DSA toe en biedt standaard de hybride sleuteluitwisseling X25519MLKEM768 aan (OpenSSL-releasenotes)
ext/opensslGeen post-quantumfuncties. Een PHP-kernontwikkelaar schreef op 5 september 2026 dat "ext-openssl not only lacks PQC APIs, but also several other features" van OpenSSL 3.5 en 4 (php.internals)
VoorstelEen open verzoek om post-quantumondersteuning (php-src #22862), en sinds 5 september 2026 een RFC-discussie: algemene sleutelgeneratie, inkapselen en uitpakken voor KEM's, en ML-DSA en SLH-DSA waar mogelijk via de bestaande ondertekenfuncties (php.internals). Geen versie of datum
Extensiesparagonie/ext-pqcrypto, geschreven in Rust op RustCrypto, biedt ML-KEM, ML-DSA, SLH-DSA en het hybride X-Wing (GitHub). liboqs-php is een schil om de Open Quantum Safe-bibliotheek (GitHub), waarvan de makers schrijven dat ze het nu niet aanraden om er in productie op te vertrouwen (liboqs)

De transportlaag schuift dus op, via OpenSSL. De applicatielaag, waar PHP-code zelf gegevens versleutelt of ondertekent, is nog niet zover.

Wat PHP-ontwikkelaars nu kunnen doen

Eerst patchen. PHP2Shell is vandaag een echt risico; Q-Day niet. Draai 8.5.12, 8.4.27, 8.3.36, 8.2.35 of nieuwer. PHP 8.2 wordt op 31 december 2026 niet meer ondersteund (php.net).

Controleer je OpenSSL-versie. openssl version op de server, of de OpenSSL-regel in php -i. Met 3.5 of nieuwer kunnen HTTPS-verbindingen met de standaardinstellingen de hybride sleuteluitwisseling al gebruiken.

Maak een inventaris. Zoek in je code naar openssl_- en sodium_-aanroepen, JWT- en ondertekenbibliotheken, en alles wat versleutelde gegevens opslaat. Het algoritme van Shor richt zich op public-key-cryptografie. Hashing zoals password_hash en symmetrische versleuteling zoals AES breekt het niet (zie post-quantumcryptografie).

Bouw cryptowendbaarheid in. Zet versleutelen en ondertekenen achter één eigen interface, zodat een algoritme later wisselen één wijziging is in plaats van een zoektocht door de hele code. De Y2Q-migratiegids en onze gids hoe je je voorbereidt op Q-Day beschrijven de stappen voor een organisatie.

Volg de RFC. ML-KEM in PHP zelf zou de applicatielaag een stuk makkelijker maken. Tot die tijd is een extensie een optie om mee te experimenteren, geen reden om de klassieke methode los te laten.

Wat we niet weten

Wanneer PHP post-quantumfuncties krijgt. De RFC-discussie noemt geen versie of datum.

Hoeveel PHP2Shell-aanvallen slaagden. CISA zegt dat de lekken worden misbruikt; het noemt geen aantallen.

Wanneer Q-Day komt. Voorspellingen lopen uiteen en elk heeft een naam erbij. De countdownpagina noemt de bronnen.

Bronnen