Actuele situatie: PHP2Shell. Twee kritieke PHP-kwetsbaarheden (CVSS 9.2) maken schadelijke code zonder inloggen mogelijk. Patches sinds 21-10-2026.Wat u nu moet doen →

CVE-2026-109618: RCE door out-of-memory-toestand

CVE-2026-109618 is een van de twee PHP2Shell-kwetsbaarheden: een out-of-memory-toestand kan PHP midden in de verwerking van een verzoek onderbreken. Verholpen vanaf PHP 8.5.12, 8.4.27, 8.3.36 en 8.2.35.

Stand 4 min. leestijdPHP2Shell

Kort gezegd: CVE-2026-109618 is een van de twee kwetsbaarheden achter PHP2Shell. Een out-of-memory-toestand kan PHP onderbreken terwijl verzoekgegevens pas gedeeltelijk zijn geïnitialiseerd; bij het opruimen kunnen ongeldige gegevens dan als geldig gelden. Dat maakt code-uitvoering zonder inloggen mogelijk. De fout is verholpen in PHP 8.5.12, 8.4.27, 8.3.36 en 8.2.35.

Wat is CVE-2026-109618?

CVE-2026-109618 (GitHub-aanduiding GHSA-w8hw-w9fx-j79w) is een geheugenfout-kwetsbaarheid in de kern van PHP. Ze is met CVSS v4.0 beoordeeld met 9,2. Samen met CVE-2026-109619 vormt ze wat in de media PHP2Shell wordt genoemd.

Het effect is een zogeheten unauthenticated Remote Code Execution: een aanvaller kan op afstand en zonder gebruikersaccount code op de webserver uitvoeren. Daarmee hoort de kwetsbaarheid tot de gevaarlijkste klasse zwakke plekken die een webserver kan hebben.

Hoe de kwetsbaarheid in beginsel ontstaat

Wanneer PHP een webverzoek verwerkt, legt het intern gegevensstructuren voor dat verzoek aan, bijvoorbeeld voor verzonden formuliergegevens. Loopt PHP daarbij tegen zijn geheugengrens aan, dan breekt het af met een out-of-memory-toestand. Volgens php.net kan dat gebeuren terwijl de verzoekgegevens pas gedeeltelijk zijn geïnitialiseerd.

Aan het eind van elk verzoek ruimt PHP op en geeft het geheugen vrij. Precies daar zit de fout: het opruimen kan ongeldige, maar half aangelegde gegevens als geldig behandelen. Uit dit foute gedrag laat zich onder bepaalde voorwaarden code-uitvoering afleiden.

Waarom is zo'n fout zo ernstig? Een geheugenfout in de programmeertaal treft alle toepassingen die erop draaien, ongeacht hoe zorgvuldig ze zijn geprogrammeerd. Een goed onderhouden WordPress-installatie met actuele plugins is evengoed getroffen als een oud maatwerk. Daarom helpt hier geen update van de toepassing, maar alleen een update van PHP.

Verdere technische bijzonderheden over het misbruik publiceren we bewust niet. Voor de verdediging zijn ze niet nodig: beslissend is of uw server een verholpen versie gebruikt en of de nieuwe processen werkelijk draaien.

Getroffen versies en werkwijzen

PHP-tak Laatste stand vóór de fix Verholpen vanaf
8.5 8.5.11 8.5.12
8.4 8.4.26 8.4.27
8.3 8.3.35 8.3.36
8.2 8.2.34 8.2.35
8.1 en ouder geen officiële update alleen minimale broncode-backports voor 7.4, 8.0, 8.1

Getroffen zijn de werkwijzen PHP-FPM, Apache met mod_php, php-cgi, FrankenPHP en LiteSpeed. Het PHP-team schat het risico bij mod_php het hoogst in. Distributies en hosters installeren soms backports, zodat een oudere versie wordt getoond terwijl de fout is verholpen. Maatgevend zijn pakketstand en bevestiging van de aanbieder.

Ter indicatie van de omvang: Palo Alto Networks (Unit 42) telde meer dan 22,6 miljoen blootgestelde, mogelijk kwetsbare instanties. Het BSI (de Duitse federale dienst voor informatiebeveiliging) heeft waarschuwingsniveau 3 (oranje) afgekondigd en rekende op snel grootschalig misbruik.

CVE-2026-109618 verhelpen: update en herstart

