CRITICAL✓ PATCH🇬🇧 English

CVE-2023-36665

Prototype Pollution w bibliotece protobuf.js (protobufjs)

CVSS 9.8v3.1pub. 2023-07-05upd. 2024-11-21

Biblioteka protobuf.js w wersjach od 6.10.0 do 7.x przed 7.2.5 jest podatna na atak Prototype Pollution, umożliwiający atakującemu modyfikację prototypu globalnego obiektu Object.prototype. Ze względu na brak wymagań uwierzytelnienia i sieciowy wektor ataku, podatność stanowi poważne zagrożenie dla aplikacji Node.js przetwarzających niezaufane dane protobuf.

Pokaż oryginał (EN)

"protobuf.js (aka protobufjs) 6.10.0 through 7.x before 7.2.5 allows Prototype Pollution, a different vulnerability than CVE-2022-25878. A user-controlled protobuf message can be used by an attacker to pollute the prototype of Object.prototype by adding and overwriting its data and functions. Exploitation can involve: (1) using the function parse to parse protobuf messages on the fly, (2) loading .proto files by using load/loadSync functions, or (3) providing untrusted input to the functions ReflectionObject.setParsedOption and util.setProperty.

🤖 Analiza AI
Jak działa

Atakujący może dostarczyć spreparowaną wiadomość protobuf, której przetworzenie przez podatną bibliotekę prowadzi do zapisania dowolnych właściwości i funkcji w Object.prototype — globalnym prototypie wszystkich obiektów JavaScript. Exploitation może przebiegać trzema ścieżkami: (1) parsowanie wiadomości protobuf w locie za pomocą funkcji parse, (2) wczytywanie plików .proto przez funkcje load lub loadSync, (3) przekazanie niezaufanych danych do funkcji ReflectionObject.setParsedOption lub util.setProperty. Zmodyfikowany prototyp może następnie wpłynąć na zachowanie całej aplikacji, ponieważ każdy obiekt JavaScript dziedziczy właściwości z Object.prototype.

Skutki

Atakujący może przejąć kontrolę nad logiką aplikacji poprzez nadpisanie wbudowanych właściwości i metod obiektów JavaScript, co w praktyce może prowadzić do ominięcia mechanizmów bezpieczeństwa, wykonania arbitralnego kodu (RCE) lub naruszenia poufności i integralności przetwarzanych danych.

Mitygacja

Należy zaktualizować bibliotekę protobufjs do wersji 7.2.5 lub nowszej. Poprawka została wprowadzona w wersji 7.2.4 (commit e66379f). Należy zastosować patche dostępne u producenta zgodnie z referencjami — w szczególności wydaniem protobufjs-v7.2.4 opublikowanym na GitHub.

Kogo dotyczy

protobuf.js (protobufjs) w wersjach od 6.10.0 do 7.x przed 7.2.5

Uwagi

Podatność jest odrębna od wcześniej zgłoszonej CVE-2022-25878, która dotyczyła tej samej biblioteki i również opisywała Prototype Pollution. Poprawka jest dostępna jako open-source w repozytorium GitHub projektu.

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
  • Protobufjs Project Protobufjs

    APP
    Protobufjs Project
    6.10.0 – 7.2.5 (bez)
🟢
PATCH DOSTĘPNY
Aktualizacja od producenta gotowa. Wdrożenie w ramach standardowego cyklu.
CWE
Referencje

Powiązane podatności

CVE-2026-41242CRITICAL9.4PL ✓ten sam produkt

Wstrzykiwanie kodu w protobuf.js podczas dekodowania definicji

CVE-2026-48712HIGH7.5ten sam produkt

protobufjs compiles protobuf definitions into JavaScript (JS) functions. Prior to 7.6.1 and 8.4.1, protobufjs ...

CVE-2026-44290HIGH7.5ten sam produkt

protobufjs compiles protobuf definitions into JavaScript (JS) functions. Prior to 7.5.6 and 8.0.2, protobufjs ...

CVE-2026-44289HIGH7.5ten sam produkt

protobufjs compiles protobuf definitions into JavaScript (JS) functions. Prior to 7.5.6 and 8.0.2, protobufjs ...

CVE-2026-44291HIGH8.1ten sam produkt

protobufjs compiles protobuf definitions into JavaScript (JS) functions. Prior to 7.5.6 and 8.0.2, protobufjs ...