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 · GitHub Advisory
Share

Severity by source

GitHub Advisory 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 GitHub Advisory.

CVSS VectorGitHub Advisory

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

Lifecycle Timeline

4
Source Code Evidence Fetched
Jul 23, 2026 - 22:43 vuln.today
Analysis Generated
Jul 23, 2026 - 22:43 vuln.today
Patch available
May 08, 2026 - 23:18 EUVD
CVE Published
May 08, 2026 - 21:13 nvd
MEDIUM 5.4

DescriptionGitHub Advisory

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.

AnalysisAI

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.

Technical ContextAI

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.

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.

Share

CVE-2026-42192 vulnerability details – vuln.today

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