De enige volledige remedie is de update. Controleer eerst versie en pakketstand. Pakketnamen verschillen per distributie; de voorbeelden gaan uit van PHP 8.3:

php -v
apt policy php8.3-fpm          # Debian/Ubuntu
dnf info php-fpm               # RHEL, AlmaLinux, Rocky, Fedora
rpm -q --changelog php-fpm | grep -i "CVE-2026-109618"

Noemt de pakketchangelog het CVE-nummer, dan is de backport geïnstalleerd. Ontbreekt het, dan betekent dat niet automatisch dat het pakket kwetsbaar is; dan helpt de vergelijking met de versietabel of navraag bij de aanbieder.

Na de update moeten alle PHP-processen worden herstart, bijvoorbeeld met systemctl restart php8.3-fpm of bij mod_php met een herstart van Apache. Hoe u zeker weet dat er geen oude worker meer draait, staat onder PHP-FPM en alle workers herstarten.

Overbruggingsmaatregelen als de update nog niet kan

php.net heeft voor PHP2Shell overbruggingsmaatregelen gepubliceerd. Ze gelden voor beide kwetsbaarheden gezamenlijk en zijn uitdrukkelijk geen volledige bescherming. Dat meerdere ervan op geheugengrenzen betrekking hebben, past bij de out-of-memory-aanleiding van CVE-2026-109618; een officiële toewijzing van afzonderlijke maatregelen aan afzonderlijke CVE's bestaat echter niet.

; Voorbeeld FPM-pool, bijv. /etc/php/8.3/fpm/pool.d/www.conf (pad verschilt per distributie)
php_admin_value[memory_limit] = -1
php_admin_value[post_max_size] = 8M          ; 32M, als uploads nodig zijn
php_admin_value[upload_max_filesize] = 6M    ; immer unter post_max_size
php_admin_flag[session.upload_progress.enabled] = off

De waarden moeten zo zijn ingesteld dat toepassingen ze niet kunnen overschrijven, vandaar php_admin_value. Met memory_limit=-1 heeft de dienst een geheugengrens van buitenaf nodig, via container of cgroup, niet via RLIMIT_AS of RLIMIT_DATA. Op PHP 8.5 komt fatal_error_backtraces=0 erbij. Alle details staan onder Spoedmaatregelen als u nog niet kunt patchen.

Belangrijk

Als noch update noch overbruggingsmaatregelen direct mogelijk zijn, adviseert het BSI de getroffen webservers tijdelijk van het netwerk te halen.

Hoe helpt PHP SOS concreet?

Via onze PHP-patchservice dichten wij CVE-2026-109618 gestructureerd:

  • Huidige stand vastleggen: PHP-tak, werkwijze, pakketbron en backportstand per server.
  • Update installeren uit de passende pakketbron of, waar dat niet kan, de overbruggingsmaatregelen netjes in pool- of serverconfiguratie instellen.
  • Herstart controleren: wij controleren dat er geen oude PHP-processen meer draaien.
  • Bewijs: u ontvangt een documentatie met versies en pakketstanden vóór en na de ingreep, bijvoorbeeld voor directie, verzekeraar of gegevensbescherming.

Veelgestelde vragen

Hoe kritiek is CVE-2026-109618?

De kwetsbaarheid is met CVSS v4.0 beoordeeld met 9,2 en dus kritiek. Ze maakt het op afstand uitvoeren van schadelijke code zonder inloggen mogelijk. Het BSI heeft voor PHP2Shell waarschuwingsniveau 3 (oranje) afgekondigd.

Volstaat het om memory_limit te verhogen?

Nee. php.net noemt memory_limit=-1, vast ingesteld in de serverconfiguratie, als een van meerdere overbruggingsmaatregelen. Het is uitdrukkelijk geen volledige bescherming en vereist een geheugengrens via container of cgroup. De oplossing blijft de update.

Welke GHSA-aanduiding hoort bij CVE-2026-109618?

In het GitHub Security Advisory staat de kwetsbaarheid onder GHSA-w8hw-w9fx-j79w. De tweede PHP2Shell-kwetsbaarheid, CVE-2026-109619, heeft de aanduiding GHSA-6wmf-4rv5-p3rp.

Bronnen

Direct contact

Elk uur telt. Schrijf ons nu.

Beschrijf kort het systeem, de PHP-versie en wat u opmerkt. Wij nemen contact op, brengen de situatie in kaart en werken op afstand tot het incident is afgerond en gedocumenteerd.

Directe hulp