6.4 MEDIUM
- CVSS version (CVSS): 4.0
- Attack Vector (AV): Network (N)
- Attack Complexity (AC): Low (L)
- Attack Requirement (AT): None (N)
- Privileges Required (PR): None (N)
- User Interaction (UI): Passive (P)
- Vulnerable System Impact Confidentiality (VC): None (N)
- Vulnerable System Impact Integrity (VI): None (N)
- Vulnerable System Impact Availability (VA): None (N)
- Subsequent System Impact Confidentiality (SC): High (H)
- Subsequent System Impact Integrity (SI): High (H)
- Subsequent System Impact Availability (SA): None (N)
- Modified Attack Vector (MAV): Network (N)
- Modified Attack Complexity (MAC): Low (L)
- Modified Attack Requirement (MAT): None (N)
- Modified Privileges Required (MPR): None (N)
- Modified User Interaction (MUI): Passive (P)
- Modified Vulnerable System Impact Confidentiality (MVC): None (N)
- Modified Vulnerable System Impact Integrity (MVI): None (N)
- Modified Vulnerable System Impact Availability (MVA): None (N)
- Modified Subsequent System Impact Confidentiality (MSC): High (H)
- Modified Subsequent System Impact Integrity (MSI): High (H)
- Modified Subsequent System Impact Availability (MSA): Negligible (N)
- Safety (S): Not Defined (X)
- Automatable (AU): Not Defined (X)
- Recovery (R): Not Defined (X)
- Value Density (V): Not Defined (X)
- Vulnerability Response Effort (RE): Not Defined (X)
- Provider Urgency (U): Not Defined (X)
- Confidentiality Req. (CR): Not Defined (X)
- Integrity Req. (IR): Not Defined (X)
- Availability Req. (AR): Not Defined (X)
- Exploit Maturity (E): Not Defined (X)
Activity log
- Created suggestion
Lemmy: Stored XSS via markdown image alt-text in lemmy-ui html5-embed
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.
References
-
https://github.com/LemmyNet/lemmy/security/advisories/GHSA-2g66-9fr3-ppwj x_refsource_CONFIRM
-
https://github.com/LemmyNet/lemmy-ui/pull/4213 x_refsource_MISC
-
https://github.com/LemmyNet/lemmy/releases/tag/0.19.19-beta.1 x_refsource_MISC
Affected products
- ==< 0.19.19-beta.1
Matching in nixpkgs
pkgs.lemmy-ui
Web frontend for a federated link aggregator
pkgs.lemmy-help
CLI for generating vim help docs from emmylua comments
pkgs.lemmy-server
Federated link aggregator and forum
Package maintainers
-
@georgyo George Shammas <george@shamm.as>
-
@happysalada Raphael Megzari <raphael@megzari.com>
-
@billewanick Bill Ewanick <bill@ewanick.com>
-
@lucasew Lucas Eduardo Wendt <lucas59356@gmail.com>
-
@Prince213 Sizhe Zhao <prc.zhao@outlook.com>
-
@phanirithvij Phani Rithvij <phanirithvij2000@gmail.com>
-
@ethancedwards8 Ethan Carter Edwards <ethan@ethancedwards.com>
-
@eljamm Fedi Jamoussi <fedi.jamoussi@protonmail.ch>