CVE-2025-46827: Graylog Allows Session Takeover via Insufficient HTML Sanitization
8
CVSS Score
3.1
Basic Information
CVE ID
GHSA ID
EPSS Score
0.10898%
CWE
Published
5/7/2025
Updated
5/13/2025
KEV Status
No
Technology
Java
Technical Details
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:U/C:H/I:H/A:H
| Package Name | Ecosystem | Vulnerable Versions | First Patched Version |
|---|---|---|---|
| org.graylog2:graylog2-server | maven | <= 6.0.13 | 6.0.14 |
| org.graylog2:graylog2-server | maven | >= 6.1.0, <= 6.1.9 | 6.1.10 |
Vulnerability Intelligence
Miggo AI
Root Cause Analysis
The vulnerability allows session takeover via insufficient HTML sanitization, specifically in the 'Event Definition Remediation Step field'. The analysis of the patches shows two main areas of concern:
- Backend DTOs: Methods like
org.graylog.events.processor.EventDefinitionDto.remediationSteps()(and similarlydescription()in content pack DTOs) were patched to add@JsonSerialize(converter = HTMLSanitizerConverter.class). This indicates that previously, these methods returned raw strings which, when serialized to JSON for the frontend, would include any malicious HTML/JavaScript. This unsanitized data is the core of the vulnerability on the backend side. - Frontend Components: The
Markdown.tsxcomponent, likely used for rendering these fields, had its sanitization logic (usingDOMPurifyandmarked) strengthened. This implies its previous sanitization was insufficient. Additionally, markdown editor components likeMDBaseEditor.tsx(and its consumersEditor.tsx,EditorModal.tsx) had sanitization added/enhanced for input events likeonBlurandonPaste.
The exploitation occurs when an attacker submits HTML in a field like 'Remediation Steps', which is then stored and later rendered to a victim. The identified backend functions are responsible for providing this data for serialization without prior sanitization. The identified frontend component (Markdown) is responsible for rendering this data, and its previous state allowed script execution. The editor component (MDBaseEditor) was involved in the input phase.