CRISUSCentrale Registratie van Incidenten, Storingen en Uitgebreid Schouderophalen RSS

Deze crisus is afgesloten. Dit was HTTP2Shell. Brotli is gepatcht, het lek staat op de KEV-lijst en Fortinet werkt nog aan fixes. De volgende crisus heet TCP2Shell. Hieronder staat alles zoals het was, met alle updates. Naar de actuele stand.

Afgesloten crisus ·

HTTP2Shell: kritiek lek in Brotli

Een kritiek lek in Brotli, de compressie van Google: HTTP2Shell. Brotli zit in Node.js, in Python, in Bun, Envoy en Istio, en waarschijnlijk ook in iets van u. De patch is uit: Brotli 1.2.1, Node.js 26.12.1, 24.22.1 en 22.23.4. Niet in paniek raken. Wel updaten.

21:27Sinds 21 oktober 21:27 (19:27 UTC) is de fix van Brotli zelf uit. Node.js had hem dezelfde dag al. Elke minuut op deze klok is een minuut zonder update. Is de patch er al voor mij?

Crisusniveau bij het afsluiten: 3 van 5

  1. 0 · Business as usualAlles bromt. 50 Hz. Altijd.
  2. 1 · RustigIemand leest de changelog
  3. 2 · OplettenEr is een Signal-groep
  4. 3 · ErnstigStatus quo sinds 2001
  5. 4 · Zeer ernstigDe manager vraagt of het al werkt
  6. 5 · VrijdagmiddagIemand zegt: “het is maar een kleine wijziging”

Voor wie even rust zoekt: 50 hertz, net als het stroomnet. Zacht, en pas als u klikt.

Het internet is toch zeker 0 dagen zonder nieuwe crisus. Plechtig teruggezet op 24 oktober om 21:00. Eerlijk is eerlijk: HTTP2Shell kwam op dezelfde woensdag als PHP2Shell. De vorige stand van 3 dagen en 5 uur klopte dus nooit. Wij hadden het druk.

