CRITICAL🇬🇧 English

CVE-2025-57347

Prototype pollution w pakiecie dagre-d3-es (Node.js) — RCE i DoS

CVSS 9.8v3.1pub. 2025-09-24upd. 2025-10-17

Pakiet Node.js 'dagre-d3-es' w wersji 7.0.9 zawiera podatność typu prototype pollution w funkcji addConflict modułu 'bk', wynikającą z braku walidacji danych wejściowych przy przypisywaniu właściwości. Podatność umożliwia nieautoryzowaną modyfikację łańcucha prototypów JavaScript, co może prowadzić do odmowy usługi (DoS) lub wykonania arbitralnego kodu.

Pokaż oryginał (EN)

A vulnerability exists in the 'dagre-d3-es' Node.js package version 7.0.9, specifically within the 'bk' module's addConflict function, which fails to properly sanitize user-supplied input during property assignment operations. This flaw allows attackers to exploit prototype pollution vulnerabilities by injecting malicious input values (e.g., "__proto__"), enabling unauthorized modification of the JavaScript Object prototype chain. Successful exploitation could lead to denial of service conditions, unexpected application behavior, or potential execution of arbitrary code in contexts where polluted properties are later accessed or executed. The issue affects versions prior to 7.0.11 and remains unpatched at the time of disclosure.

🤖 Analiza AI
Jak działa

Atakujący dostarcza specjalnie spreparowane dane wejściowe zawierające zarezerwowane nazwy właściwości, takie jak '__proto__', które trafiają do funkcji addConflict bez odpowiedniego oczyszczenia. Funkcja przypisuje te wartości bezpośrednio do właściwości obiektu, co skutkuje modyfikacją globalnego prototypu JavaScript Object. Po zatruciu prototypu wszystkie obiekty w aplikacji dziedziczą zmienione właściwości, co może powodować nieoczekiwane zachowanie aplikacji, błędy przetwarzania lub wykonanie wstrzykniętego kodu w miejscach, gdzie zatrute właściwości są później odczytywane bądź wywoływane.

Skutki

Atakujący może doprowadzić do odmowy usługi (DoS), wywołać nieoczekiwane zachowanie aplikacji lub — w sprzyjających warunkach — wykonać arbitralny kod na serwerze. Podatność jest dostępna zdalnie, bez uwierzytelnienia i bez interakcji użytkownika (CVSS 9.8).

Mitygacja

Należy zaktualizować pakiet 'dagre-d3-es' do wersji 7.0.11 lub nowszej. Zgodnie z opisem podatność pozostawała niezałatana w momencie ujawnienia — należy śledzić repozytorium producenta (https://github.com/tbo47/dagre-es/issues/52) i zastosować patch niezwłocznie po jego dostępności. Jako obejście tymczasowe należy ograniczyć możliwość przekazywania niezaufanych danych wejściowych do komponentów korzystających z modułu 'bk'.

Kogo dotyczy

Pakiet npm 'dagre-d3-es' (Tbo47) w wersjach wcześniejszych niż 7.0.11; potwierdzono podatność w wersji 7.0.9.

Uwagi

Publiczny proof-of-concept (PoC) jest dostępny w repozytorium GitHub pod adresem https://github.com/VulnSageAgent/PoCs/tree/main/JavaScript/prototype-pollution/CVE-2025-57347, co znacząco obniża próg wejścia dla potencjalnych atakujących.

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
  • Tbo47 Dagre D3 Es

    APP
    Tbo47
    7.0.9
🔵
ZWERYFIKUJ U PRODUCENTA
Brak jednoznacznych danych o patchu. Sprawdź referencje od producenta.
Tagi
DoS
CWE
Referencje