Severity by source
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:L/VA:L/SC:N/SI:N/SA:N/E:P/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
PR:L required for authenticated session; S:U as no scope change indicated; C/I/A Low reflects partial DB access typical of ORDER BY injection without confirmed full extraction.
Primary rating from Vendor (VulDB).
CVSS VectorVendor: VulDB
Lifecycle Timeline
4DescriptionCVE.org
A vulnerability was determined in zsadmin2025 ZS-Admin up to b52e14536d59fda11e56e2536a1c32e82a38cead. The impacted element is the function OrderItem.asc/OrderItem.desc of the file /api/system/sys/dept/page of the component com.zs.sys.dept.controller.SysDeptController. This manipulation of the argument orderField causes sql injection. The attack is possible to be carried out remotely. The exploit has been publicly disclosed and may be utilized. This product adopts a rolling release strategy to maintain continuous delivery. Therefore, version details for affected or updated releases cannot be specified. The project was informed of the problem early through an issue report but has not responded yet.
AnalysisAI
SQL injection in ZS-Admin (zsadmin2025) exposes authenticated remote attackers to database manipulation via the orderField parameter in the department pagination API. The vulnerable sorting functions OrderItem.asc and OrderItem.desc in SysDeptController accept unsanitized input and construct ORDER BY clauses through string concatenation, enabling injection against all instances up to commit b52e14536d59fda11e56e2536a1c32e82a38cead. A public exploit has been disclosed through the project's own GitHub issue tracker, and no vendor response or patch has been issued at time of analysis.
Technical ContextAI
ZS-Admin is a Java-based administrative framework (package com.zs.sys.dept.controller.SysDeptController) following an MVC controller pattern. CWE-89 (Improper Neutralization of Special Elements used in an SQL Command) is the root cause: the orderField argument supplied by the client is passed directly into a dynamic ORDER BY clause via the OrderItem.asc and OrderItem.desc utility functions without parameterization or allowlist validation. ORDER BY injection is a specific and commonly overlooked SQL injection variant - because parameterized queries cannot be used for ORDER BY direction and column names in most SQL dialects, developers must validate against an explicit allowlist. Failure to do so allows attackers to inject arbitrary SQL expressions. The affected endpoint is /api/system/sys/dept/page, responsible for department listing with sort functionality. Affected CPE: cpe:2.3:a:zsadmin2025:zs-admin:*:*:*:*:*:*:*:*.
RemediationAI
No vendor-released patch has been identified at time of analysis - the maintainer was notified via a GitHub issue but has not responded. Operators should monitor https://github.com/zsadmin2025/zs-admin-java for commits that remediate the orderField parameter handling in SysDeptController. As an immediate compensating control, restrict access to the /api/system/sys/dept/page endpoint to the smallest possible set of trusted administrative accounts, reducing the attack surface by limiting who can supply the orderField parameter. Deploying a WAF rule targeting ORDER BY injection patterns (e.g., blocking SQL keywords such as SLEEP, BENCHMARK, UNION, or comment sequences in the orderField value) can further reduce exposure, though aggressive rules may block legitimate sort requests and should be validated against normal usage first. The correct long-term fix is to replace dynamic ORDER BY construction with an explicit allowlist of permitted column names validated server-side - this can be applied as a local patch to the SysDeptController pending upstream action.
Authorization bypass in ZS-Admin's multi-tenant API layer allows authenticated remote attackers to read department listi
Unrestricted file upload in ZS-Admin (zsadmin2025/zs-admin-java) exposes the /api/system/file/upload API endpoint to mal
Same weakness CWE-89 – SQL Injection
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-46276
GHSA-q7m3-2546-c4w2