Kort gezegd: CVE-2026-115560 is een aanwijzing die php.net op 23 oktober 2026 heeft gepubliceerd. Code-uitvoering op afstand is daarna alleen mogelijk bij een ongebruikelijke sessieconfiguratie. Tot de volgende reguliere bugfixrelease luidt de remedie: session.upload_progress.enabled=0 aan de serverkant instellen en alle workers herstarten.
Wat is CVE-2026-115560?
Twee dagen na de patches voor de PHP2Shell-kwetsbaarheden CVE-2026-109618 en CVE-2026-109619 publiceerde het PHP-project nog een aanwijzing. CVE-2026-115560 betreft de sessieverwerking van PHP in combinatie met de functie session upload progress, die de voortgang van lopende bestandsuploads in de sessie opslaat.
Volgens php.net is het uitvoeren van schadelijke code op afstand mogelijk, maar alleen bij een ongebruikelijke configuratie. Het volledige advisory met alle details moet volgen met de volgende reguliere bugfixrelease. Tot dan is de kennisstand bewust beknopt.
Wat doet session upload progress?
Session upload progress is een gemaksfunctie van PHP. Uploadt een bezoeker een groter bestand, dan schrijft PHP tijdens de upload voortdurend gegevens over de voortgang in de sessie: hoeveel gegevens al zijn aangekomen en welk bestand er op dat moment wordt overgedragen. Een toepassing kan die gegevens parallel opvragen en er een voortgangsbalk van maken.
In de praktijk gebruiken maar weinig toepassingen dat, want moderne uploadformulieren meten de voortgang meestal direct in de browser. In PHP staat de functie echter standaard aan. Daarom duikt ze zowel bij CVE-2026-115560 als bij de overbruggingsmaatregelen tegen PHP2Shell op: wat niet nodig is, hoort uitgeschakeld te zijn.
Wanneer is een server door CVE-2026-115560 getroffen?
Volgens de aanwijzing van php.net moeten drie voorwaarden samenkomen:
- In de configuratie is als
session.serialize_handlerde waardephp_binaryofphp_serializeingesteld. - De toepassing zet deze waarde tijdens de uitvoering met
ini_set()om naarphp, voordat zesession_start()aanroept. - Session upload progress is actief.
De standaardwaarde van session.serialize_handler is php. Een omschakeling in de configuratie en een terugzetting in de code is ongebruikelijk, maar komt voor in gegroeid maatwerk of bij bibliotheken met eigen sessiebehandeling. Of dat bij u zo is, laat zich controleren.
Zo controleert u uw configuratie
Eerst de effectieve waarden. De CLI kan een andere php.ini lezen dan PHP-FPM of mod_php; controleer daarom ook de configuratie van de webserver of de FPM-pool.
php -i | grep -E "session.serialize_handler|session.upload_progress.enabled"
grep -rn "serialize_handler\|upload_progress" /etc/php/ 2>/dev/null # pad verschilt per distributie
Daarna de toepassingscode. De volgende zoekopdracht is puur lezend en toont plaatsen waar de handler tijdens de uitvoering wordt ingesteld:
grep -rn "session.serialize_handler" /var/www/ --include="*.php"
Vindt de zoekopdracht niets en staat de handler in de configuratie op php, dan is de beschreven combinatie onwaarschijnlijk. Uitschakelen moet u session upload progress toch, want php.net noemt dezelfde instelling ook als overbruggingsmaatregel tegen PHP2Shell.
Remedie: session.upload_progress.enabled=0
Stel de waarde in de php.ini, in de FPM-pool of in de serverconfiguratie in. Volgens php.net uitdrukkelijk niet via ini_set() of .user.ini, want daar werkt hij te laat of kan de toepassing hem overschrijven.
; php.ini (voor alle pools en SAPI's die dit bestand lezen)
session.upload_progress.enabled = 0
; of in de FPM-pool
php_admin_flag[session.upload_progress.enabled] = off
# Apache met mod_php, in de VirtualHost of in de serverconfiguratie
php_admin_flag session.upload_progress.enabled off
Herstart vervolgens alle PHP-workers, bijvoorbeeld systemctl restart php8.3-fpm of Apache bij mod_php. Pakket- en dienstnamen verschillen per distributie. Zonder herstart blijft de oude instelling doorlopen. Meer daarover onder PHP-FPM en alle workers herstarten.
Controleer na de herstart of de instelling echt werkt: in de webcontext, niet alleen op de opdrachtregel. Een kort ingerichte, toegangsbeveiligde phpinfo-pagina toont de effectieve waarde; verwijder haar daarna direct.
Plaatsing naast PHP2Shell
CVE-2026-115560 is duidelijk smaller dan de twee PHP2Shell-kwetsbaarheden, die in de gangbare werkwijzen zonder bijzondere configuratie werken. Wie nu moet prioriteren, installeert eerst de PHP2Shell-update en stelt daarna session.upload_progress.enabled=0 in. Beide samen is in één onderhoudsvenster haalbaar.
Voor directie en niet-technici: CVE-2026-115560 is geen reden tot onrust, maar wel een punt op de lijst. De instelling is snel gedaan, heeft op nauwelijks een toepassing merkbaar effect en dekt tegelijk een van de overbruggingsmaatregelen tegen PHP2Shell af. De overige overbruggingsmaatregelen van php.net staan onder Spoedmaatregelen als u nog niet kunt patchen, algemene aanwijzingen over de sessieconfiguratie onder Sessies in PHP beveiligen.
Wat we nog niet weten: welke PHP-versies precies zijn getroffen en welke release de correctie brengt. Wij actualiseren deze pagina zodra het advisory verschijnt.
Hoe helpt PHP SOS concreet?
In het kader van de serverhardening voeren wij de remedie duurzaam en controleerbaar door:
- Configuratie lezen: effectieve sessiewaarden per SAPI, pool en virtuele host.
- Code doorzoeken: plaatsen waar handler of sessieopties tijdens de uitvoering worden gewijzigd.
- Uitschakelen op de juiste plaats: in php.ini, pool of serverconfiguratie, niet overschrijfbaar door de toepassing, met aansluitende herstart.
- Opvolgen: zodra de bugfixrelease verschijnt, installeren we die en documenteren we de stand.
Veelgestelde vragen
Maakt CVE-2026-115560 deel uit van PHP2Shell?
De melding kwam twee dagen na de PHP2Shell-patches en betreft eveneens PHP zelf. Het is echter een eigen kwetsbaarheid met een eigen CVE-nummer en werkt alleen bij een bepaalde, ongebruikelijke configuratie. De PHP2Shell-updates van 21 oktober verhelpen haar volgens de huidige stand niet.
Is er al een update tegen CVE-2026-115560?
Volgens de stand van 25 oktober 2026 nee. php.net kondigt aan dat het volledige advisory volgt met de volgende reguliere bugfixrelease. Tot dan is session.upload_progress.enabled=0 de aanbevolen remedie.
Wat gaat er stuk als ik session upload progress uitschakel?
De functie meldt de voortgang van lopende bestandsuploads aan de toepassing. Alleen toepassingen die zo'n voortgangsbalk via deze PHP-functie realiseren, verliezen de weergave. De upload zelf blijft werken.