Updates

  1. Alpine Linux en Cisco onder vuur. Op 20 en 21 oktober probeerde een aanvaller binnen te komen op de GitLab-server van Alpine Linux, via CVE-2026-97229, een kritiek lek in de reguliere-expressiemotor van Ruby, schrijft Alpine. Alpine draaide per ongeluk nog een kwetsbare versie, en de update van 22 oktober hielp niet: de fix zit in een Ruby-patch die GitLab alleen in zijn eigen pakketten meelevert. Bewijs dat de aanvaller code draaide, vond Alpine niet, maar uitsluiten kan het ook niet. Dus is de server opnieuw opgebouwd, met nieuwe wachtwoorden en sleutels. De pakketten, de aports en de releases van 21 oktober zijn volgens Alpine niet aangetast, en de ondertekeningssleutels stonden nooit op die server. Wie zelf GitLab draait met een eigen Ruby: GitLab bijwerken is niet genoeg, ook Ruby 3.3.13, 3.4.12 of 4.0.9 is nodig. Patchen in twee lagen, zoals een ui. Daar huil je ook van.

    En Cisco meldt in een advisory van 28 oktober dat een lek in de SSL-vpn van Secure Firewall ASA en FTD actief wordt misbruikt (CVE-2026-76418, CVSS 8,6). Zonder in te loggen kan een aanvaller het apparaat laten herstarten, als secundaire authenticatie aanstaat in een tunnel group. Er zijn fixes voor alle versies. Een workaround is er niet, wel een noodmaatregel: secundaire authenticatie uitzetten. In augustus lag dezelfde vpn-dienst ook al onder vuur, schrijft Security.NL. Een firewall die steeds herstart, laat in elk geval niemand binnen.

  2. Binance: miljarden weg uit de hot wallets. Vanavond tussen ongeveer 21:24 en 22:04 vloeiden miljarden aan cryptomunten weg uit wallets van Binance, de grootste cryptobeurs. Hoeveel precies, verschilt per teller. Unchained telde op Ethereum 3,5 miljard dollar, Blockaid zo’n 2,5 miljard plus 780 miljoen USDC. Met bitcoin en Tron erbij komt een latere telling op ruim 5,5 miljard, schrijft KIP Inform, zonder te zeggen wie er telde. Binance zelf spreekt nog niet van een hack: “We have not confirmed any impact to user funds.” Oud-topman Changpeng Zhao wel: “it does look like a hack on Binance”, en al het geld van klanten wordt vergoed, belooft Zhao. Tether en Circle bevroren samen ongeveer 2 miljard dollar aan stablecoins. Hoe de dief erbij kon, is nog niet bekend. Bij de diefstal bij Bybit in februari 2025 ging het volgens de FBI om 1,5 miljard dollar. Alleen het Ethereum-deel is nu al ruim het dubbele. De grootste kraak ooit, en de kluis zegt nog “mogelijk”.

  3. PHP2Shell: het waren Palo Alto-firewalls. Dream werkte zijn blog op 29 oktober bij. De 24 firewalls aan de rand van het netwerk draaien PAN-OS van Palo Alto Networks, versies 12.1 en 12.2. Gisteren schreven we hier nog dat Dream het merk niet noemde. Dream werkt nu samen met Palo Alto. Unit 42, het onderzoeksteam van Palo Alto, controleerde de gereedschappen en de uitkomsten zelf en volgt de aanvaller als CL-UNK-1280, schrijft Dream. Het advies: de nieuwe PAN-OS-versies installeren (zie de advisory), de beheerinterface niet aan het internet, en het wachtwoord van het LDAP-serviceaccount op de firewall vervangen. Zo wordt een anonieme firewall toch nog beroemd.

  4. PHP2Shell: de 25 servers waren van Palo Alto. Dream noemt nu wel het merk. Het ging om firewalls met PAN-OS van Palo Alto Networks, de takken 12.1 en 12.2, met daarin PHP 8.0.30, staat in de bijgewerkte blog van 29 oktober. Dream onderzoekt het samen met Palo Alto. Het onderzoeksteam van Palo Alto zelf, Unit 42, schrijft dat het de tools van de aanvaller zelf heeft nagelopen en de resultaten bevestigt. Op 25 oktober kon Unit 42 nog niet bevestigen dat de aanvallen via PHP2Shell binnenkwamen. Volgens Dream is de exploit geen kopie van een bekende, maar speciaal voor PAN-OS gebouwd. Van eerste verbinding tot root duurt het minder dan een kwartier, meldt ook The Register. CISA en de FBI wilden niet reageren.

    Fixes voor 12.1 en 12.2 staan in de advisory. Het advies blijft: patchen, de beheerinterface van het internet halen en ervan uitgaan dat de aanvaller er nog zit. Wie een firewall koopt, krijgt er een webserver bij. En dus ook PHP.

  5. PHP2Shell: ook Fragnesia op de KEV-lijst. De Amerikaanse CISA zette gisteren CVE-2026-46300, het lek in de Linux-kernel dat ook Fragnesia heet, op de KEV-lijst. Dat staat in een alert van 28 oktober. In de catalogus staat erbij waarom: het lek “can be chained with” CVE-2026-109618 en CVE-2026-109619, om webshells in PHP te zetten en opdrachten als root uit te voeren. Dat is de keten die Dream beschreef. Meer over de aanvallen kon een woordvoerder van CISA niet geven, meldt BleepingComputer. Amerikaanse federale diensten moeten het uiterlijk 31 oktober verhelpen. Ook hier vraagt CISA om forensische triage. Of ransomwarebendes het lek gebruiken, weet CISA nog niet.

    Voor de twee PHP-lekken liep de termijn vandaag af. De patch is er sinds 21 oktober: 8.5.12, 8.4.27, 8.3.36 en 8.2.35. Voor de kernel noemt de catalogus acht fixes in de stabiele takken. Een nieuwe kernel werkt pas na een herstart. Dit is de derde aanmaning. Deze keer met herstart.

  6. HTTP2Shell: ook Fortinet. Fortinet zette het Brotli-lek op 26 oktober in een eigen advisory, FG-IR-26-187, en noemt het kritiek: CVSS 9,8. Ruim veertig producten staan op “wordt onderzocht”, waaronder FortiOS, FortiProxy en FortiMail. Gefixte versies zijn er nog niet, een workaround ook niet. Misbruik tegen zijn eigen producten heeft Fortinet niet gezien. Een paar producten, zoals FortiADC, staan zowel bij “wordt onderzocht” als bij “niet geraakt”. Schrödingers firewall.

  7. HTTP2Shell wordt misbruikt. De Amerikaanse CISA zette CVE-2026-111497, het lek in de Brotli-decoder, op 27 oktober op de KEV-lijst, staat in een alert. Dat is de lijst van lekken die aantoonbaar worden misbruikt. Ook het Italiaanse CSIRT meldt misbruik, schrijft Security.NL. Hoe en tegen wie, zegt CISA niet. Amerikaanse federale diensten moeten het uiterlijk 10 november verhelpen. Of ransomwarebendes het lek gebruiken, weet CISA nog niet. Het NCSC zegt het kort: update nu. Bij “Misbruik?” stond hier een week lang “nog niet gezien”. Dat hield een week.

  8. PHP2Shell: 25 servers overgenomen. Een aanvaller kreeg met PHP2Shell 25 servers in handen, tot en met root, schrijft het Israëlische beveiligingsbedrijf Dream. Het gaat om 24 firewalls aan de rand van een netwerk en één centrale beheerserver, in de Verenigde Staten, Japan, Taiwan en Zuid-Korea. Welk merk firewall het is, zegt Dream niet. De fabrikant is ingelicht. De aanvaller koppelde de twee PHP-lekken aan Fragnesia (CVE-2026-46300), een lek in de Linux-kernel, om van de webserver root te worden. Dat ging met één HTTPS-verzoek, zonder in te loggen. Dream vond het materiaal van de aanvaller op 25 oktober. Vandaag nam The Hacker News het verhaal over.

    Het begon met zo’n 19.000 firewalls aan het internet, gevonden met de zoekmachine FOFA. Na filteren op land en versie bleven er 240 over. Daarvan werden er automatisch 24 overgenomen. Bij 22 bleef het bij een webshell, die er volgens Dream misschien nog steeds staat. Bij een organisatie die aan de Amerikaanse overheid hangt, ging de aanvaller verder: twee firewalls op 23 en 24 oktober, en minder dan 90 minuten later ook de centrale beheerserver. Daar ontsleutelde de aanvaller het wachtwoord van een LDAP-serviceaccount en haalde alle gebruikers en groepen op. Ook werd geprobeerd wachtwoorden te raden, een achterdeuraccount te maken en SAML-sleutels te stelen. Of dat lukte, kon Dream niet nagaan.

    Een groep noemt Dream niet. Wel wijzen de sporen naar China: de doelwitlanden, FOFA, tijdstempels in UTC+8 en Chineestalige prompts. In het materiaal stonden ook Claude Code en een scanplatform met DeepSeek en Kimi. Dat AI de exploit schreef, kan Dream niet bewijzen. Volledig automatisch was het in elk geval niet. Het advies: patchen, en ervan uitgaan dat de aanvaller nog binnen kan zijn. De patch is er sinds 21 oktober. CISA vroeg op 26 oktober al om forensische triage. Nu weten we waarom.

    En Cisco werkte zijn advisory voor de negende keer bij. De fix voor Ultra-Reliable Wireless Backhaul en Unified Industrial Wireless Software, versie 27.1.1, komt nu in november 2026, en niet meer in maart 2027. Misbruik tegen zijn eigen producten heeft Cisco nog steeds niet gezien. Ultra-snel is het nog niet. Wel sneller.

  9. PHP2Shell: misbruik bij Palo Alto. Nu ziet Palo Alto Networks wel misbruik tegen zijn eigen producten. “Active exploitation has been observed targeting the Palo Alto Networks management interface exposed to the internet”, staat in de advisory. Het gaat om de beheerinterface van PAN-OS: de webinterface en de XML API. GlobalProtect is niet geraakt. Palo Alto stuurde klanten ook een waarschuwing, meldt Security.NL. Sinds gisteren noemt Palo Alto het lek kritiek, met de hoogste urgentie.

    Vandaag kwamen er drie fixes bij voor 11.2: 11.2.7-h23, 11.2.13-h4 en 11.2.16-h1. Zes hotfixes komen nog: 10.2.10-h42 en 12.1.4-h13 op 29 oktober, 10.2.7-h39, 11.1.7-h12, 11.2.4-h23 en 12.1.10-h3 op 30 oktober. Wie Threat Prevention heeft, kan de aanval tot dan tegenhouden met Threat ID 543004. Wij schreven het al eerder: de beheerinterface hoort niet aan het internet. Nu staat er iemand aan de andere kant.

  10. HTTP2Shell: Red Hat heeft de fix. Red Hat bracht gisteravond fixes uit voor Brotli in RHEL 8, 9 en 10: RHSA-2026:90501 (brotli 1.0.6-5.el8_10), RHSA-2026:90495 (1.0.9-10.el9_8.1) en RHSA-2026:90449 (1.1.0-8.el10_2.1), alle drie met de ernst “important”. Helemaal klaar is Red Hat nog niet: Node.js 24 en 26 als module op RHEL 8 en 9 staan op de CVE-pagina nog op “Affected”, want Node.js heeft zijn eigen Brotli. Het Zwitserse broodje is in Raleigh eindelijk afgebakken.

    Ook Fedora is verder. Sinds gisteravond is Brotli 1.2.1 een stabiele update voor Fedora 45 (FEDORA-2026-6a639d1308). Voor Fedora 43 en 44 zit de update nog in de testfase.

  11. PHP2Shell: Cisco is uitgezocht. Cisco werkte vanavond zijn advisory voor de achtste keer bij, en nu staat er “Final” bij. Twee producten die nog in onderzoek waren, blijken geraakt: de Portal Builder van ISE en Unified Industrial Wireless Software. SD-AVC is niet geraakt. Voor de Portal Builder is er geen fix. Daar staat alleen: “Offline for remediation”. De fix voor Ultra-Reliable Wireless Backhaul en Unified Industrial Wireless Software, versie 27.1.1, schuift op van februari naar maart 2027. Ook dat is volgens Cisco een schatting. Tot dan is er een workaround, die in de bugmelding staat. Bij die twee moet een aanvaller eerst als beheerder inloggen, en daarom geeft Cisco ze een 6,6. Expressway (15.5.21) en Duo Access Gateway (3.2.0) hadden hun fix al. Misbruik tegen zijn eigen producten heeft Cisco niet gezien. Ultra-betrouwbaar was al niet ultra-snel. Nu is het ook nog een maand later.

  12. PHP2Shell: ook Citrix NetScaler. Ook NetScaler ADC en NetScaler Gateway zijn geraakt, want de beheerportal draait PHP. Sinds vandaag zijn er fixes, staat in advisory CTX697263: 14.1-73.49 en 13.1-64.32, en voor de FIPS-versies 14.1-73.49 FIPS en 13.1.37.286. Citrix vraagt klanten die zo snel mogelijk te installeren. Wie de clouddiensten van Citrix gebruikt, hoeft niets te doen. Volgens Security.NL waarschuwt onderzoeker Kevin Beaumont dat NetScaler geen ASLR heeft, een beveiliging die misbruik van PHP2Shell lastiger maakt. NetScaler en een kritiek lek: het crisusteam heeft daar een vaste map voor.

    Ook Palo Alto Networks is verder. Er zijn nu fixes voor PAN-OS 12.2 (12.2.4-h1), 12.1 (12.1.7-h11) en twee extra voor 10.2 (10.2.13-h27 en 10.2.16-h12), staat in de advisory. De laatste hotfixes komen uiterlijk 30 oktober. Misbruik tegen zijn eigen producten heeft Palo Alto nog steeds niet gezien.

    En de rest van het internet? Het aantal kwetsbare machines aan het internet is in een paar dagen met zo’n 67 procent gedaald, meldt Wiz. Een week na de bekendmaking is minder dan 53 procent van de getroffen organisaties nog kwetsbaar. Een geslaagde aanval van begin tot eind zag Wiz zelf nog niet. Wel hoorde het van partners over exploits die tegen allerlei systemen werken. Bijna de helft is dus klaar. De andere helft leest dit hopelijk.

  13. PHP2Shell staat op de KEV-lijst. De Amerikaanse CISA zette gisteravond beide lekken, CVE-2026-109618 en CVE-2026-109619, op de KEV-lijst, de lijst van lekken die aantoonbaar worden misbruikt. Dat staat in een alert van 26 oktober. Amerikaanse federale diensten moeten het uiterlijk 29 oktober verhelpen. Dat is drie dagen. Bij beide lekken staat in de catalogus ook forensische triage: de diensten moeten nagaan of er al iemand binnen was voordat de patch erop ging. Of ransomwarebendes het lek gebruiken, weet CISA nog niet. Op crisus.nl/php schreven we: komt hij erop, dan leest u het hier. Hier leest u het.

    De patch is er sinds 21 oktober: 8.5.12, 8.4.27, 8.3.36 en 8.2.35. Kan een systeem niet meteen worden bijgewerkt? Haal het dan van het net tot de patch erop zit, zegt CISA in zijn eerdere alert. Dit is de tweede aanmaning.

  14. PHP2Shell: Cisco en Palo Alto zijn verder. Cisco werkte vanavond zijn advisory voor de zevende keer bij. Geraakt zijn Expressway en Expressway Select (fix in 15.5.21), Duo Access Gateway (fix in 3.2.0) en Ultra-Reliable Wireless Backhaul. Nog in onderzoek: de Portal Builder van ISE, SD-AVC en Unified Industrial Wireless Software. IOS, IOS XE, Meraki, de Secure Firewalls en Webex zijn niet geraakt. Wat niet in de lijst staat, is volgens Cisco ook niet geraakt. Voor Ultra-Reliable Wireless Backhaul komt de fix, versie 27.1.1, in februari 2027. Ultra-betrouwbaar is iets anders dan ultra-snel.

    Palo Alto Networks heeft de eerste fixes voor PAN-OS uit, staat in zijn advisory: 10.2.18-h13, 11.1.4-h38, 11.1.6-h40, 11.1.10-h36, 11.1.13-h16, 11.1.16-h4 en 11.2.10-h16. De andere hotfixes, ook alle voor 12.1 en 12.2, komen tussen 27 en 30 oktober. Misbruik tegen zijn eigen producten heeft Palo Alto nog niet gezien. De beheerinterface hoort intussen nog steeds niet aan het internet.

  15. Ook PHP op Windows. In de Windows-builds van PHP zit Brotli, en daarmee HTTP2Shell. Vanmiddag kwamen er nieuwe builds: 8.5.12-1, 8.4.27-1, 8.3.36-1 en 8.2.35-1, met Brotli 1.2.1, meldt php.announce. De weg naar het lek loopt via de cURL-extensie, als die antwoorden zelf uitpakt. Dat staat in cURL standaard uit, maar applicaties en HTTP-bibliotheken kunnen het aanzetten. PHP raadt iedereen op Windows aan de nieuwe builds te nemen. De versie van PHP zelf verandert niet: de -1 betekent alleen een nieuwe build. php -v zegt dus hetzelfde als gisteren. Het versienummer liegt niet. Het zegt alleen niet alles.

    PHP2Shell in de fabriek. Ook de industrie loopt haar spullen na, meldt SecurityWeek. Bij Siemens is de RUGGEDCOM APE1808 met PAN-OS van Palo Alto geraakt. Voor de patch moet u de klantenservice bellen, staat in SSA-566512. Schneider Electric heeft drie producten geraakt, ABB zijn MES-installaties met DokuWiki en dochter B&R het procesbesturingssysteem APROL. Belden heeft voor de routersoftware NetModule NRSW nog geen fix en raadt aan de webinterface uit te zetten. Johnson Controls, HMS Networks en Wibu-Systems hebben updates. Rockwell Automation en Hitachi Energy zoeken het nog uit. Moxa is al klaar: niets geraakt. PHP draait dus ook in de fabriekshal. Daar zet niemand de lopende band stil voor een update op maandagmiddag.

  16. PHP2Shell: nu wel bevestigd. Vrijdag zei de PHP Foundation nog dat een geslaagde aanval niet bevestigd was. Nu is hij dat wel. Adel Karimi, die bij Perplexity aanvallen opspoort, zag op 24 oktober in drie honeypots 35 keer een shell opstarten, meldt BleepingComputer. De lokservers draaiden PHP 8.4.26 met Apache en mod_php, de opstelling waar Mandiant al voor waarschuwde. Twee aanvallers kwamen binnen. Ze keken wie ze waren, probeerden bestanden weg te zetten en wilden iets ophalen. Een tweede stap zag de onderzoeker niet. Marcus Hutchins van Expel noemt het “by far the highest quality confirmation of in-the-wild php2shell exploitation I’ve seen so far”.

    PHP2Shell blijft afgesloten. De patch is er al sinds 21 oktober: 8.5.12, 8.4.27, 8.3.36 en 8.2.35. Draait u mod_php en nog een oudere versie? Dan was vrijdag uw laatste herinnering. Dit is de eerste aanmaning.

  17. Ook Microsoft. Vandaag, op een zondag en buiten Patch Tuesday om, bracht Microsoft updates uit voor HTTP2Shell: .NET 8, 9 en 10, de release candidate van .NET 11, PowerShell 7.4, 7.5 en 7.6 en Visual Studio 2019, 2022 en 2026. Dat staat in de Security Update Guide. Microsoft noemt het kritiek, met een 8,1. Misbruikt: nee. Openbaar bekend: ja. De updates komen via de gewone kanalen, schrijft een .NET-ontwikkelaar op GitHub. Een update op zondag. Zo erg is het dus.

    Ook de projecten met een eigen kopie van Brotli updaten. Het Ruby-gem brotli heeft sinds 0.9.1 de fix, de PHP-extensie brotli sinds 0.21.1. ClickHouse, libjxl, NanaZip en YDB hebben hem ook. Bij 7-Zip-zstd, DuckDB, Apache Arrow, WOFF2 en de UEFI-firmware EDK2 staat het nog open. Het lijstje komt van broccoli2shell.com, een onafhankelijke site die het lek naar een groente noemt. Beveiligingsonderzoeker Juliano Rizzo vindt Node2Shell namelijk een slechte naam: “I’m calling it Broccoli”, zo citeert de site. Dat is bijnaam nummer drie voor één lek, en de 2Shell-teller staat op 4. Groente telt niet als eten, besloot het crisusteam.

  18. Een nieuwe crisus: HTTP2Shell. Woensdag stond het nog als bijzin in ons PHP-verhaal: ook Node.js had security releases, met een lek in de Brotli-decoder. Die bijzin is gegroeid. Het lek, CVE-2026-111497, zit niet in Node.js maar in Brotli zelf, de compressie van Google. En Brotli zit overal. Ook in Python: requests, urllib3, httpx, aiohttp en Scrapy gebruiken het vanzelf zodra het pakket brotli of brotlicffi er is, schrijft Aikido. Dat pakket wordt ruim 82 miljoen keer per maand gedownload. Google geeft het lek een 9,2.

    Het werkt twee kanten op. Een kwaadwillende client kan een server aanvallen. En een kwaadwillende server elke client die gecomprimeerde antwoorden aanneemt. Codex Security van OpenAI vond het al in februari. De fix stond toen al in de code van Brotli. Niemand zag dat het een beveiligingslek was. Eerst heette het Node2Shell, nu HTTP2Shell. Een lek met een bijnaam is erger dan een lek zonder. Over een lek met twee bijnamen vergadert het crisusteam nog.

    Misbruik is nog niet gezien (The Hacker News, 22 oktober). Wel kregen onderzoekers het werkend tegen een gewone Node.js 24.22.0, volgens Imperva, meldt Aikido. De fixes zijn er sinds woensdag en donderdag, en Debian heeft sinds gisteravond DSA-6582-1. Het crisusniveau blijft 3: ernstig. Het crisusteam opende de spreadsheet en maakte een tabblad bij: HTTP2Shell, naast PHP2Shell en Log4Shell. Het eerste tabblad heet nog Millennium.

  19. PHP2Shell is afgesloten. De patch is uit, de sites zijn terug en de ergste drukte is voorbij. PHP zakt naar crisusniveau 2, en daarmee is het geen eigen crisus meer. Daarom heeft crisus.nl vanaf nu deze nieuwe voorpagina. Alles van die crisus, met alle updates, staat op crisus.nl/php. Eén ding blijft: de vervolgbug CVE-2026-115560 krijgt pas een fix in de volgende gewone release. Zet tot dan session.upload_progress.enabled = 0, volgens php.net.

    Nog wel even opletten. Volgens Mandiant werken sommige openbare exploits echt, tegen een standaardinstallatie met mod_php, niet tegen PHP-FPM, meldt The Register. Een geslaagde aanval is nog niet bevestigd, zegt de PHP Foundation. Draait u mod_php en heeft u nog niet gepatcht? Dan is dit uw laatste herinnering.

    Het crisusniveau staat op 3: ernstig, de status quo sinds 2001. Er is een oorlog, er komt wind en PHP heeft nog een staartje. Het crisusteam ruimt de pizzadozen op en zet de brom weer aan.

