Skip to main content

HedgeDoc CVE-2026-58486

HIGH
Uncontrolled Resource Consumption (CWE-400)
2026-07-13 GitHub_M
8.3
CVSS 4.0 · Vendor: GitHub_M
Share

Severity by source

Vendor (GitHub_M) PRIMARY
8.3 HIGH
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
vuln.today AI
6.5 MEDIUM

Network-reachable, reliably triggerable DoS needing only note-creation privilege (PR:L) and no user interaction; availability-only impact so C:N/I:N/A:H with scope unchanged.

3.1 AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
4.0 AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:H

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
X

Lifecycle Timeline

3
Source Code Evidence Fetched
Jul 13, 2026 - 22:46 vuln.today
Analysis Generated
Jul 13, 2026 - 22:46 vuln.today
CVE Published
Jul 13, 2026 - 22:12 cve.org
HIGH 8.3

DescriptionCVE.org

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.

AnalysisAI

Denial of service in HedgeDoc before 1.11.0 lets a user who can store a note crash the instance by embedding a YAML "alias bomb" in the note frontmatter. Because HedgeDoc parsed frontmatter with the unsafe js-yaml v3 load (via @hedgedoc/meta-marked) and resolved anchor aliases, a compact ten-level payload expands into a massive object that blocks the single Node.js event loop for roughly 235 seconds on every request to the publish view (/s/<shortid>) or, under the opengraph key, the editor view (/<noteId>). No public exploit has been identified at time of analysis and the flaw is not in CISA KEV, but the stored payload persists in the database and re-triggers after process restarts, making outages durable until the note is deleted.

Technical ContextAI

The root cause is CWE-400 (uncontrolled resource consumption) arising from unsafe YAML deserialization. HedgeDoc extracts note metadata by feeding the frontmatter block to js-yaml v3's load() through the @hedgedoc/meta-marked wrapper. js-yaml supports YAML anchors (&x) and aliases (*x); when aliases reference other aliases across many levels, each level multiplies the referenced structure, so a small text payload materializes into an exponentially large in-memory object graph. Building and holding that graph saturates CPU and monopolizes the single-threaded Node.js event loop. The remediating commit (c489497) confirms the mechanism: js-yaml is upgraded to v4 and, critically, parsing is wrapped in a custom splitFrontmatter routine plus constrain-object with maxDepth:4 and onCycle:'omit' to bound the resulting structure. The affected package is HedgeDoc (cpe:2.3:a:hedgedoc:hedgedoc), a Node.js/Express real-time collaborative markdown editor.

RemediationAI

Vendor-released patch: 1.11.0 - upgrade all HedgeDoc instances to 1.11.0 or later, which replaces js-yaml v3 with v4 and constrains parsed frontmatter via constrain-object (maxDepth:4, onCycle:'omit'), per commit c489497 and advisory GHSA-qj78-mjch-wwrv. If you cannot upgrade immediately, reduce exposure by restricting who can create or store notes (for example, tighten the anonymous/freeURL permission level so only trusted authenticated users can author notes), since exploitation requires a stored note; this trades off open or anonymous usage. You can also place the instance behind a reverse proxy that rate-limits and enforces short request timeouts on /s/<shortid> and /<noteId> so a single blocking request is cut off sooner, and audit existing stored notes for oversized or anchor/alias-laden frontmatter and delete offending notes (necessary because the payload persists across restarts). Note that toobusy-js is not a reliable control here, as the event loop saturates before the middleware can respond.

CVE-2024-41713 CRITICAL POC
9.1 Oct 21

A vulnerability in the NuPoint Unified Messaging (NPM) component of Mitel MiCollab through 9.8 SP1 FP2 (9.8.1.201) could

CVE-2024-55591 CRITICAL POC
9.8 Jan 14

FortiOS and FortiProxy contain an authentication bypass via the Node.js websocket module allowing unauthenticated remote

CVE-2023-44487 HIGH POC
7.5 Oct 10

Denial of service against HTTP/2 server implementations allows remote unauthenticated attackers to exhaust server resour

CVE-2014-7205 CRITICAL POC
10.0 Oct 08

Eval injection vulnerability in the internals.batch function in lib/batch.js in the bassmaster plugin before 1.5.2 for t

CVE-2025-59528 CRITICAL POC
10.0 Sep 22

Flowise version 3.0.5 contains a remote code execution vulnerability in the CustomMCP node. The mcpServerConfig paramete

CVE-2017-14849 HIGH POC
7.5 Sep 28

Node.js 8.5.0 before 8.6.0 allows remote attackers to access unintended files, because a change to ".." handling was inc

CVE-2017-5941 CRITICAL POC
9.8 Feb 09

An issue was discovered in the node-serialize package 0.0.4 for Node.js. Rated critical severity (CVSS 9.8), this vulner

CVE-2014-0224 HIGH POC
7.4 Jun 05

OpenSSL before 0.9.8za, 1.0.0 before 1.0.0m, and 1.0.1 before 1.0.1h does not properly restrict processing of ChangeCiph

CVE-2014-3744 HIGH POC
7.5 Oct 23

Directory traversal vulnerability in the st module before 0.2.5 for Node.js allows remote attackers to read arbitrary fi

CVE-2014-9566 HIGH POC
7.5 Mar 10

Multiple SQL injection vulnerabilities in the Manage Accounts page in the AccountManagement.asmx service in the Solarwin

CVE-2013-4660 MEDIUM POC
6.8 Jun 28

The JS-YAML module before 2.0.5 for Node.js parses input without properly considering the unsafe !!js/function tag, whic

CVE-2016-2107 MEDIUM POC
5.9 May 05

The AES-NI implementation in OpenSSL before 1.0.1t and 1.0.2 before 1.0.2h does not consider memory allocation during a

Share

CVE-2026-58486 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy