CVE-2026-58487
Official description Straight from the sourceThe vendor's or NVD's own wording, published unedited. Authoritative, but often terse — it says what broke, rarely what to do.
NVD · uneditedHedgeDoc is an open source, real-time, collaborative, markdown notes application. Prior to version 1.11.0, due to unsafe handling of the local-part of registered email addresses, HedgeDoc was vulnerable to stored HTML Injection through its publish and slide views. An attacker could register a specially crafted email address and inject arbitrary HTML into pages viewed by other users. HedgeDoc accepted RFC 5321 quoted-string local-parts in email addresses during registration. The local-part was then reused as the user's display name without escaping and rendered into HTML in multiple places, including publish and slide views as well as the collaborative editor. An attacker could break out of an HTML attribute and inject arbitrary markup into the page. While the deployed Content-Security-Policy prevented straightforward inline JavaScript execution, the injected HTML was still sufficient to alter page content and embed attacker-controlled resources such as cross-origin iframes. This issue was fixed in version 1.11.0.
Technical summary Written by usOur analysis, written from the advisory, the CVSS vector and the affected-version data. It adds context the advisory leaves out, and never invents facts that are not in the source.
dbcve analysis · high confidenceHedgeDoc prior to 1.11.0 had a stored HTML injection vulnerability where the local-part of email addresses (specifically RFC 5321 quoted-string local-parts) was not escaped when reused as a user's display name. This display name rendered unescaped into HTML across publish views, slide views, and the collaborative editor, allowing attackers to break out of HTML attributes and inject arbitrary markup including cross-origin iframes.
Verify against the referenced sources before acting — the references below are authoritative for this CVE, this summary is not.
CVSS breakdown How the score is builtThe industry scoring standard. It rates how the flaw is reached, what it takes to exploit, and what an attacker gains — the score is derived from those, not the other way round.
From the vector- Attack vector
- Network
- Complexity
- Low
- Privileges
- Low
- Authentication
- X
- User interaction
- P
- Scope
- X
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:P/VC:N/VI:L/VA:N/SC:N/SI:L/SA:N/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
Am I affected? How to checkSteps we derive from the advisory and the affected-version data, so you can decide whether this CVE reaches your setup. They are a guide, not a scan — your own configuration is the authority.
dbcve checksWork through these to decide whether this CVE applies to you.
-
Identify HedgeDoc installation versionCheck the installed HedgeDoc version by reviewing package.json, checking the running container image tag, or querying the API endpoint /api/v2/status if availableAffected if The installed version is prior to 1.11.0 (e.g., 1.10.x, 1.9.x, 1.8.x, or any 1.x release below 1.11.0)
-
Identify users with email-based display namesQuery the HedgeDoc database or user configuration to identify user accounts where the display name is derived from or matches the local-part of their email address (the portion before the @ symbol)Affected if Any user account uses an email local-part as their display name, especially if that local-part contains special characters like quotes, angle brackets, or script-like content
-
Review published notes accessible to unauthenticated usersInspect the publish view functionality by accessing a publicly shared note and examining the rendered HTML source for the author display nameAffected if Published notes render user display names without HTML escaping of email local-part characters
-
Review slide view renderingAccess any note using the slide view feature and inspect the rendered HTML for the author attributionAffected if Slide presentations display user display names unescaped, allowing HTML injection
-
Check collaborative editor viewOpen the collaborative editor with multiple users and inspect how user names appear in the UIAffected if The collaborative editor renders display names from email local-parts without proper HTML escaping
You are affected if HedgeDoc version is below 1.11.0 AND any user account uses an email local-part as their display name, as the vulnerability allows stored HTML injection through unescaped display names in publish, slide, and editor views.
Generated from the published advisory. Verify against your own configuration.
Remediation Closing itWhat it takes to close this. Where a vendor fix exists we point at it; where none exists we say so plainly, and can build one. Effort estimates are scoped from the advisory, not from your codebase.
dbcve · scopedUpgrade to HedgeDoc version 1.11.0 or later which implements proper HTML escaping of the email local-part before rendering it as the user's display name.
HedgeDoc 1.11.0
- 1. Backup your current HedgeDoc instance configuration and database
- 2. Check the HedgeDoc 1.11.0 release notes for any breaking changes or migration requirements
- 3. Upgrade your HedgeDoc installation to version 1.11.0
- 4. Verify the upgrade was successful by checking the application version
- 5. Test the email registration and display name rendering in publish and slide views to confirm the vulnerability is patched
Generated from the published advisory — verify against the referenced sources before acting.
- Consultation2.0 h
- Implementation3.0 h
- Testing2.0 h
- Review / QA1.0 h
An estimate, not a bill — we confirm scope with you before any work starts. Need it this week? Rush from $2,272.
Scan for this in your stack
Free · runs locallyCheck whether your project pulls in CVE-2026-58487 — or any other known-vulnerable package — straight from your lock files. Free and open source; it runs locally and uploads nothing.
References Go to the primary sourcePrimary sources — vendor advisories, patches and trackers. Where our summary and a reference disagree, the reference wins.
Primary sourcesPractitioner notes
ContributedPeer-ranked notes from engineers who’ve handled CVE-2026-58487 in production — separate from our analysis above.
The advisory tells you what broke. It rarely tells you what actually worked. If you’ve dealt with this one, that detail is what the next engineer is searching for.
- The version that genuinely resolved it — not the one the vendor claimed
- A config change or rule that shut the vector down
- A gotcha in the upgrade path that cost you an afternoon
No notes yet
Be the first to add a field note for this CVE — a mitigation you’ve verified, a version caveat, or a link to a working fix. Sign in above to contribute.
A place for practitioners to share what actually worked: a mitigation you’ve tested, a configuration change, a version- or environment-specific caveat, or a link to a verified patch. The most useful notes rise to the top as peers upvote them, so the signal stays high.
- Verified mitigations, workarounds, and config changes
- Version or environment caveats, and links to real fixes
- No weaponised exploit code, or anything meant to cause harm
- No spam, self-promotion, credentials, or personal data