Wat is er aan de hand?

Wat is Brotli?
Een manier om gegevens kleiner te maken, net als zip en gzip. Jyrki Alakuijala en Zoltán Szabadka van Google bedachten het in 2013, eerst om webfonts kleiner te maken. Het is genoemd naar het Zwitserse broodje Brötli. Sinds 2016 is het een internetstandaard: RFC 7932.
Waarom zit het overal in?
Omdat het werkt. Een webpagina met Brotli is meestal kleiner dan met gzip, en dus sneller binnen. Sinds 2016 en 2017 kunnen alle grote browsers het. Webservers en CDN’s als Cloudflare en Amazon CloudFront sturen het mee, en een webfont in WOFF2 is altijd Brotli. Wie iets van internet haalt, krijgt dus vaak Brotli terug en moet het uitpakken. Daarom zit de decoder in Node.js (sinds versie 11.7), in de HTTP-clients van Python en in curl. Klein bestand, groot bereik.
Het lek
Een out-of-bounds write in de Brotli-decoder van Google: CVE-2026-111497, ook wel HTTP2Shell, eerst Node2Shell, en sinds kort ook Broccoli2Shell. Brotli is de compressie achter Content-Encoding: br. Kleiner dan gzip. Sinds deze week ook gevaarlijker.
Hoe werkt het?
De functie DecodeBlockTypeAndLength() geeft alleen ja of nee terug. Nee kan twee dingen betekenen: de invoer is kapot, of er moet nog meer invoer komen. De decoder kan die twee niet uit elkaar houden en gaat door met een ongeldige toestand. Dan schrijft hij buiten zijn eigen geheugen. De fix geeft kapotte invoer een eigen foutcode: -17.
Welke kant op?
Allebei. Een server die Brotli uitpakt, is kwetsbaar voor een kwaadwillende client. Een client die Brotli uitpakt, is kwetsbaar voor een kwaadwillende server. Dat is bijna elke HTTP-client: die vraagt er zelf om, met Accept-Encoding: br.
Ernst
CVSS v4.0: 9,2, van Google in het CVE-record. Node.js noemt het high. Ubuntu zegt medium. Het NCSC: kans op misbruik gemiddeld, schade groot. Vier partijen, vier meningen. Bij alle vier is patchen het antwoord.
Wat kan een aanvaller?
Met een gecomprimeerd bericht het geheugen beschadigen, gegevens lekken, het programma laten crashen en mogelijk eigen code uitvoeren.
Welke versies?
Brotli 1.0.3 tot en met 1.2.0. Elk programma met een eigen kopie van Brotli moet dus zelf updaten.
Wie zit erin?
Node.js, met een eigen kopie. De Python-pakketten brotli en brotlicffi, en via die pakketten requests, urllib3, httpx, aiohttp en Scrapy. Ook als uw code nergens import brotli zegt. Volgens Aikido ook Bun, Envoy en Istio. Volgens Microsoft ook .NET, PowerShell en Visual Studio. Volgens PHP ook de Windows-builds van PHP, via cURL. En elk project met een eigen kopie, van het Ruby-gem tot 7-Zip-zstd, zie broccoli2shell.com. Niet geraakt: Apache met mod_brotli en nginx, want die pakken standaard niets uit. Die comprimeren alleen.
Wie vond het?
Codex Security van OpenAI, volgens de advisory van Node.js, al in februari. Brotli repareerde de fout toen al, maar zag hem niet als beveiligingslek. Dus kwam er toen geen release. Wel nu.
Misbruik?
Ja. De Amerikaanse CISA zette het lek op 27 oktober op de KEV-lijst, de lijst van lekken die aantoonbaar worden misbruikt (alert). Ook het Italiaanse CSIRT meldt misbruik, schrijft Security.NL. Hoe en tegen wie, zegt CISA niet. Tot dan was het “nog niet gezien” (The Hacker News, 22 oktober; het NCSC op 23 oktober).
Ziet mijn scanner het?
Sinds kort. Op 23 oktober koppelden de databases het lek nog niet aan de Python-pakketten, aldus Aikido. Sinds 23 oktober 21:08 noemt GHSA-9v8h-qqgm-4m35 van GitHub ze wel. Dependabot zou ze nu dus moeten zien. Gebruikt u pip-audit of Safety? Kijk dan zelf.
Moet het eruit?
Bugsink, een foutentracker voor Sentry-berichten, denkt van wel. Klaas van Schelven noemt Brotli “in such a state of disrepair” en schrijft over de beheerders: “they’re not serious people”, in Bye Bye Brotli?. Bugsink krijgt een instelling om het uitpakken van Brotli uit te zetten, nog niet in een release. Sentry kreeg de vraag om Brotli te laten vallen. Die vraag staat nog open. Wat u niet uitpakt, kan u ook niet raken.
De patch
Uit sinds 21 oktober. Brotli 1.2.1, voor oudere lijnen 1.1.1 en 1.0.10. Node.js 26.12.1, 24.22.1 en 22.23.4. Node.js 20 of ouder? Daarvoor komt niets meer: einde levensduur sinds 30 april. Python: brotli 1.2.1 en brotlicffi 1.2.1.0. Bun: 1.4.4. Java: brotli4j 1.24.0. Sinds 25 oktober ook .NET, PowerShell en Visual Studio. Sinds 26 oktober de Windows-builds van PHP: 8.5.12-1, 8.4.27-1, 8.3.36-1 en 8.2.35-1.

