NVD has published CVE-2026-114119, a CVSS 9.8 (Critical), network-exploitable vulnerability affecting Best Practice Software's Bp Premier — a practice management platform deployed across general practices and clinics. Every installation of Bp Premier prior to version 1.14.1.1128 uses the same hardcoded Microsoft SQL Server administrative password. That password is identical across all customer deployments and, according to the advisory, cannot be changed without breaking the application.
Let me be blunt about what this means operationally: any attacker who can reach TCP/1433 on a Bp Premier database server can authenticate as a SQL Server sysadmin, completely bypass the application's own authentication layer, and — via features like xp_cmdshell — execute operating system commands as SYSTEM. That is full host compromise with a single, universally known credential. For a platform that stores patient demographics, clinical notes, prescriptions, and billing data, this is a worst-case exposure: trivial exploitation, no user interaction, and direct access to protected health information.
If you run Bp Premier — or support clinics that do — treat this as an emergency change, not a routine patch cycle. Flat internal networks, vendor VPN tunnels, and overly permissive service accounts are the three conditions that turn this from "concerning advisory" into "reportable breach."
Technical Analysis
Affected products and versions
- Product: Best Practice Software Bp Premier
- Affected versions: All versions before 1.14.1.1128
- Underlying component: Microsoft SQL Server instance backing the Bp Premier application
- CVE: CVE-2026-114119 — CVSS v3.x 9.8 (Critical), attack vector: Network
- Reference: https://nvd.nist.gov/vuln/detail/CVE-2026-114119
How the vulnerability works
The root cause is CWE-798 (Use of Hard-coded Credentials). Bp Premier ships with a Microsoft SQL Server administrative account whose password is:
- Identical across every installation — compromise of one site's credential (or a single disclosure) compromises all of them.
- Sysadmin-privileged — the account holds the
sysadminfixed server role, granting unrestricted control over the database engine. - Immutable — the vendor notes the password cannot be rotated without breaking application functionality, which means pre-patch mitigation must come from network-layer and SQL-layer controls, not credential hygiene.
From a defender's perspective, the attack chain is short and loud:
- Attacker gains network reachability to the SQL Server instance (TCP/1433 by default) — via an adjacent compromised host, a vendor remote-access tunnel, an exposed firewall rule, or a flat clinical LAN.
- Attacker authenticates directly to SQL Server using the known sysadmin credential. Bp Premier's own login controls are entirely bypassed — application logs will show nothing.
- With sysadmin context, the attacker enables
xp_cmdshell(disabled by default, but trivially enabled viasp_configureby any sysadmin) and executes arbitrary OS commands in the security context of the SQL Server service account — commonly SYSTEM or a domain service account. - From there: data exfiltration of patient records, ransomware staging, credential theft via
lsassaccess, and lateral movement.
Exploitation status
As of publication, CVE-2026-114119 has been published by NVD with no confirmed in-the-wild exploitation reporting and no CISA KEV listing at time of writing. However, hardcoded-credential flaws in widely deployed vertical-market software are historically weaponized within days of disclosure — the credential requires no exploit development, no race conditions, and no special tooling beyond a SQL client. Treat "no confirmed exploitation" as "not yet observed," not "not happening." Unauthenticated-looking SQL logins are exactly the kind of quiet activity that evades casual review.
Detection & Response
Detection must focus on the three observable behaviors this flaw produces: (1) unexpected SQL Server authentication against the Bp Premier instance, (2) sqlservr.exe spawning command interpreters via xp_cmdshell, and (3) configuration changes enabling xp_cmdshell or creating new SQL logins. These are high-fidelity signals in a clinical environment where the database server should be one of the most predictable hosts on the network.
---
title: MSSQL Server Spawning Command Shell via xp_cmdshell
id: 3c9f2a71-5b48-4e6d-9a13-7f2c8d1e4b56
status: experimental
description: Detects sqlservr.exe spawning cmd.exe or powershell.exe, indicative of xp_cmdshell abuse following sysadmin authentication such as exploitation of CVE-2026-114119 hardcoded credentials in Bp Premier.
references:
- https://nvd.nist.gov/vuln/detail/CVE-2026-114119
- https://attack.mitre.org/techniques/T1059/
author: Security Arsenal
date: 2026/04/06
tags:
- attack.execution
- attack.t1059.003
- attack.t1190
logsource:
category: process_creation
product: windows
detection:
selection_parent:
ParentImage|endswith: '\sqlservr.exe'
selection_child:
Image|endswith:
- '\cmd.exe'
- '\powershell.exe'
- '\pwsh.exe'
- '\wscript.exe'
- '\cscript.exe'
- '\rundll32.exe'
- '\regsvr32.exe'
- '\mshta.exe'
- '\net.exe'
- '\net1.exe'
- '\whoami.exe'
- '\certutil.exe'
- '\bitsadmin.exe'
condition: selection_parent and selection_child
falsepositives:
- Rare legitimate SQL Server maintenance jobs invoking command shells; validate against approved job schedules
level: critical
---
title: SQL Server Configuration Change Enabling xp_cmdshell
id: 8d4e6b02-1a37-4c59-bf28-9e3d5a7c1f64
status: experimental
description: Detects process or script activity referencing sp_configure changes to xp_cmdshell or the creation of new SQL logins, a hallmark of post-authentication activity against MSSQL instances including CVE-2026-114119 exploitation.
references:
- https://nvd.nist.gov/vuln/detail/CVE-2026-114119
- https://attack.mitre.org/techniques/T1078/
author: Security Arsenal
date: 2026/04/06
tags:
- attack.persistence
- attack.t1078
- attack.t1505
logsource:
category: process_creation
product: windows
detection:
selection:
CommandLine|contains:
- 'xp_cmdshell'
- 'sp_configure'
- 'sp_addlogin'
- 'sp_addsrvrolemember'
- 'CREATE LOGIN'
- 'sysadmin'
filter_tools:
Image|endswith:
- '\ssms.exe'
- '\sqlservr.exe'
condition: selection and not filter_tools
falsepositives:
- DBAs running sqlcmd/osql for legitimate administration; baseline authorized admin workstations and service accounts
level: high
---
title: Network Connection to MSSQL From Non-Database Server Host
id: 5f1a9c34-6d82-4b7e-8c41-2b6e9f3a7d18
status: experimental
description: Detects inbound connections to TCP 1433 on hosts running sqlservr.exe from sources outside expected application server patterns. Pivot in your environment to alert only when the source is not the known Bp Premier application tier.
references:
- https://nvd.nist.gov/vuln/detail/CVE-2026-114119
- https://attack.mitre.org/techniques/T1021/
author: Security Arsenal
date: 2026/04/06
tags:
- attack.lateral_movement
- attack.t1021
logsource:
category: network_connection
product: windows
detection:
selection:
Image|endswith: '\sqlservr.exe'
DestinationPort: 1433
Initiated: 'false'
condition: selection
falsepositives:
- Legitimate Bp Premier application server connections; tune by whitelisting the known application-tier IP addresses before production deployment
level: medium
// Hunt: sqlservr.exe spawning command interpreters (xp_cmdshell behavior) — CVE-2026-114119
// Scope to your Bp Premier database servers for the highest signal-to-noise ratio.
let lookback = 14d;
let sqlServers =
DeviceProcessEvents
| where TimeGenerated > ago(30d)
| where FileName =~ "sqlservr.exe"
| summarize by DeviceName;
DeviceProcessEvents
| where TimeGenerated > ago(lookback)
| where InitiatingProcessFileName =~ "sqlservr.exe"
| where DeviceName in (sqlServers)
| where FileName in~ ("cmd.exe","powershell.exe","pwsh.exe","net.exe","whoami.exe","certutil.exe","bitsadmin.exe","rundll32.exe","regsvr32.exe","mshta.exe","wscript.exe","cscript.exe")
| project TimeGenerated, DeviceName, AccountName, FileName, ProcessCommandLine, InitiatingProcessCommandLine, SHA256
| order by TimeGenerated desc;
// Hunt: Network connections to MSSQL (1433) from unexpected hosts on Bp Premier DB servers
// Requires Defender for Endpoint or equivalent network telemetry. Whitelist the application tier.
let appTierIPs = dynamic(["10.0.0.0/8_placeholder_replace_with_app_server_IPs"]);
DeviceNetworkEvents
| where TimeGenerated > ago(7d)
| where LocalPort == 1433
| where InitiatingProcessFileName =~ "sqlservr.exe" or LocalPort == 1433
| extend RemoteIPType = iff(ipv4_is_private(RemoteIP), "private", "public")
| summarize Connections = count(), FirstSeen = min(TimeGenerated), LastSeen = max(TimeGenerated)
by DeviceName, RemoteIP, RemoteIPType, InitiatingProcessFileName
| order by Connections desc;
-- Velociraptor artifact: enumerate MSSQL processes, their children, and 1433 listeners
-- Deploy as a hunt scoped to Windows hosts in the clinical/server VLAN.
SELECT Pid, Ppid, Name, Exe, CommandLine, Username, CreateTime
FROM pslist()
WHERE Name =~ '(?i)sqlservr'
OR Exe =~ '(?i)sqlservr'
-- Second query in the same artifact: find children of sqlservr.exe (xp_cmdshell evidence)
LET sql_pids = SELECT Pid FROM pslist() WHERE Name =~ '(?i)sqlservr'
SELECT Pid, Ppid, Name, Exe, CommandLine, Username, CreateTime
FROM pslist()
WHERE Ppid in (SELECT Pid FROM sql_pids)
-- Third query: who is listening on and connected to 1433
SELECT Pid, Name, LocalAddr, LocalPort, RemoteAddr, RemotePort, State
FROM netstat()
WHERE LocalPort = 1433 OR RemotePort = 1433
# CVE-2026-114119 verification and interim hardening — run on the Bp Premier SQL Server host
# 1) Check installed Bp Premier version (adjust path if installed elsewhere)
$bpPaths = @("C:\Program Files\Best Practice Software", "C:\Program Files (x86)\Best Practice Software")
foreach ($p in $bpPaths) {
if (Test-Path $p) {
Get-ChildItem $p -Recurse -Filter *.exe -ErrorAction SilentlyContinue |
Select-Object FullName, @{N='Version';E={$_.VersionInfo.ProductVersion}} |
Sort-Object Version -Descending | Select-Object -First 5
}
}
# 2) Check whether xp_cmdshell is currently enabled on the local instance (requires sqlcmd)
# A value of 1 on a system where you never enabled it is a serious red flag.
sqlcmd -S localhost -Q "SELECT name, value_in_use FROM sys.configurations WHERE name IN ('xp_cmdshell','Ad Hoc Distributed Queries','clr enabled');" -W
# 3) Review recent failed and successful SQL logins if SQL Server login auditing is enabled
Get-WinEvent -FilterHashtable @{LogName='Application'; Id=18453,18454,18456} -MaxEvents 50 -ErrorAction SilentlyContinue |
Select-Object TimeCreated, Id, Message | Format-List
# 4) Interim network-layer mitigation: restrict 1433 to the Bp Premier application server ONLY
# Replace 10.10.20.15 with your actual application-tier IP before running.
$appServerIP = "10.10.20.15"
New-NetFirewallRule -DisplayName "MSSQL 1433 - Bp Premier App Tier Only (CVE-2026-114119)" `
-Direction Inbound -Protocol TCP -LocalPort 1433 -RemoteAddress $appServerIP -Action Allow
New-NetFirewallRule -DisplayName "MSSQL 1433 - Block All Other Sources (CVE-2026-114119)" `
-Direction Inbound -Protocol TCP -LocalPort 1433 -Action Block
# 5) Confirm SQL Server service account — if it runs as SYSTEM or a domain admin, that is your
# post-exploitation blast radius. Downgrade to a gMSA or least-privilege account per vendor guidance.
Get-CimInstance Win32_Service -Filter "Name LIKE 'MSSQL%'" |
Select-Object Name, StartName, State
Remediation
-
Upgrade to Bp Premier 1.14.1.1128 or later immediately. This is the vendor release that resolves CVE-2026-114119. Coordinate through Best Practice Software's support channel — clinical downtime windows are real, but a CVSS 9.8 network-exploitable sysadmin credential justifies an emergency change. Verify the installed version post-upgrade.
-
Segment the database server now — do not wait for the patch. The SQL instance should be reachable on TCP/1433 from the Bp Premier application tier and nothing else. No workstation VLAN, no guest network, no broad vendor VPN scope. Use host firewall rules (script above) plus network ACLs as defense in depth. Confirm the instance is absolutely not exposed to the internet — check your perimeter, and check Shodan/Censys for your public ranges.
-
Audit for prior compromise before and after patching. Pull SQL Server error logs and login audit trails (
ERRORLOGfiles under the instance'sLogdirectory) and look for successful sysadmin logins from unexpected source IPs,sp_configurechanges, new logins, andxp_cmdshellexecution. Check SQL Server Agent jobs for persistence. If the SQL service account is SYSTEM or domain-privileged, expand your forensic scope to the OS: review process creation, LSASS access, and lateral movement from the DB host. -
Reduce blast radius on the service account. Where supported by the vendor, run SQL Server under a least-privilege gMSA rather than SYSTEM or a domain service account. This does not fix the vulnerability, but it sharply limits what
xp_cmdshellyields an attacker. -
Verify login auditing is enabled on the SQL instance (both failed and successful logins) and that those logs ship to your SIEM. Without this, retrospective scoping is guesswork.
-
Rotate what you can. While the hardcoded application password itself cannot be changed pre-patch without breaking Bp Premier, any other SQL logins, linked-server credentials, or domain accounts that have touched this server should be treated as potentially compromised if you find evidence of unauthorized sysadmin access.
-
Monitor for KEV inclusion and vendor advisories. Given the trivial exploitability, this CVE is a strong candidate for active exploitation and CISA KEV addition. Subscribe to NVD change alerts for CVE-2026-114119 and to Best Practice Software's security communications: https://nvd.nist.gov/vuln/detail/CVE-2026-114119
The uncomfortable lesson here is one healthcare defenders know too well: clinical software stacks often run with architecture decisions — shared credentials, flat networks, privileged service accounts — that would never survive a design review today. You cannot rewrite your vendor's code, but you can make their database unreachable to everyone except the application tier, and you can make sqlservr.exe spawning cmd.exe the loudest alarm in your SOC. Do both this week.
Related Resources
Security Arsenal Penetration Testing Services AlertMonitor Platform Book a SOC Assessment vulnerability-management Intel Hub
Is your security operations ready?
Get a free SOC assessment or see how AlertMonitor cuts through alert noise with automated triage.