CVE-2026-9781
Executive Summary
CVE-2026-9781 is a high-severity SQL injection vulnerability in Quest NetVault Backup, specifically within the NVBURASDevice JSON-RPC message processing component. This flaw allows an authenticated remote attacker to execute arbitrary code on the underlying operating system in the context of the NETWORK SERVICE account, effectively taking control of the backup server. The vulnerability is particularly dangerous because the authentication mechanism can be bypassed, lowering the barrier for exploitation and expanding the attacker pool beyond legitimate users. With a CVSS score of 8.8 and no vendor patch currently available, organizations running NetVault Backup are exposed to a critical risk of data exfiltration, ransomware deployment, or lateral movement within their backup infrastructure.
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
Technical Analysis
The vulnerability resides in the NVBURASDevice module of Quest NetVault Backup, which handles JSON-RPC communication between the management console and the backup devices/services. The JSON-RPC interface is designed to accept structured requests for device management, discovery, and configuration. When a request is received, the application parses the incoming JSON payload and extracts specific fields to construct SQL queries for database operations, likely related to device inventory or status tracking.
The core flaw is the absence of parameterized queries. A user-supplied string within the JSON-RPC message is concatenated directly into a SQL statement without proper sanitization or escaping. Specifically, a field intended to hold a device name, path, or similar identifier is passed to the database driver without validation. An attacker can inject a crafted string containing SQL syntax (e.g., single quotes, semicolons, UNION SELECT statements) that alters the original query logic.
The injection point is reachable through the NVBURASDevice endpoint. Since authentication is technically required, a valid session token must be provided. However, the CNA description explicitly notes that the existing authentication can be bypassed. This suggests the JSON-RPC handler either fails to enforce session validation on all methods or that the authentication check itself is vulnerable to a logic flaw, such as accepting an attacker-controlled session ID without verifying its source.
Exploitation mechanics: The injected SQL payload can be used to (1) modify database records for privilege escalation, (2) read sensitive data like backup credentials, or (3) leverage SQL Server's xp_cmdshell or similar functionality to execute operating system commands. Given the context of NETWORK SERVICE, the attacker gains the privileges of that service account, which typically has broad rights on the host to access the backup storage, registry, and possibly other networked resources. The attack surface is the TCP port where the JSON-RPC service listens, commonly 20031 or a similar high port. No complex payload delivery is required; a simple HTTP request with a crafted JSON body suffices.
Exploitation Scenarios
Step 1: Reconnaissance and Target Identification. An attacker discovers a NetVault Backup instance by scanning for open management ports (default 20031) or using Shodan dorks such as title:"NetVault Backup". They confirm the version via the product banner or by requesting unauthenticated endpoints. If a known bypass is applied, they skip authentication entirely; otherwise, they obtain valid credentials through phishing or weak-password brute force against the NetVault user database.
Step 2: Trigger/Weaponization. The attacker crafts a JSON-RPC payload to the /netvault/device or NVBURASDevice-specific method. The JSON body includes a valid method name (e.g., listDevices) and a parameter with a SQL injection payload in the string field. Example payload:
{"method":"NVBURASDevice.list","params":["'] UNION SELECT 1, 'admin', 'password', NULL FROM users--"],"id":1}
This injects into the WHERE clause of the underlying SELECT query, potentially altering the response to reveal user credentials or account hashes.
For full remote code execution, the attacker runs a stacked query:
{"method":"NVBURASDevice.list","params":["'; EXEC xp_cmdshell 'powershell -enc <base64>';--"],"id":1}
The SQL server (if backed by MSSQL) executes the command, spawning a PowerShell reverse shell or a download cradle for a beacon.
Step 3: Payload/Execution. The injected command executes under the NETWORK SERVICE account. The attacker uses this to run arbitrary binaries, read/write files in the backup directories, and harvest encrypted backup credentials from the NetVault configuration database. Since backup servers often have trusted relationships with domain controllers and other critical systems, the account may have delegation privileges.
Step 4: Post-Exploitation Impact. With code execution, the attacker can disable backups, modify backup jobs to redirect backups to attacker-controlled storage, or deploy ransomware across the backup environment. The presence of the NETWORK SERVICE context implies network access to other systems, facilitating lateral movement using stolen credentials or NTLM relay attacks against the backup server's service account.
Impact Assessment
The CVSS score of 8.8 (High) reflects the significant impact: high confidentiality, integrity, and availability losses. The vector is Network/Adjacent (AV:N), Low attack complexity (AC:L), and requires low-privilege authentication (PR:L), with no user interaction (UI:N). The scope is unchanged (S:U), but the privileges obtained (NETWORK SERVICE) are elevated relative to the initial authentication level.
Business impact: NetVault Backup is a cornerstone of enterprise data protection. Compromise leads to (1) loss of backup integrity—an attacker can poison backups with malicious data or delete them, undermining disaster recovery, and (2) data exfiltration of sensitive backup sets containing customer PII, intellectual property, or financial records. Operational impact: downtime during investigation contains the blast radius, but also the backup restore path becomes untrusted. The lack of a patch means all deployments are exposed; the widespread use of NetVault across healthcare, finance, and government sectors elevates the systemic risk.
The exploitation is silent and can occur without triggering typical endpoint alerts, as SQL injection over a legitimate JSON-RPC channel appears as normal application traffic.
Detection Guidance
Sigma Rule
title: Suspicious NVBURASDevice SQL Injection Attempt
id: 3f9a1c2b-8e4d-4a5f-b6c7-8d9e0f1a2b3c
status: experimental
description: Detects SQL injection patterns in NetVault Backup NVBURASDevice JSON-RPC requests.
logsource:
category: webserver
product: netvault
detection:
selection:
cs-uri-path|contains:
- '/nvb/device'
- '/NVBURASDevice'
filter_common:
cs-username|endswith:
- 'admin'
- 'svc_nv'
sql_patterns:
- c-query|contains|all:
- "'"
- "UNION"
- "SELECT"
- c-query|contains|all:
- ";"
- "xp_cmdshell"
- c-query|contains:
- "OR 1=1"
- "WAITFOR DELAY"
condition: selection and sql_patterns and not filter_common
level: high
tags:
- attack.t1190
- cve.2026.9781
YARA Rule
rule CVE_2026_9781_NetVault_SQLi
{
meta:
author = "Valters IT Security"
description = "Detects SQL injection patterns targeting Quest NetVault Backup NVBURASDevice"
cve = "CVE-2026-9781"
date = "2025-01-13"
strings:
$method = "NVBURASDevice" ascii wide
$sqli_union = "UNION SELECT" ascii wide nocase
$sqli_or = "OR 1=1" ascii wide nocase
$sqli_stack = "xp_cmdshell" ascii wide nocase
$json_rpc = "\"jsonrpc\":\"2.0\"" ascii wide
$quote = "'" ascii
condition:
$method and $json_rpc and (1 of ($sqli_union, $sqli_or, $sqli_stack) and #quote > 2)
}
Suricata IDS Rule
alert http any any -> any any (msg:"CVE-2026-9781 Quest NetVault Backup NVBURASDevice SQL Injection Attempt"; flow:established,to_server; content:"/NVBURASDevice"; http_uri; content:"\"method\":\""; http_client_body; distance:0; content:"'"; http_client_body; pcre:"/(UNION\s+SELECT|OR\s+1=1|xp_cmdshell|WAITFOR\s+DELAY)/i"; sid:20269781; rev:1; metadata:cve 2026-9781; reference:url,https://nvd.nist.gov/vuln/detail/CVE-2026-9781;)
Elastic Detection
sequence by source.ip, process.entity_id with maxspan=5m
[network where event.category == "network_traffic" and destination.port == 20031 and
network.protocol == "http" and process.name == "nvbproduct.exe"]
[process where event.type == "start" and
process.name : ("cmd.exe", "powershell.exe") and
process.parent.name == "sqlservr.exe" and
process.command_line : ("*xp_cmdshell*", "*powershell*", "*certutil*")]
Splunk SPL Query
index=web earliest=-24h source="/var/log/netvault/*"
(uri_path="/nvb/device" OR uri_path="/NVBURASDevice")
OR (request_body="*UNION SELECT*" OR request_body="*xp_cmdshell*" OR request_body="*OR 1=1*")
OR (request_body="*'; EXEC*" )
OR (request_body="*WAITFOR DELAY*")
| table _time, src_ip, dest_ip, uri_path, request_body, user
| sort - _time
Wazuh OSSEC Rule
<group name="netvault,">
<rule id="202697" level="10" frequency="5" timeframe="60">
<decoded_as>json</decoded_as>
<field name="method">\.NVBURASDevice\.</field>
<match>UNION SELECT|xp_cmdshell|OR 1=1|WAITFOR DELAY|'; EXEC</match>
<description>CVE-2026-9781: SQL injection pattern detected in NetVault Backup NVBURASDevice JSON-RPC request</description>
<group>attack.t1190,sql_injection,cve_2026_9781,</group>
</rule>
</group>
Mitigation & Patch Guidance
Patch Status: UNPATCHED. Zero out of four tracked patch sources have confirmed a fix. The vendor has not released an advisory, a hotfix, or a version update addressing this vulnerability. Organizations must assume full exposure.
Immediate Mitigations (until patch):
- Restrict network access: Segment the NetVault Backup server behind a strict firewall. Allow management console access only from privileged administrative workstations via VPN. Block inbound connections to the JSON-RPC port (default 20031) from the internet and untrusted internal network segments.
- Enforce strong authentication: If possible, disable all default or service accounts, enforce multi-factor authentication for the NetVault Console, and rotate passwords regularly. Given the authentication bypass, treat authentication as non-authoritative—do not rely on it to protect the vulnerable endpoint.
- Monitor and alert: Deploy the detection rules provided above. Enable audit logging on both the NetVault application and the underlying SQL server (if MSSQL is used), capturing all
xp_cmdshellexecutions and suspicious queries.
Patch/Upgrade Steps:
- Subscribe to Quest support notifications for CVE-2026-9781. When a patch is released, apply it immediately in a test environment first, then roll out to production during a maintenance window.
- At minimum, upgrade to the latest NetVault Backup version if one becomes available that references this CVE or the ZDI-CAN-27648 case ID.
- If the vendor offers virtual patching through an IDS/WAF vendor (e.g., F5, CrowdStrike, Trend Micro), enable that virtual patch as a temporary control.
Long-Term Hardening:
- Harden the underlying OS and SQL server. Disable
xp_cmdshellin MS SQL Server if not required; if needed, restrict its use to a dedicated, least-privileged account. - Use parameterized queries in any custom integrations with the NetVault API.
- Adopt a Zero Trust model for backup infrastructure: ensure backup servers are treated as Tier 0 assets, with DAC (dual access control) and reduced lateral movement paths.
- Conduct regular vulnerability scans and penetration tests against backup management interfaces, prioritizing findings that affect trusted infrastructure tiers.
References
- NVD Entry: CVE-2026-9781 — https://nvd.nist.gov/vuln/detail/CVE-2026-9781
- ZDI Advisory: ZDI-CAN-27648 — https://www.zerodayinitiative.com/advisories/ZDI-CAN-27648/ (when published)
- Quest NetVault Backup Product Page: https://www.quest.com/products/netvault-backup/
- CISA KEV Catalog: Not listed (as of report date).
- Exploit-DB / Packet Storm search: For future PoC releases, if any; currently no public exploit or in-the-wild activity has been confirmed. Threat actor campaigns specifically targeting CVE-2026-9781 have not been reported, but the vulnerability class (SQLi in backup software) has historically been targeted by ransomware groups (e.g., Qakbot/Squirrelwaffle campaigns against backup infrastructure).
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.