CVE-2026-61824: Defuddle: XSS via unescaped attribute interpolation in site extractors
Summary
An Improper Neutralization of Input During Web Page Generation issue in the site extractor component allows an attacker-controlled attribute value to be injected into output HTML without escaping. An attacker who crafts a malicious HTML page or controls content on a matching domain can execute arbitrary scripts when a victim processes the page, resulting in Cross-Site Scripting (XSS). This affects defuddle through 0.19.0 and has been patched in version 0.19.1.
Impact
This vulnerability allows for Cross-Site Scripting (XSS) execution without needing to compromise external websites. Affected consumers include: - Obsidian Web Clipper, - web services serving the parsed output directly as HTML, and - any downstream application rendering the unsanitized HTML results
Patch This issue has been patched in defuddle version 0.19.1. Users are encouraged to update to the latest release.
Other sources
Defuddle cleans up HTML pages. Prior to 0.19.1, site extractors interpolate page-derived image alt and src values, og:image values, and video descriptions into HTML strings without context-appropriate escaping, and buildExtractorResponse() returns this contentHtml without the main pipeline's DOM-based sanitization. The affected paths include src/extractors/x-article.ts, src/extractors/substack.ts, and src/extractors/youtube.ts. A malicious page or attacker-controlled content on a matching domain can inject event-handler attributes or javascript URLs that execute when a victim or downstream application renders the extracted HTML. This issue is fixed in version 0.19.1.
— MITRE
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
npm/defuddleto a version that resolves this vulnerability.Fixed in 0.19.1 - Upgrade
Upgrade
defuddleto a version that resolves this vulnerability.Fixed in 0.19.1
Event History
Frequently Asked Questions
Who is exposed to exploitation?
Applications that use Defuddle versions before 0.19.1 and render contentHtml returned by affected site extractors are exposed. The relevant extractors are x-article, substack, and youtube, particularly when processing malicious pages or attacker-controlled content on domains matched by those extractors.
What does an attacker need to exploit this issue?
An attacker needs to control page-derived values such as image alt text, image sources, og:image values, or video descriptions on content processed by an affected extractor. They also need a victim or downstream application to render the resulting extracted HTML.
Are default sanitization protections sufficient?
No. The affected extractor response path returns contentHtml without the main pipeline's DOM-based sanitization, so rendering that output can allow injected event-handler attributes or javascript URLs to execute.
How can I remediate the issue?
Upgrade Defuddle to version 0.19.1, which fixes the issue. Until upgrading, avoid rendering contentHtml from the affected extractor paths without context-appropriate sanitization.