Wat moet u doen?

Blijf binnen. Pak niets uit.

  1. Zoek uit waar u Brotli heeft. Ook op plekken waar u het niet verwacht. Kijk in elke virtualenv en elk container-image apart.
    node -v
    pip list 2>/dev/null | grep -iE '^brotli'
    dpkg -l | grep -i brotli        # Debian, Ubuntu
    rpm -qa | grep -i brotli        # Fedora, RHEL, openSUSE
  2. Node.js: update naar 26.12.1, 24.22.1 of 22.23.4. De officiële Docker-images node:24.22.1 en verder staan er sinds 22 oktober. Maak uw containers opnieuw aan, een herstart is niet genoeg. Nog op Node.js 20? Dan is dit een goed moment.
  3. Python: staat brotli of brotlicffi in de lijst? Werk het bij, en zet de nieuwe versie ook in uw lockfile.
    pip install --upgrade 'brotli>=1.2.1'           # als u brotli heeft
    pip install --upgrade 'brotlicffi>=1.2.1.0'     # als u brotlicffi heeft
  4. Het systeempakket: Debian 13 heeft 1.1.0-2+deb13u1, Debian 12 heeft 1.0.9-2+deb12u1. De Node.js van Debian gebruikt die systeembibliotheek. Updaten en daarna herstarten:
    sudo apt update
    sudo apt install --only-upgrade libbrotli1
    sudo needrestart -r l          # wat draait nog oude code?
  5. Kunt u nog niet updaten? Dan noemt Aikido drie noodmaatregelen. Een: haal brotli en brotlicffi weg. HTTP-clients vallen dan terug op gzip. Twee: weiger verzoeken met Content-Encoding: br al in de proxy. Drie: haal br uit Accept-Encoding én weiger Brotli-antwoorden vóór het uitpakken. Alleen de header aanpassen is niet genoeg: een kwaadwillende server stuurt toch Brotli.
  6. Klik niet op links in e-mails over dit lek. Wij mailen nooit. En als we het deden, dan met gzip.

