Severity by source
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
Network-reachable endpoint exploitable by any authenticated user (PR:L) with no user interaction; only confidentiality is impacted (read-only Query Engine exposing User data and password hashes).
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.org
Mercator is an open source web application that enables mapping of the information system. Prior to version 2025.05.19, Mercator's Query Engine (/admin/queries/execute) accepts a JSON DSL (from / select / filters / traverse / output), translates it into an Eloquent query, and returns results as JSON. The controller method QueryController::execute() does not enforce an authorization gate, unlike store() and massDestroy() in the same controller which are correctly protected. As a result, any authenticated account - including the read-only Auditor role - can query models beyond its intended scope, including the User model. Additionally, the password column, although declared $hidden, is not excluded from filter predicates, which allows it to be used in LIKE conditions. The schema() and schemaModel() endpoints of the same controller are similarly unguarded. The Query Engine is read-only; integrity and availability are not affected. Version 2025.05.19 patches the issue.
AnalysisAI
Authorization bypass in Mercator information system mapping application prior to version 2025.05.19 allows any authenticated user - including the read-only Auditor role - to query arbitrary Eloquent models via the unprotected /admin/queries/execute endpoint. The flaw permits enumeration of the User model and even allows the supposedly $hidden password column to be probed via LIKE filter predicates, enabling blind extraction of password hashes. No public exploit identified at time of analysis, but the vendor advisory (GHSA-q3r8-3h7c-96w3) confirms the issue and ships a fix.
Technical ContextAI
Mercator is an open-source PHP/Laravel web application by Sourcentis used for mapping enterprise information systems (assets, applications, processes). Its Query Engine exposes a JSON DSL (from/select/filters/traverse/output) that QueryController::execute() translates into Eloquent ORM queries. The root cause is CWE-359 (Exposure of Private Personal Information to an Unauthorized Actor): peer methods store() and massDestroy() enforce an authorization gate, but execute(), schema(), and schemaModel() were left unguarded, so role-based access controls are bypassed at the controller layer. Compounding this, Laravel's $hidden array only suppresses fields from serialized output - it does not prevent those columns from being referenced in WHERE/LIKE predicates, allowing boolean/inference-based extraction of the password hash column even though it is never returned directly. The affected CPE is cpe:2.3:a:sourcentis:mercator:* for all versions prior to 2025.05.19.
RemediationAI
Vendor-released patch: upgrade Mercator to version 2025.05.19 or later, which adds the missing authorization gate to QueryController::execute(), schema(), and schemaModel() (see https://github.com/sourcentis/mercator/security/advisories/GHSA-q3r8-3h7c-96w3). Where immediate upgrade is not possible, restrict access to /admin/queries/execute, /admin/queries/schema, and /admin/queries/schemaModel at the reverse proxy or web server (e.g. nginx/Apache location blocks limited to admin source IPs), accepting that this disables the Query Engine for Auditor-role users; alternatively, temporarily disable or downgrade the Auditor role and any non-administrative accounts until the patch is applied, with the trade-off of reduced audit functionality. As a precaution, rotate all Mercator user passwords after patching, since password-hash enumeration via LIKE may have occurred undetected.
Server-Side Request Forgery in Mercator's CVE configuration panel allows authenticated users holding the low-privilege '
Stored XSS in Mercator prior to version 2026.02.22 allows authenticated users to execute arbitrary JavaScript in other u
Same technique Information Disclosure
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-38071