CVE-2026-30830

Defuddle: XSS via unescaped string interpolation in _findContentBySchemaText image tag

Published Mar 7, 2026 CVSS 4.0 · 2.1 Low EPSS < 1% KEV · Not listed
Description
Defuddle cleans up HTML pages. Prior to version 0.9.0, the _findContentBySchemaText method in src/defuddle.ts interpolates image src and alt attributes directly into an HTML string without escaping. An attacker can use a " in the alt attribute to break out of the attribute context and inject event handler. This issue has been patched in version 0.9.0.

Analysis

AI-generated

Technical impact

Defuddle 0.x users are exposed to reflected cross‑site scripting when the _findContentBySchemaText method interpolates image src and alt attributes directly into an HTML string. Because the alt attribute is not escaped, an attacker can insert a double quote, break out of the attribute context, and inject an event handler that runs client‑side JavaScript. The weakness is a classic unescaped user input defect (CWE‑79). An affected user who views the crafted HTML will have arbitrary script executed in their browser, leading to theft of credentials, session hijacking, or page defacement.

Affected Systems

The vendor kepano provides Defuddle. All releases prior to 0.9.0 contain the flaw; the patch is available in version 0.9.0 and later.

Risk and Exploitability

The CVSS score of 2.1 indicates low severity, and the EPSS score of less than 1 % suggests a low probability of exploitation. Defuddle is not registered in CISA’s known‑exploited list. Exploitation requires an attacker to supply or modify data that will be rendered by Defuddle into a user’s browser; no authentication or privileged access is required. The attack vector is client‑side via crafted image tags, making it possible for a malicious page or email attachment to trigger the flaw.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade Defuddle to version 0.9.0 or later to apply the vendor patch.
  • Sanitize or escape any image alt attributes or other user‑supplied data that will be embedded in HTML by _findContentBySchemaText before rendering.
  • Enable a browser‑side Content Security Policy or implement web‑filtering to block inline scripts and monitor for anomalous XSS payloads.

Generated by OpenCVE AI on April 17, 2026 at 12:13 UTC.

Tracking

Sign in to view the affected projects.

Advisories

Source ID Title
Github GHSA Github GHSA GHSA-5mq8-78gm-pjmq defuddle vulnerable to XSS via unescaped string interpolation in _findContentBySchemaText image tag
History
Type Values Removed Values Added
CPEs cpe:2.3:a:kepano:defuddle:*:*:*:*:*:node.js:*:*
Metrics cvssV3_1

{'score': 6.1, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N'}

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'poc', 'Technical Impact': 'partial'}, 'version': '2.0.3'}

Type Values Removed Values Added
First Time appeared Kepano
Kepano defuddle
Vendors & Products Kepano
Kepano defuddle
Type Values Removed Values Added
Description Defuddle cleans up HTML pages. Prior to version 0.9.0, the _findContentBySchemaText method in src/defuddle.ts interpolates image src and alt attributes directly into an HTML string without escaping. An attacker can use a " in the alt attribute to break out of the attribute context and inject event handler. This issue has been patched in version 0.9.0.
Title Defuddle: XSS via unescaped string interpolation in _findContentBySchemaText image tag
Weaknesses CWE-79
References
Metrics cvssV4_0

{'score': 2.1, 'vector': 'CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N/E:P'}

Weaknesses
  • CWE-79

    Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')

Sources

Status
PUBLISHED
Assigner
GitHub_M
Published
Updated
Mar 10, 2026, 5:58 PM
Reserved
Mar 5, 2026, 9:06 PM
Status
Analyzed
Published
Mar 7, 2026, 6:16 AM
Modified
Jun 17, 2026, 10:32 AM