Stand per platform, 10:45

De oorlog duurt voort

Rusland voert sinds 2014 oorlog tegen Oekraïne. Die oorlog is niet voorbij. Deze klokken lopen door tot hij dat wel is.

Sinds de bezetting van de Krim20 februari 2014De datum die de Oekraïense wet van 2015 aanhoudt. Ook op de Russische medaille “Voor de terugkeer van de Krim” staat 20 februari.

Sinds de oorlog in de Donbas12 april 2014Een gewapende eenheid onder leiding van de Rus Igor Girkin neemt Slovjansk in.

Sinds MH1717 juli 2014Een Russische Buk-raket haalt boven de Donbas vlucht MH17 van Amsterdam naar Kuala Lumpur neer. Alle 298 inzittenden komen om, onder wie 196 Nederlanders. In 2022 veroordeelt de Nederlandse rechter drie mannen voor moord en stelt vast dat Rusland de baas was over de strijders in de Donbas.

Sinds de volledige invasie24 februari 2022Net voor 05:00 Kyiv-tijd kondigt Poetin een “speciale militaire operatie” aan. Binnen enkele minuten begint de aanval.

Wilt u iets doen? Steun Oekraïne, bijvoorbeeld via Aid to Ukraine.

Op de radar

Vaste waarden

Bronnen

Deze pagina is een grap. De feiten hierboven zijn dat niet. Twijfelt u? Dan wint de bron.

Eerdere crisussen

Alles van vroeger, met de originele beelden en de 503-pagina’s, hangt in het Crisus-museum.