Node.js heeft een patch uitgebracht voor een ernstige bug die het mogelijk maakte op afstand code uit te voeren. De kwetsbaarheid zat in compressielibrary Brotli. Het Nationaal Cyber Security Centrum (NCSC) schat de kans op misbruik niet heel hoog in, maar áls de bug wordt uitgebuit, kan de schade ernstig zijn.
De bug wordt ook wel Node2Shell genoemd door Aikido, dat de kwetsbaarheid als eerste ontdekte en dat bij Node.js aandroeg. De bug wordt getrackt onder CVE-2026-111497. De kwetsbaarheid stelt een aanvaller in staat om op afstand zonder authenticatie een bufferoverflow te veroorzaken. Daardoor is het mogelijk om informatie uit het geheugen te achterhalen, een dienst geforceerd te stoppen en in ernstige gevallen zelfs code uit te voeren op een systeem. Andere beveiligingsonderzoekers hebben inmiddels een proof-of-concept van de bug getoond.
De bug zit specifiek in de Brotli-decoder. Dat is een compressiebibliotheek van Google, waarvan Node.js een eigen versie gebruikt. De kwetsbare library zit in versies 22.x, 24.x en 26.x van Node.js. In versies 22.23.4, 24.11.1 en 26.12.1 zijn de library's gepatcht. Versies 20.x, 23.x en 25.x van Node.js zijn al langer end-of-life en krijgen geen updates meer.
Inmiddels waarschuwt ook het Nederlandse Nationaal Cyber Security Centrum voor de bug. "Het Nationaal Cyber Security Centrum (NCSC) beoordeelt de kans op misbruik als 'gemiddeld', maar de mogelijke schade als 'groot'. Het advies is om de nieuwste beveiligingsupdates zo snel mogelijk te installeren", schrijft de instantie.
:strip_exif()/i/2008317348.jpeg?f=imagenormal)
:strip_exif()/u/2320500/crop6874151644ec6_cropped.webp?f=community)
:strip_icc():strip_exif()/u/594850/crop5798afe8aa5a0_cropped.jpeg?f=community)
:strip_exif()/u/2172/crop57acf4ac04e70.gif?f=community)
:strip_exif()/u/211274/bestabstractwallpapers5.gif?f=community)
/u/403394/crop6ab39fc6787bd_cropped.png?f=community)
:strip_icc():strip_exif()/u/116742/riqya.jpg?f=community)
/u/649844/crop5f804331d9657_cropped.png?f=community)
/u/1751860/crop664b8774a658d_cropped.png?f=community)
/u/379725/helloworld.png?f=community)
:strip_icc():strip_exif()/u/216153/crop6006fe7e77041_cropped.jpeg?f=community)