Skip to main content

ZR.Admin.NET EUVDEUVD-2026-102960

| CVE-2026-111669 HIGH
SQL Injection (CWE-89)
2026-10-16 VulnCheck GHSA-vcvg-6jh6-f58f
7.1
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Authenticate with system:user:list permission
  2. Exploit
    Send GET /system/user/list with crafted PagerInfo.Sort
  3. Execution
    Inject subquery/CASE into ORDER BY clause
  4. Impact
    Blind-extract stored credentials from database

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Parameterized queries, prepared statements
MITRE ATT&CK

2 techniques across 2 tactics: Initial Access, Persistence

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Requires an authenticated session whose account holds the system:user:list permission; the attacker then supplies a crafted PagerInfo.Sort query parameter to GET /system/user/list, which flows unsanitized into the ORDER BY clause of the shared ToPage paging helper in ZR.Repository/BaseRepository.cs. Affects ZR.Admin.NET up to and including 3.8.2. Limiting factors: exploitation is read-only (blind extraction only, no write/RCE), requires valid credentials plus the specific list permission (not unauthenticated), and is blocked on 3.8.1+/patched builds where parm.Sort is passed through ToSqlFilter().

Impact

Signals are moderate and largely consistent. The vendor CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:N/VC:H) yields 7.1 (High): network-reachable, low attack complexity, no user interaction, with high confidentiality impact but no integrity or availability impact - consistent with a blind SQL injection used only to read data. The key mitigating signal is PR:L: exploitation requires an authenticated account that specifically holds the system:user:list permission, so this is not an unauthenticated internet-facing flaw. No EPSS score and no KEV status were provided in the input, and there is no explicit POC=YES marker, so there is no evidence of active exploitation; however a detailed public technical writeup (hackmd) and the vendor patch commit both exist, lowering the barrier to weaponization. On balance this is a real, patch-worthy issue (credential theft from the SysUser table is possible) but not an emergency: the authentication-plus-permission precondition and the niche deployment footprint make widespread opportunistic exploitation unlikely. No conflicting signals were detected between the CVSS vector and the description - both agree on authenticated, network-based, confidentiality-only impact.

Exploit ScenarioDerived

An attacker who already holds a valid account with the system:user:list permission sends GET /system/user/list with a crafted PagerInfo.Sort value that injects a subquery or CASE expression into the ORDER BY clause built by the shared ToPage helper. By observing ordering differences across requests (blind inference), the attacker extracts sensitive database contents such as stored user credentials. A public technical writeup documenting the technique exists, though no packaged exploit tool is confirmed in the input.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 16, 2026

Authenticated SQL injection in ZR.Admin.NET through 3.8.2 allows any account holding the system:user:list permission to inject subquery or CASE expressions into the ORDER BY clause of the shared ToPage paging helper by supplying a crafted PagerInfo.Sort query parameter to GET /system/user/list, enabling blind extraction of database contents such as stored credentials. The flaw is read-only (CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N; vendor-published CVSS 4.0 base of 7.1) and requires a valid low-privileged session with that specific list permission, so it is not remotely exploitable without authentication. No public exploit code and no confirmed active exploitation were identified at time of analysis, though a public technical writeup describing the ORDER BY injection path exists; a vendor patch is available.

RemediationAI

