Impact
An improper neutralization of CRLF sequences in cowlib’s SSE encoder allows an attacker to inject carriage return characters into the id, event, data, or comment fields. Because the encoder only blocks line feed characters but not carriage returns, the GEL implementation can fork additional Server‑Sent Event lines, forging complete events with arbitrary event types and data strings. When a browser consumes these events, it may dispatch them to user‑defined handlers or render them in the DOM, leading to client‑side logic manipulation and stored‑XSS‑equivalent effects.
Affected Systems
The vulnerability affects the cowlib library by ninenines from version 2.6.0 up to but excluding 2.16.1. No other vendors are impacted. Applications that use the cow_sse:event/1 function to construct SSE payloads are exposed.
Risk and Exploitability
The CVSS score of 6.3 indicates moderate severity, and the EPSS score is currently unavailable. The issue is not listed in the CISA KEV catalog. Exploitation requires that an attacker be able to supply CR or LF characters into the SSE field values sent to cow_sse:event/1. In typical deployments, browsers consume the forged events and may trigger unintended handling or DOM manipulation, posing a moderate to high risk for exposed services with minimal prerequisites.
OpenCVE Enrichment
Github GHSA