CVE-2026-30830

LOWPre-NVD 6.16.1
EchelonGraph scoreMEDIUM confidence

This medium-severity CVE scores 6.1 under the CNA's CVSS (NVD's own analysis pending). EPSS exploit probability: 0.3%, top 83% of all CVEs by exploit prediction. GitHub Security Advisory data not yet ingested — confidence will rise once GHSA publishes (typical lag: hours to days for open-source ecosystem CVEs; never for infrastructure-only CVEs).

Triggered by: NVD CVSS baseline
Sources: cna:github_m, epss
Trending — 3 sources updated this week
6.1
EchelonGraph verdictMonitorLow exploitation likelihood right now — keep watching.
  • Lower severity and no public exploit yet
CISA-KEV: Not listedEPSS: 0%CVSS: 6.1Exploit: NoneExposed: 0

No vendor fix yet — apply a workaround or compensating control (WAF / firewall / segmentation) and watch for a patch.

defuddle vulnerable to XSS via unescaped string interpolation in _findContentBySchemaText image tag

Summary

The _findContentBySchemaText method in src/defuddle.ts interpolates image src and alt attributes directly into an HTML string without escaping:

html += `;

An attacker can use a " in the alt attribute to break out of the attribute context and inject event handlers. This is a separate vulnerability from the sanitization bypass fixed in f154cb7 — the injection happens during string construction, not in the DOM, so _stripUnsafeElements cannot catch it.

Details

When _findContentBySchemaText finds a sibling image outside the matched content element, it reads the image's src and alt attributes via getAttribute() and interpolates them into a template literal. getAttribute('alt') returns the raw attribute value. If the alt contains ", it terminates the alt attribute in the interpolated HTML string, and subsequent content becomes new attributes (including event handlers).

The recently added _stripUnsafeElements() (commit f154cb7) strips on* attributes from DOM elements, but the alt attribute's name is alt (not on*), so it is preserved with its full value. The onload handler is created by the string interpolation, not present in the original DOM.

PoC

Input HTML:

<!DOCTYPE html>

PoC

{"@type": "Article", "text": "Long article text repeated many times to exceed the extracted content word count. Long article text repeated many times to exceed the extracted content word count. Long article text repeated many times to exceed the extracted content word count."}

Short.

Extra text to inflate parent word count padding padding padding. Long article text repeated many times to exceed the extracted content word count. Long article text repeated many times to exceed the extracted content word count. Long article text repeated many times to exceed the extracted content word count.

Output:

The onload event handler is injected as a separate HTML attribute.

Impact

XSS in any application that renders defuddle's HTML output (browser extensions, web clippers, reader modes). The attack requires crafted HTML with schema.org structured data that triggers the _findContentBySchemaText fallback, combined with a sibling image whose alt` attribute contains a quote character followed by an event handler.

Suggested Fix

Use DOM API instead of string interpolation:

if (imageSrc) {
    const img = this.doc.createElement('img');
    img.setAttribute('src', imageSrc);
    img.setAttribute('alt', imageAlt);
    html += img.outerHTML;
}

This ensures attribute values are properly escaped by the DOM serializer.

CVSS v3
6.1
EG Score
6.1(medium)
EG Risk
32(Track)
EG Risk 32/100SSVC: Track

EG Risk is EchelonGraph's 0–100 priority score: it fuses intrinsic severity with real-world exploitation and automatability so you can rank equal-severity CVEs and fix the most dangerous first. Higher = act sooner. Distinct from the 0–10 EG Score (severity).

How it’s computed
Severity61% × 45%
Exploitation0% × 40%
Automatability30% × 15%
Action: Routine — remediate on your standard cadence.
EPSS
16.8%
KEV
Not listed

Published

March 6, 2026

Last Modified

March 6, 2026

Vendor Advisories for CVE-2026-30830(1)

These vendors published their own advisory mentioning this CVE — often with vendor-specific remediation steps + affected product lists not in NVD.

Affected Packages

(1 across 1 ecosystem)
npm(1)
PackageVulnerable rangeFixed inDependents
defuddle0.9.0

Data Freshness Timeline

(refreshed 12× in last 7d / 12× in last 30d)

Each row is a source pipeline that fetched or updated this CVE on that date, with what changed. For example, "NVD update" means NVD published or revised its analysis for this CVE; "MITRE cvelistV5" means we ingested or refreshed it from the CNA feed. Most recent first.

  1. 2026-07-25 14:18 UTCEPSS rescore
  2. 2026-07-25 14:17 UTCEPSS rescore
  3. 2026-07-24 14:17 UTCEPSS rescore
  4. 2026-07-23 14:18 UTCEPSS rescore
  5. 2026-07-23 14:18 UTCEPSS rescore
  6. 2026-07-23 03:08 UTCEG score recompute
  7. 2026-07-22 14:08 UTCEPSS rescore
  8. 2026-07-22 14:08 UTCEPSS rescore
  9. 2026-07-21 15:24 UTCEPSS rescore
  10. 2026-07-21 15:24 UTCEPSS rescore
  11. 2026-07-20 21:35 UTCEG score recompute
  12. 2026-07-20 21:32 UTCOSV refresh

Frequently asked(5)

What is CVE-2026-30830?
CVE-2026-30830 is a low vulnerability published on March 6, 2026. defuddle vulnerable to XSS via unescaped string interpolation in _findContentBySchemaText image tag Summary 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…
When was CVE-2026-30830 disclosed?
CVE-2026-30830 was first published in the National Vulnerability Database on March 6, 2026. EchelonGraph re-ingests CVE updates from NVD on a 2-hour cycle, so this page reflects the latest published state.
Is CVE-2026-30830 actively exploited?
CVE-2026-30830 is not currently on CISA's Known Exploited Vulnerabilities catalog. FIRST EPSS estimates a 16.8% percentile likelihood of exploitation in the next 30 days — higher percentiles indicate greater predicted risk.
What is the CVSS score of CVE-2026-30830?
CVE-2026-30830 has a CVSS v4.0 base score of 6.1 (CNA self-assessment; NVD's own analysis pending).
How do I remediate CVE-2026-30830?
Patch to the fixed version published by the affected vendor. Where vendor advisories exist for CVE-2026-30830, EchelonGraph cross-links them in the Vendor Advisories panel below — those typically contain the canonical remediation steps, fixed version numbers, and any vendor-specific mitigations.

Dependency Blast Radius

See which npm, PyPI, Go, and Maven packages are affected by CVE-2026-30830

Explore →

Is Your Infrastructure Affected by CVE-2026-30830?

EchelonGraph automatically scans your cloud infrastructure and maps CVE exposure using blast radius analysis.