CVE-2021-47985
Executive Summary
CVE-2021-47985 is a privilege escalation vulnerability in Brother SAPSprint 7.60, a component of Brother printing software. The flaw stems from an unquoted service path in the SAPSprint service binary, which allows local attackers to achieve privilege escalation to LocalSystem by placing a malicious executable within the Program Files directory structure. Successfully exploited, this vulnerability grants complete control over the affected system, including the ability to install software, modify system configurations, and create new user accounts with full administrative privileges.
The vulnerability is present in the SAPSprint service binary version 7.60; however, the exact affected version range remains unconfirmed, and no official patch has been released by the vendor at the time of analysis. The CISA Known Exploited Vulnerabilities (KEV) catalog does not list CVE-2021-47985, and no public proof-of-concept or exploit code has been observed. The EPSS score of 0.00165 (6.1th percentile) indicates a low probability of active exploitation in the wild.
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
Vulnerability Mechanism
CVE-2021-47985 is classified as an unquoted service path vulnerability (CWE-427: Uncontrolled Search Path Element). When a Windows service is configured with an unquoted path to its executable, the Windows Service Control Manager (SCM) interprets spaces in the path as delimiters, potentially resolving the path in unintended ways.
In the case of Brother SAPSprint 7.60, the service binary is located in the Program Files directory. The unquoted path vulnerability arises because the service entry point does not properly enclose the full executable path in double quotes. For instance, a service path such as C:\Program Files\Brother\SAPSprint\sprintsrv.exe (without surrounding quotes) can be misinterpreted by Windows. When the system attempts to locate the executable file, it performs a sequential search:
C:\Program.exeC:\Program Files\Brother.exeC:\Program Files\Brother\SAPSprint\sprintsrv.exe
If an attacker can place a malicious executable named Program.exe or Brother.exe (depending on the exact path structure) in the C:\ or C:\Program Files\ directories, respectively, Windows will execute that file instead of the intended service binary.
Attack Surface
The attack surface for this vulnerability is limited to local environments. An attacker requires local access to the system, either as an unprivileged user, a standard user account, or via another compromised process. The precondition for exploitation is the ability to write files to the root of the C:\ drive or to C:\Program Files\, which typically requires elevated privileges. However, in certain configurations — such as systems with relaxed NTFS permissions, shared workstations, or environments with misconfigured ACLs — standard users may have write access to these locations.
The vulnerability is triggered automatically when the SAPSprint service starts, which occurs by default at system boot (automatic service start). No user interaction with the service is required post-boot; the service starts with LocalSystem privileges, the highest privilege level on a Windows system.
Code-Level Explanation
Insufficient technical detail is available to provide a code-level analysis. The NVD description does not specify the exact service name, the full service binary path, or the specific registry key used for service configuration. The vulnerability class, however, is well-documented. Windows services configured without quoting the ImagePath value in the registry key HKLM\SYSTEM\CurrentControlSet\Services\<ServiceName> are inherently vulnerable to this attack. The SAPSprint service in Brother 7.60 falls into this category.
Exploitation Scenarios
Step 1: Reconnaissance and Target Identification
An attacker with local access to a system running Brother SAPSprint 7.60 begins by enumerating running services and their configurations. Using built-in Windows tools or PowerShell commands (e.g., sc query, Get-WmiObject win32_service), the attacker inspects the service image path. The presence of an unquoted path containing spaces — such as C:\Program Files\ — signals a potential target. The attacker confirms no patch has been applied and that the service is configured to auto-start.
Step 2: Flaw Triggrer
The attacker determines whether write access is available to the C:\ root directory or to C:\Program Files\. On many enterprise systems, standard users lack write privileges to C:\. However, on older Windows versions (pre-Windows 10) or systems with misconfigured filesystem permissions, write access may be granted. The attacker then crafts a malicious executable (e.g., a reverse shell payload or a binary that adds a new admin user) and names it to match one of the intermediate path segments found in the service path. For example, if the service path is C:\Program Files\Brother\SAPSprint\..., the attacker places the payload as C:\Program.exe.
Step 3: Payload Execution
The attacker restarts the system or triggers a service restart. When Windows initiates the SAPSprint service, the SCM resolves the unquoted image path and executes C:\Program.exe before attempting the full path. The malicious payload runs with the LocalSystem account, granting the attacker SYSTEM-level privileges. The payload could install a backdoor, exfiltrate data, disable security controls, or create a new account with administrative rights for persistent access.
Step 4: Post-Exploitation Impact
With LocalSystem privileges, the attacker has unrestricted access to the compromised host. Practical outcomes include:
- Establishing persistent remote access via a scheduled task, service, or registry modification.
- Extracting credentials from LSASS or SAM databases.
- Lateral movement to other machines on the network using captured credentials or tools like PsExec or WMI.
- Disabling security software (AV/EDR) to evade detection.
- Ransomware deployment or data exfiltration.
No public PoC is available for this CVE; the attack chain is inferred from the unquoted service path vulnerability class and the NVD description.
Impact Assessment
Business Impact
Successful exploitation of CVE-2021-47985 results in complete system compromise with LocalSystem privileges. The CVSS score of 8.5 (High severity) reflects significant impacts across Confidentiality, Integrity, and Availability, each rated High in the vector (CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H). The Scope component is marked as "Changed," indicating that a compromise of the affected component can impact resources beyond its security scope — in this case, the entire operating system and potentially the broader network.
Affected Systems
Systems running Brother SAPSprint 7.60, typically part of printing solutions deployed with Brother multi-function printers or label printers, are affected. The software is commonly found in office environments, small businesses, and enterprise print infrastructure. Since the patch status is listed as UNPATCHED with a confidence of 0/4, all installations of SAPSprint 7.60 remain vulnerable.
Blast Radius
The exploitation requires prior local access, which reduces the external attack surface. However, in multi-user environments (e.g., shared workstations, terminal servers, or VDI), any user with local credentials can exploit this flaw to gain system-level rights, making it a high-impact post-exploitation vector. The low attack complexity (AC:L) and lack of user interaction (UI:N) further increase the risk in such environments.
Detection Guidance
Sigma Rule
title: Suspicious Program.exe Execution in C Root
id: 3e45a137-111f-4b1f-8f23-3931b20c97f8
status: experimental
description: Detects execution of arbitrary binaries named Program.exe or Brother.exe from root directories, indicating potential unquoted service path exploitation
author: Valtersit Threat Intel
date: 2025/04/12
tags:
- attack.privilege_escalation
- attack.t1574
logsource:
category: process_creation
product: windows
detection:
selection:
Image|endswith:
- '\Program.exe'
- '\Brother.exe'
Image|startswith:
- 'C:\'
condition: selection
falsepositives:
- Legitimate applications named Program.exe (rare)
- Custom enterprise software
level: high
YARA Rule
rule Brother_SAPSprint_UnquotedServicePath_Payload
{
meta:
author = "Valtersit Threat Intel"
description = "Detects payloads targeting the Brother SAPSprint unquoted service path vulnerability"
date = "2025-04-12"
reference = "CVE-2021-47985"
severity = "high"
strings:
$s1 = "SAPSprint" ascii wide nocase
$s2 = "Program Files" ascii wide nocase
$s3 = "LocalSystem" ascii wide nocase
$s4 = "CreateProcess" ascii wide nocase
$s5 = "AddUser" ascii wide nocase
$s6 = "net user" ascii wide nocase
condition:
(uint16(0) == 0x5A4D) and any of them
}
Suricata IDS Rule
alert http any any -> any any (
msg:"CVE-2021-47985 - Brother SAPSprint Unquoted Service Path Potential Payload Download";
flow:established,to_client;
content:"Program.exe"; nocase;
content:"Brother.exe"; nocase;
content:"SAPSprint"; nocase;
pcre:"/\/(Program|Brother)\.exe$/i";
classtype:attempted-admin;
sid:20250001;
rev:1;
metadata:created_at 2025_04_12, updated_at 2025_04_12;
)
Elastic Detection
process where event.type == "start" and
process.executable == "C:\\Program.exe" or
process.executable == "C:\\Program Files\\Brother.exe" or
process.executable like~ "C:\\*\\Brother.exe"
Splunk SPL Query
index=windows sourcetype=WinEventLog:Security EventCode=4688
| where match(New_Process_Name, "^C:\\\\Program\\.exe$") OR match(New_Process_Name, "^C:\\\\Program Files\\\\Brother\\.exe$")
| table _time, User, New_Process_Name, Parent_Process_Name, CommandLine
| sort -_time
Wazuh OSSEC Rule
<group name="windows-privilege-escalation">
<rule id="100201" level="12">
<if_group>windows_sysmon</if_group>
<field name="image">C:\Program\.exe|C:\Program Files\Brother\.exe</field>
<description>CVE-2021-47985 - Potential Brother SAPSprint unquoted service path exploitation detected: $(image)</description>
<mitre>
<id>T1574</id>
</mitre>
<group>attack.privilege_escalation,</group>
</rule>
</group>
Mitigation & Patch Guidance
Patch Status: The vulnerability is classified as UNPATCHED with a confidence score of 0/4. No patch evidence, vendor fix, or security update is available from any tracked source. The vendor (Brother) has not released a public advisory or patched version of SAPSprint 7.60 at the time of this writing.
Immediate Mitigations (No Patch Available)
Enforce Quoting on the Service Path: Manually edit the registry key
HKLM\SYSTEM\CurrentControlSet\Services\<SAPSprintServiceName>\ImagePathto enclose the full path in double quotes, e.g.,"C:\Program Files\Brother\SAPSprint\sprintsrv.exe". Reboot the system or restart the service. Note: Verify the actual service name on the affected host, as the NVD description does not provide this detail.Restrict Write Access to Directories: Audit and tighten NTFS permissions on
C:\andC:\Program Files\to ensure standard users cannot write files. Apply the principle of least privilege across the file system.Disable or Remove SAPSprint Service: If the SAPSprint component is not essential to business operations, disable the service via the Services console or by setting
Startto4(Disabled) in the registry service configuration.
Patch/Upgrade Steps
Check the Brother support website for any updated versions of SAPSprint or the associated printing software suite. Upgrade to the latest available version. If SAPSprint 7.60 is the latest version, instead adopt the mitigations above and monitor Brother's security advisories for a future patched release.
Long-Term Hardening
- Implement a vulnerability management program that inventories all third-party software, including printing utilities, and tracks CVE exposure.
- Use security configuration baselines (e.g., CIS Benchmarks) for Windows to enforce proper service path quoting and restrictive filesystem ACLs.
- Deploy EDR/AV solutions with behavioral detection for anomalous process execution from root directories.
- Conduct regular privilege escalation assessments on critical endpoints using tools like OpenVAS, Nessus, or manual
sc qc/wmic service getaudits to identify unquoted paths. - Enforce application whitelisting (e.g., Windows Defender Application Control) to prevent execution of unapproved binaries even if placed on disk.
References
- NVD Entry: https://nvd.nist.gov/vuln/detail/CVE-2021-47985 — Official NVD record with CVSS 8.5 score and description.
- CWE-427 — Uncontrolled Search Path Element: https://cwe.mitre.org/data/definitions/427.html — MITRE class reference for unquoted service path weaknesses.
- MITRE ATT&CK — T1574 Hijack Execution and Flow: https://attack.mitre.org/techniques/T1574/ — Technique mapping for service path hijacking.
- Brother Official Software Downloads: https://support.brother.com/ — Vendor site to monitor for potential future patches; no advisory has been published as of analysis date.
- CISA Known Exploited Vulnerabilities Catalog: https://www.cisa.gov/known-exploited-vulnerabilities-catalog — Confirms CVE-2021-47985 is NOT listed in KEV.
Threat Actor Campaigns and Exploit-in-the-Wild Evidence: No known threat actor campaigns, exploit code, or in-the-wild exploitation has been publicly documented for this CVE. The EPSS probability score of 0.00165 (6.1% percentile) corroborates a low likelihood of active exploitation. However, the vulnerability class (unquoted service path) is a well-known and frequently chained technique in privilege escalation post-exploitation, so persistent threat actors may still target this flaw in environments where Brother SAPSprint is deployed.
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.