Cybersecurityonderzoekers hebben zes kwetsbaarheden in protobuf.js blootgelegd, een JavaScript- en TypeScript-implementatie van Protocol Buffers (Protobuf). Bij succesvolle exploitatie kunnen deze kwetsbaarheden leiden tot remote code execution (RCE) en denial-of-service (DoS) aanvallen op Node.js-applicaties.
Volgens securityonderzoeker Assaf Morag van Cyera kan in getroffen omgevingen een enkele kwaadaardige protobuf-schema, descriptor of speciaal vervaardigde payload al voldoende zijn om crashes, runtime-corruptie of zelfs code-uitvoering te veroorzaken. De kwetsbaarheden, die de codenaam Proto6 kregen, treffen Node.js-applicaties die protobuf.js gebruiken, waaronder Google Cloud client libraries, messaging frameworks zoals Baileys, en CI/CD-pijplijnen. Elke Node.js-service die Protobuf-data deserialiseert of code genereert uit schema's met protobuf.js, loopt waarschijnlijk risico.
De problemen ontstaan doordat de bibliotheek schema's en metadata standaard als vertrouwd beschouwt, zonder voldoende validatie. Dit kan het gedrag van applicaties beïnvloeden en leiden tot code-uitvoering. Morag benadrukt dat hoewel exploitatie specifieke voorwaarden vereist, deze steeds vaker voorkomen in data- en AI-ecosystemen waar data, schema's en configuratiebestanden routinematig worden uitgewisseld tussen services, repositories, cloudplatforms en externe integraties.
Een mogelijke aanvalsscenario is het injecteren van een kwaadaardig protobuf-schema om CI/CD-workflows te vergiftigen, waarbij build-credentials kunnen uitlekken (CVE-2026-44295), of het laten crashen van Node.js-services zoals WhatsApp-bots die met Baileys zijn gebouwd, door een speciaal vervaardigd bericht (CVE-2026-44292). De ernstigste kwetsbaarheid is CVE-2026-44291, die code-uitvoering mogelijk maakt wanneer een Node.js-applicatie input van een aanvaller accepteert. Securityonderzoeker Vladimir Tokarev legt uit dat deze input een prototype pollution-gadget bereikt, waarna protobuf.js type-namen via gewone property lookups oplost. Een vervuild Object.prototype kan zo een door de aanvaller gecontroleerde string als een geldig protobuf-primitive laten lijken. Protobuf.js voegt deze string vervolgens in een gegenereerde encoder- of decoderfunctie in en compileert deze met Function(), waardoor de aanvaller willekeurige JavaScript-code binnen het Node.js-proces kan uitvoeren.
De kwetsbare versies van protobuf.js zijn 7.5.5 en lager, en 8.0.0 tot en met 8.0.1, evenals protobufjs-cli versies 1.2.0 en lager, en 2.0.0 tot en met 2.0.1. Patches zijn beschikbaar in protobufjs 7.5.6 en 8.0.2, en protobufjs-cli 1.2.1 en 2.0.2. Gebruikers worden geadviseerd deze updates zo snel mogelijk toe te passen om zich te beschermen tegen mogelijke aanvallen.
Cyera waarschuwt dat omdat protobuf.js veel wordt gebruikt in databases, vector stores, inference pipelines, orkestratiesystemen, CI/CD-tools en cloud SDK's, succesvolle exploitatie grote impact kan hebben op gevoelige enterprise- en AI-workloads. Moderne software behandelt schema's, metadata en configuratiebestanden steeds vaker als vertrouwde inputs die het gedrag van systemen aansturen, wat de risico's vergroot.
Reacties
Geef een reactie
Vereiste velden zijn gemarkeerd met *