PHP-lek CVE-2024-4577 treft Apache op Windows

PHP-lek CVE-2024-4577 treft Apache op Windows

Een kritieke kwetsbaarheid in PHP, geïdentificeerd als CVE-2024-4577, vormt een direct risico voor webservers die op Windows draaien in combinatie met Apache en PHP-CGI. De fout maakt het voor aanvallers mogelijk om de broncode van webapplicaties te stelen of willekeurige code op de server uit te voeren. Beheerders worden met spoed geadviseerd om hun PHP-installaties bij te werken naar de nieuwste versies.

Wat is er aan de hand?

De kwetsbaarheid, CVE-2024-4577, treft PHP-versies 8.1 tot en met 8.1.28, 8.2 tot en met 8.2.19, en 8.3 tot en met 8.3.7. Het probleem doet zich specifiek voor in een veelgebruikte configuratie: PHP-CGI op een Windows-besturingssysteem in combinatie met een Apache-webserver. Systemen die andere configuraties gebruiken, zoals Nginx, of op Linux-gebaseerde besturingssystemen draaien, worden in principe niet door deze specifieke fout getroffen.

De oorzaak: “Best-Fit” argument injection

De kern van het probleem ligt in de manier waarop het Windows-besturingssysteem omgaat met tekens in command-line argumenten. Een feature genaamd “Best-Fit” probeert automatisch onbekende of niet-standaard tekens te vervangen door een vergelijkbaar, wel ondersteund teken. Aanvallers kunnen een speciaal gefabriceerde URL sturen met een onzichtbaar teken (soft hyphen), dat door Windows wordt omgezet in een normaal koppelteken (‘-‘). De PHP-CGI module interpreteert dit koppelteken vervolgens als het begin van een nieuwe optie, zoals ‘-d’ of ‘-s’. Hierdoor kan een aanvaller PHP-instellingen manipuleren en commando’s injecteren.

Ben ik kwetsbaar en wat kan ik doen?

Om te bepalen of uw systeem kwetsbaar is, controleert u de volgende drie punten: 1. Draait uw server op Windows? 2. Gebruikt u een Apache-webserver met de PHP-CGI module? 3. Is uw PHP-versie een van de volgende: 8.1.* (voor 8.1.29), 8.2.* (voor 8.2.20), of 8.3.* (voor 8.3.8)? Als het antwoord op alle drie de vragen ‘ja’ is, is actie vereist. De enige sluitende oplossing is om uw PHP-installatie onmiddellijk te updaten naar de laatste, gepatchte versie (8.1.29, 8.2.20, of 8.3.8). Deze updates bevatten de benodigde correcties om de kwetsbaarheid te verhelpen.

CVE-2024-4577 is een serieuze kwetsbaarheid die actieve uitbuiting waarschijnlijk maakt vanwege de eenvoud van de aanval. Beheerders van Windows-gebaseerde webservers die Apache en PHP-CGI gebruiken, moeten niet wachten en hun systemen onmiddellijk bijwerken. Het negeren van dit risico kan leiden tot datalekken, code-executie en volledige compromittering van de server.

Wat is de impact?

De impact van CVE-2024-4577 is groot. Door het injecteren van specifieke PHP-opties kan een aanvaller twee hoofddoelen bereiken. Ten eerste kan de broncode van PHP-scripts, inclusief gevoelige informatie zoals databasewachtwoorden en API-sleutels, worden blootgelegd. Ten tweede, en nog gevaarlijker, kan het leiden tot de uitvoering van willekeurige code (Remote Code Execution, RCE). Dit geeft een aanvaller in feite de controle over de server, waardoor hij malware kan installeren, data kan stelen of de server kan gebruiken voor verdere aanvallen. Voor meer informatie over de bredere context van dergelijke aanvallen, zie ons overzicht van cybercrime-aanvallen.