Skip to main content

Boteraser | Website and Server Security Solutions

🛡️ CVE-2026-48591 — earmark

⚪ Unknown ✅ No Known Exploit CWE-79 NVD
N/A
CVSS Score
0 Low4 Medium7 High9 Critical10

Description

Stored XSS via unescaped HTML attribute values in earmark

Summary

Improper Neutralization of Script in Attributes in a Web Page vulnerability in pragdave earmark allows stored cross-site scripting via unescaped HTML attribute values.

'Elixir.Earmark.Transform':\_make\_att1/2 in lib/earmark/transform.ex splices attribute values verbatim between two literal " bytes: \[" ", name, "=\\"", value, "\\""\]. Text nodes are routed through the existing escape function which encodes " as ", but attribute values never visit that path. A markdown link whose URL or title contains a bare " closes the attribute early and lets the trailing bytes be parsed by the browser as fresh HTML attributes. For example, \[click\](http://example.com/?a=x" onerror="alert(1)) renders as <a href="http://example.com/?a=x" onerror="alert(1)">click</a>, executing arbitrary JavaScript in the victim's browser.

The earmark library is no longer maintained and has been retired on Hex. No patched version will be released. All releases from 1.4.1 onward are affected, and users should migrate to a maintained Markdown library such as MDEx.

This issue affects earmark from 1.4.1 onward.

Workaround

Migrate to a maintained Markdown library such as MDEx (https://hex.pm/packages/mdex). The earmark package has been retired on Hex and no patched release will be made.

How this vulnerability can be exploited

This issue can be reached with local access to the system, attack complexity is low, an attacker needs no privileges on the target. A user must be tricked into taking some action. Rated impact: confidentiality low, integrity low, availability none.

CVSS metrics in full

The score comes from this vector: CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:P/VC:L/VI:L/VA:N/SC:L/SI:L/SA:N

  • Attack vector: Local — a local account, shell or session on the host is needed.
  • Attack complexity: Low — the attack works reliably, with no preparation.
  • Attack requirements: None — no deployment-specific condition has to hold.
  • Privileges required: None — an unauthenticated stranger can try it.
  • User interaction: Passive — a victim action is involved, but not a deliberate one.
  • Confidentiality impact: Low — limited, and the attacker does not choose what is affected.
  • Integrity impact: Low — limited, and the attacker does not choose what is affected.
  • Availability impact: None.

Weakness class

CVE-2026-48591 is classified as CWE-79: Cross-site Scripting (XSS). User-supplied data is written into a page without escaping, so attacker script runs in the browser of anyone who views it.

Affected software

CVE-2026-48591 is recorded against 2 packages.

  • earmark
  • unknown

Timeline and source

Published on 17 June 2026 and last revised on 30 July 2026. No public exploit is currently recorded for this entry. Record sourced from NVD.

References

nvd.nist.gov (Advisory)
cna.erlef.org (Web)
github.com (Package)
osv.dev (Web)

Same weakness in other software

These advisories are the same class of weakness (CWE-79: Cross-site Scripting (XSS)) in other software:

Details

Severity Unknown
CVSS Score N/A
CVSS Vector CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:P/VC:L/VI:L/VA:N/SC:L/SI:L/SA:N
CWE CWE-79
Public Exploit ✅ No
Source NVD
Published 2026-06-17
Updated 2026-08-20
Modified 2026-07-30
Fix URL N/A

Affected Packages

Software From version Fixed in
earmark
unknown

Free Vulnerability Check

Is your site affected by CVE-2026-48591?

BotEraser helps you identify potentially vulnerable plugins and themes by checking your installation against CVE-2026-48591 and other known CVE records.

Scan My Site Free →

No credit card required  ·  Results in minutes

ⓘ Data Notice: The information presented above has been compiled from publicly available internet sources. Boteraser aggregates this data solely for informational purposes and does not independently classify, evaluate, or endorse any findings about the vulnerabilities listed. The accuracy and completeness of this information is the sole responsibility of the original publishers. Boteraser and its operators accept no liability for any decisions made based on this data.

Browse related advisories

All advisoriesCVECVE 2026