Vendor-released patch available: apply commit d32c211aeedab3e07bb4f02f54bb251fff37361c (or upgrade to the ZR.Admin.NET release built after 3.8.2, which carries it), whose change wraps parm.Sort with SqlSugar's ToSqlFilter() in both ToPage<T> and ToPage<T,T2> in ZR.Repository/BaseRepository.cs so injected subquery/CASE tokens are stripped before reaching the ORDER BY clause; verify the deployed BaseRepository.cs contains .ToSqlFilter() at both call sites, since simply upgrading without confirming the source is present is insufficient. Until the patch is deployed, the most effective compensating control is permission hygiene: remove the system:user:list claim from all but strictly trusted administrative roles, which closes the vulnerability for unprivileged accounts at the cost of narrowing normal user-management visibility. Additionally, enforce server-side whitelisting of allowed sort column names (and asc/desc values) before they reach the paging helper, or reject requests whose PagerInfo.Sort contains spaces, parentheses, commas, or keywords such as CASE/WHEN/SELECT - the trade-off is that legitimate sorting must be constrained to a fixed column list. A reverse-proxy or WAF rule that inspects the Sort parameter on GET /system/user/list and blocks ORDER BY-style payloads provides defense in depth with the caveat that blind, low-and-slow extraction can evade signature-based rules, so it should not replace the patch. Audit database/user-manager logs for anomalous ordering requests against /system/user/list, and rotate database credentials that may have been exposed, given the vulnerability's blind read of stored credentials. References: vendor patch commit (https://github.com/izhaorui/Zr.Admin.NET/commit/d32c211aeedab3e07bb4f02f54bb251fff37361c), VulnCheck advisory (https://www.vulncheck.com/advisories/zr-admin-net-through-3.8.2-sql-injection-via-pagerinfo-sort-order-by), and technical writeup (https://hackmd.io/@hieuPenguinnn/zradmin-net-order-by-sort-sql-injection).

Affected VersionsENISA

Zr.Admin.NET 0 ≤3.8.2

Affected Packages

euvd zr_admin_net no fix

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

ZR.Admin.NET is a .NET-based admin/backend framework built on the SqlSugar ORM, and the vulnerability is a classic CWE-89 (Improper Neutralization of Special Elements used in an SQL Command) instance applied to an ORDER BY clause rather than a WHERE predicate. In ZR.Repository/BaseRepository.cs the shared paging helpers ToPage<T> and ToPage<T,T2> build the sort expression by string interpolation - source.OrderByIF(parm.Sort.IsNotEmpty(), $"{parm.Sort} {(parm.SortType.Contains("desc") ? "desc" : "asc")}") - meaning the raw PagerInfo.Sort value taken from the HTTP query string is concatenated directly into the ORDER BY fragment. Because ORDER BY cannot be parameterized in most ORMs, the value crosses into SQL text, and since SqlSugar permits subselects and CASE expressions in ORDER BY, an attacker can encode boolean predicates and exfiltrate data row-by-row through ordering differences (blind extraction). The permission gate is that GET /system/user/list is reached through SysUserController (ZR.Admin.WebApi/Controllers/System/SysUserController.cs) and requires the system:user:list authorization claim, which the attacker must already hold. The published fix commit d32c211aeedab3e07bb4f02f54bb251fff37361c wraps parm.Sort with SqlSugar's ToSqlFilter() sanitizer before interpolation, neutralizing the injected tokens on 3.8.1+/patched builds. The affected CPE cpe:2.3:a:izhaorui:zr.admin.net:*:*:*:*:*:*:*:* carries a wildcard version, so version scoping must come from the advisory text (through 3.8.2) and the repository tags rather than the CPE.

Know when Zr Admin Net gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (VulnCheck) PRIMARY 7.1 HIGH
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
vuln.today AI 6.5 MEDIUM

Network-reachable endpoint with low complexity, but requires an authenticated account holding system:user:list so PR:L; blind read-only data extraction gives C:H with no integrity or availability impact.

3.1 AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N
4.0 AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
Low
User Interaction
None
Vulnerable system: Confidentiality
High
Vulnerable system: Integrity
None
Vulnerable system: Availability
None
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

DescriptionCVE.org

ZR.Admin.NET through 3.8.2 contains an sql injection vulnerability that allows authenticated attackers to manipulate the ORDER BY clause by supplying a crafted PagerInfo.Sort query parameter to the shared ToPage paging helper. Attackers holding the system:user:list permission can inject subquery or CASE expressions via GET /system/user/list to extract database contents such as stored credentials through blind techniques.

Executive ViewAI

Why It Matters

ZR.Admin.NET deployments up to version 3.8.2 contain a SQL injection flaw in the shared paging helper that lets any authenticated user holding the system:user:list permission read arbitrary database contents, including stored credentials, through the standard user list endpoint. Because the permission is commonly granted to routine administrative and support roles, the weakness likely affects a broad set of internal accounts rather than a small privileged group, and credential theft could enable lateral movement into other connected systems. Exploitation requires a valid low-privileged session, so external risk is limited, but the confidentiality exposure to insiders and compromised accounts is significant.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

Prevalence
Low
niche open-source .NET admin scaffold, limited enterprise footprint
Data Quality
3 sources
Confidence: Low

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS N/A
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact
High

Priority Score

36
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +36
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

SQL injection exploits the way applications construct database queries by mixing user input directly into SQL statements.

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy