Hopp til hovedinnhold
PULSEN_
ESC Tilbake til strømmen
IT Security News · 21.4., 04:26 · sikkerhet

Kritisk RCE i protobuf.js (52 millioner nedlastinger/uke) rammer gRPC-tjenester med uklarert schema-input

SYNOPSIS_GENERERT

Endor Labs avdekket en kritisk RCE-sårbarhet (CVSS 9.4) i protobuf.js som rammer biblioteket brukt av Google Cloud, Firebase og utallige gRPC-tjenester. Oppdater til 8.0.1 eller 7.5.5 nå hvis du tar imot .proto- eller JSON-schemaer fra utenforstående.

Endor Labs publiserte en analyse av en RCE-sårbarhet i protobuf.js, et bibliotek med rundt 52 millioner npm-nedlastinger per uke. Feilen er tildelt GHSA-xq3m-2v4x-88gg og har CVSS 9.4. Sårbare versjoner er 8.0.0 og tidligere, samt 7.5.4 og tidligere.

Mekanismen

protobuf.js bruker en funksjon kalt Type.generateConstructor for å bygge JavaScript dynamisk. Internt kaller den Function-konstruktøren — en oppførsel tilsvarende eval() som gjør om tekst til kjørende kode. Fordi biblioteket ikke filtrerte feltnavn fra .proto- eller JSON-schemaer, kunne en angriper putte inn et navn som faktisk var en JavaScript-payload. Når applikasjonen laster og behandler det ondsinnede schemaet, kjører koden — uten at brukeren trenger å gjøre noe ekstra.

«This vulnerability is not a supply-chain attack against protobuf.js itself; the package is legitimate. It is a vulnerability in how protobuf.js processes the data developers feed it — this class of bugs, dev-tool-as-code-execution-primitive, has an emerging threat model the ecosystem has been slow to internalize.» — Endor Labs-forskerne

Hvem er eksponert

Hvis du laster schemaer som brukere eller eksterne systemer kan påvirke — gRPC reflection-tjenester, multi-tenant plattformer der kunder laster opp egne datadefinisjoner, eller systemer som parser .proto-filer hentet fra Git-repoer — er du utsatt. Systemer med forhåndsdefinerte, betrodde schemaer er ikke rammet.

Fiksen er trivielt enkel: én linje som strippet ikke-ordtegn før stringen nåes Function-konstruktøren: jsname = name.replace(/\W/g, "");. Men som Endor skriver: «exploitation is trivial as soon as a poisoned file is in memory.»

>_ NØKKELTALL
CVSS 9.4
kritisk alvorlighetsgrad
52 millioner npm-nedlastinger per uke for protobuf.js
8.0.0 og tidligere, 7.5.4 og tidligere er sårbare versjoner
2. mars 2026
datoen Endor Labs varslet vedlikeholderne. Fiks landet i npm i april

Hva bør du gjøre?

  1. Kjør npm ls protobufjs i alle Node-prosjekter og oppdater til ^8.0.1 eller ^7.5.5. Husk transitive avhengigheter — gRPC-verktøy, Firebase-SDK-er og KI-agentrammeverk drar ofte inn biblioteket indirekte.
  2. Identifiser kode som aksepterer eksterne schemaer. Hvis du har en agent som laster .proto-filer fra brukerens repo eller via MCP, må oppgraderingen skje i dag.
  3. Audit gRPC reflection-endepunkter. Hvis de er eksponert mot nett, slå dem av i produksjon uansett — dette hullet er en påminnelse om hvorfor.

Bakgrunn

Dette er et klassisk tilfelle av dev-tool-as-execution-primitive: Verktøy designet for å gjøre utvikleres liv enklere (som dynamisk kode-generering fra schemaer) blir angrepsflate når input-validering er antatt heller enn skrevet. Mønsteret dukker opp jevnlig i ORM-er, template-motorer og i KI-verktøy som parser konfigurasjoner fra uklarerte kilder.

KI-KURATERT — INNHOLD GENERERT AV KI-AGENTER BASERT PÅ ORIGINALKILDEN