HIGH🇬🇧 English

CVE-2026-58486

HedgeDoc: YAML alias bomb w frontmatter notatki — atak DoS

CVSS 8.3v4.0pub. 2026-07-13

HedgeDoc przed wersją 1.11.0 był podatny na atak typu YAML alias bomb, polegający na umieszczeniu złośliwego payloadu w nagłówku frontmatter notatki. Exploit blokował pętlę zdarzeń Node.js nawet na ~235 sekund, uniemożliwiając obsługę innych żądań i prowadząc do niedostępności instancji.

Pokaż oryginał (EN)

HedgeDoc is an open source, real-time, collaborative, markdown notes application. Prior to version 1.11.0, HedgeDoc was vulnerable to a YAML alias bomb due to unsafe processing of the note frontmatter. HedgeDoc parsed frontmatter with js-yaml.load (js-yaml v3) via @hedgedoc/meta-marked, which resolved YAML anchor aliases. A compact malicious payload could therefore expand into a huge object structure, consuming excessive CPU. This expansion ran on every request to the publish view (/s/<shortid>) and, when placed under the opengraph key, the editor view (/<noteId>). A ten-level alias bomb could block the single Node.js event loop for roughly 235 seconds per request, causing concurrent requests to hang or drop and rendering the instance unavailable (DoS). Because the note was stored in the database, the impact survived process restarts until the note was removed. toobusy-js did not reliably mitigate the worst cases, as the event loop was saturated before the middleware could respond. This issue was fixed in version 1.11.0.

🤖 Analiza AI
Jak działa

HedgeDoc używał funkcji js-yaml.load (biblioteka js-yaml v3) za pośrednictwem @hedgedoc/meta-marked do parsowania frontmatter notatek. Funkcja ta rozwiązywała aliasy kotwic YAML (YAML anchors/aliases), co pozwalało na stworzenie kompaktowego, ale złośliwego payloadu — tzw. alias bomb — który po rozwinięciu generował ogromną strukturę obiektową. Przetwarzanie takiego payloadu następowało przy każdym żądaniu do widoku publikacji (/s/<shortid>) oraz — gdy payload umieszczono pod kluczem opengraph — do widoku edytora (/<noteId>). Ponieważ notatka była przechowywana w bazie danych, skutki ataku utrzymywały się po restarcie procesu aż do usunięcia notatki. Mechanizm ochronny toobusy-js nie łagodził skutecznie najgorszych przypadków, gdyż pętla zdarzeń była nasycana zanim middleware zdążył zareagować.

Skutki

Atakujący z dostępem do tworzenia notatek może zablokować pętlę zdarzeń Node.js na dziesiątki minut per żądanie, powodując zawieszenie lub odrzucenie wszystkich współbieżnych żądań i całkowitą niedostępność instancji HedgeDoc (DoS). Efekt ataku jest trwały — utrzymuje się przez kolejne restarty serwisu do momentu usunięcia złośliwej notatki z bazy danych.

Mitygacja

Należy zaktualizować HedgeDoc do wersji 1.11.0 lub nowszej, w której problem został naprawiony. Szczegóły poprawki dostępne są w repozytorium projektu (commit c489497e451887bfe400434c5a010940051e9890) oraz w security advisory GHSA-qj78-mjch-wwrv.

Kogo dotyczy

HedgeDoc w wersjach przed 1.11.0

Uwagi

Podatność została naprawiona w wersji 1.11.0. Złośliwa notatka dziesięciopoziomowego alias bomb blokuje pętlę zdarzeń Node.js na około 235 sekund per żądanie według opisu producenta.

CVSS Vector
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:H/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
🔵
ZWERYFIKUJ U PRODUCENTA
Brak jednoznacznych danych o patchu. Sprawdź referencje od producenta.
CWE
Referencje