CVE-2025-32975

Quest KACE SMA Improper Authentication Exploitation Detected

Detects exploitation attempts against CVE-2025-32975, an improper authentication vulnerability (CWE-287) in Quest KACE Systems Management Appliance (SMA). This KEV-listed vulnerability allows attackers to bypass authentication controls, potentially enabling unauthorized access to the SMA management interface and downstream managed endpoints. Successful exploitation could lead to full appliance compromise and lateral movement across managed systems.

Vulnerability Intelligence

KEV — Known Exploited

Affected Software

Vendor
Quest
Product
KACE Systems Management Appliance (SMA)

Weakness (CWE)

Timeline

Disclosed
April 20, 2026

CVSS

10.0
Critical (9.0–10)

CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H

Write-up coming soon

What is CVE-2025-32975 Quest KACE SMA Improper Authentication Exploitation Detected?

Quest KACE SMA Improper Authentication Exploitation Detected (CVE-2025-32975) maps to the Initial Access and Persistence and Lateral Movement tactics — the adversary is trying to get into your network in MITRE ATT&CK.

This page provides production-ready detection logic for Quest KACE SMA Improper Authentication Exploitation Detected, covering the data sources and telemetry it touches: Azure Sentinel CommonSecurityLog, Microsoft Defender for Endpoint DeviceNetworkEvents, Web Application Firewall Logs. The queries below are rated critical severity at medium confidence, and ship for 7 SIEM platforms — KQL, SPL, Elastic, QRadar, Sumo, YARA-L, LogScale.

MITRE ATT&CK

Tactic
Initial Access Persistence Lateral Movement
Microsoft Sentinel / Defender
kusto
let KACEPorts = dynamic([80, 443, 8080, 8443]);
let SuspiciousEndpoints = dynamic(["/admin", "/userui", "/api", "/service/ambari", "/api/users", "/admin/index.php"]);
union DeviceNetworkEvents, CommonSecurityLog
| where TimeGenerated >= ago(24h)
| where DestinationPort in (KACEPorts) or DestPort in (KACEPorts)
| extend RequestURL = coalesce(RequestURL, DestinationURL, ""), SrcIP = coalesce(SourceIP, RemoteIP, "")
| where RequestURL has_any (SuspiciousEndpoints)
| where isnotempty(SrcIP)
| summarize RequestCount = count(), DistinctEndpoints = dcount(RequestURL), FirstSeen = min(TimeGenerated), LastSeen = max(TimeGenerated), Endpoints = make_set(RequestURL, 20) by SrcIP, DestinationIP, DestinationPort
| where RequestCount > 10 or DistinctEndpoints > 3
| extend RiskScore = case(
    RequestCount > 50 and DistinctEndpoints > 5, "High",
    RequestCount > 20, "Medium",
    "Low"
  )
| project FirstSeen, LastSeen, SrcIP, DestinationIP, DestinationPort, RequestCount, DistinctEndpoints, Endpoints, RiskScore
| order by RequestCount desc

Detects anomalous HTTP request patterns to Quest KACE SMA administrative endpoints that may indicate authentication bypass exploitation. Looks for high-volume or multi-endpoint probing from single source IPs targeting known KACE management paths.

critical severity medium confidence

Data Sources

Azure Sentinel CommonSecurityLog Microsoft Defender for Endpoint DeviceNetworkEvents Web Application Firewall Logs

Required Tables

CommonSecurityLog DeviceNetworkEvents

False Positives

  • Legitimate IT administrators performing routine KACE SMA management tasks from known IP ranges
  • Automated vulnerability scanners or internal security tools scanning the KACE appliance
  • Patch management or monitoring tools making frequent API calls to the KACE SMA interface
  • Load balancer health checks or uptime monitoring probes targeting KACE endpoints

Sigma rule & cross-platform mapping

The detection logic for Quest KACE SMA Improper Authentication Exploitation Detected (CVE-2025-32975) above is provided in a vendor-neutral form so you can deploy it on any SIEM. The same logic is shipped here as native KQL (Microsoft Sentinel / Defender), SPL (Splunk), Elastic (Elastic Security (EQL)), QRadar (IBM QRadar (AQL)), Sumo (Sumo Logic CSE), YARA-L (Google Chronicle / SecOps), LogScale (CrowdStrike LogScale (CQL)) queries. In Sigma terms, this detection targets the following logsource:

logsource:
  category: network_connection
  product: windows

Browse the community-maintained Sigma rules for this technique:


Testing Methodology

Validate this detection against 3 adversary techniques from Atomic Red Team. Each test below lists the behaviour to exercise and the telemetry you should expect to see. Executable commands and cleanup steps are available with Pro.

  1. Test 1KACE SMA Unauthenticated Admin Endpoint Enumeration

    Expected signal: Web server access logs showing GET requests to /admin, /userui, /api/users, /service/ambari without authentication cookies; network flow records showing HTTP connections to KACE SMA on port 443

  2. Test 2KACE SMA Authentication Bypass Simulation via Missing Auth Header

    Expected signal: Web server logs showing requests to /admin/, /admin/index.php, /api/users with empty or missing authentication cookies; HTTP response codes indicating whether bypass was successful (200/302) or properly rejected (401/403)

  3. Test 3Post-Exploitation KACE Agent Script Deployment Simulation

    Expected signal: KACE SMA audit log entry showing script creation by the test account; network logs showing authentication followed by POST request to /api/script; SIEM alert on new script creation event from an account that recently logged in from an unusual IP


Response Playbook

Triage

  1. Identify the source IP(s) generating suspicious requests to KACE SMA endpoints and determine if they are internal trusted hosts, external IPs, or known threat infrastructure using threat intelligence lookups.
  2. Review the specific HTTP endpoints accessed (e.g., /admin, /userui, /api/users) and correlate response codes — 200/302 responses to admin paths without valid session tokens indicate active exploitation.
  3. Check Quest KACE SMA authentication logs (typically in /var/log/kace/ or accessible via SMA admin console under Reporting > Audit Log) for failed authentication attempts followed by successful access from the same source IP.
  4. Determine the KACE SMA version and patch level via the admin console (Settings > About) and cross-reference with Quest advisory to assess if the instance is a vulnerable version.
  5. Enumerate what actions were taken post-authentication: check KACE audit logs for agent deployments, script executions, policy changes, or new user creation that would indicate attacker persistence.

Containment

  1. Immediately block the offending source IP(s) at the network perimeter firewall and web application firewall, and isolate the KACE SMA appliance from external network access if external-facing exploitation is confirmed.
  2. Disable or revoke all active KACE SMA administrative sessions via Settings > Users in the admin console, force re-authentication for all users, and rotate all KACE service account credentials and API tokens.
  3. Apply Quest's recommended patches or mitigations from KB4379499 immediately; if patching cannot be performed immediately, restrict network access to the KACE SMA management interface to known administrator IP ranges only.

Evidence Collection

  1. Export and preserve KACE SMA audit logs from the admin console (Reporting > Audit Log) covering the period of suspected exploitation, ensuring logs capture user activity, policy changes, and agent deployments.
  2. Capture network traffic logs (firewall, proxy, or packet capture) showing all connections to the KACE SMA during the incident window, preserving source IPs, timestamps, HTTP methods, endpoints, and response codes.
  3. Collect KACE agent deployment history from managed endpoints to identify any unauthorized software pushes, script executions, or configuration changes that may have been deployed via the compromised appliance.

Escalation Criteria

  • ! Escalate to incident response if unauthorized admin accounts have been created in KACE SMA, or if the appliance has been used to deploy unauthorized agents, scripts, or software to managed endpoints — indicating lateral movement.
  • ! Escalate immediately if the KACE SMA manages endpoints in sensitive network segments (OT/ICS, PCI, healthcare) or if evidence shows the attacker accessed KACE's stored credentials, managed device inventories, or patch deployment capabilities.

Investigation Guide

Forensic Artifacts

  • > KACE SMA web server access logs showing HTTP requests to /admin, /userui, and API endpoints with anomalous authentication patterns
  • > KACE audit log entries (Reporting > Audit Log in admin console) showing unexpected user creations, policy modifications, or agent package deployments
  • > Network flow records showing the KACE SMA initiating unexpected outbound connections to attacker-controlled infrastructure after compromise
  • > KACE managed endpoint logs showing unexpected software deployments, script executions, or configuration changes pushed from the compromised SMA

Tuning Guidance

This detection generates medium confidence alerts due to the difficulty of distinguishing legitimate admin activity from authentication bypass without KACE-specific session token validation. To reduce false positives: (1) Whitelist known KACE administrator source IPs using a reference watchlist and exclude them from alerting, (2) Integrate KACE SMA audit logs directly into your SIEM to correlate HTTP requests with authenticated sessions — unauthenticated requests to /admin paths become high-confidence detections, (3) Tune the request_count thresholds based on your organization's KACE usage patterns (heavily used appliances may need thresholds of 50+ requests), (4) Focus highest-priority alerting on new source IPs that have never previously accessed the KACE interface, especially if they originate outside your corporate IP space, (5) Correlate with Quest KB4379499 to determine if your specific KACE SMA version is in the affected range and adjust confidence accordingly.


Hunting Queries

Hunt for KACE SMA authentication bypass exploitation over the past 7 days by identifying requests to privileged endpoints with missing or minimal session cookies that may indicate pre-authentication access attempts.

Hunting — KQL
kql
CommonSecurityLog
| where TimeGenerated >= ago(7d)
| where DestinationPort in (80, 443, 8080, 8443)
| where RequestURL has_any ("/admin", "/userui", "/api/users", "/service")
| where isempty(AdditionalExtensions) or AdditionalExtensions !has "session"
| summarize count() by SourceIP, DestinationIP, RequestURL, bin(TimeGenerated, 1h)
| where count_ > 5
| order by count_ desc
Hunting — SPL
spl
index=web earliest=-7d
| where (uri_path="/admin*" OR uri_path="/userui*" OR uri_path="/api*")
| where isnull(cookie) OR len(cookie)<20
| stats count AS hits, values(uri_path) AS paths BY src_ip, dest_ip, dest_port, date_hour
| where hits > 5
| sort - hits

Hunt for KACE agent processes on managed endpoints initiating unexpected outbound connections to external IPs, which may indicate the KACE SMA was used to deploy malware or C2 implants after authentication bypass.

Hunting — KQL
kql
DeviceNetworkEvents
| where TimeGenerated >= ago(7d)
| where RemotePort in (80, 443, 8080, 8443)
| where InitiatingProcessName in~ ("kace", "kbot", "kagent")
| where ActionType == "ConnectionSuccess"
| where RemoteIPType != "Private"
| summarize ConnectionCount = count(), RemoteIPs = make_set(RemoteIP, 50) by DeviceName, InitiatingProcessName, RemotePort, bin(TimeGenerated, 1h)
| where ConnectionCount > 10 or array_length(RemoteIPs) > 3
Hunting — SPL
spl
index=endpoint sourcetype=crowdstrike:events OR sourcetype=sysmon
| where (process_name="kace*" OR process_name="kbot*" OR process_name="kagent*")
| where dest_ip NOT IN ("10.0.0.0/8", "172.16.0.0/12", "192.168.0.0/16")
| stats count AS outbound_connections, values(dest_ip) AS external_ips BY host, process_name, dest_port
| where outbound_connections > 5 OR mvcount(external_ips) > 2

Atomic Red Team Tests

Test 1 KACE SMA Unauthenticated Admin Endpoint Enumeration
linux

Simulates reconnaissance phase of CVE-2025-32975 exploitation by probing KACE SMA administrative endpoints without authentication to identify bypass opportunities. Lab environment only — requires isolated KACE SMA instance.

Command

bash
#!/bin/bash
KACE_HOST="192.168.100.50"  # Lab KACE SMA IP
KACE_PORT="443"
ENDPOINTS=("/admin" "/userui" "/api/users" "/service/ambari" "/admin/index.php" "/userui/login.php")
echo "[*] Starting unauthenticated KACE SMA endpoint enumeration"
for endpoint in "${ENDPOINTS[@]}"; do
  response=$(curl -sk -o /dev/null -w "%{http_code}" -m 10 \
    -H "User-Agent: Mozilla/5.0 (compatible; SecurityTest/1.0)" \
    "https://${KACE_HOST}:${KACE_PORT}${endpoint}")
  echo "[*] ${endpoint} -> HTTP ${response}"
  sleep 1
done
echo "[*] Enumeration complete"

Cleanup

bash
No cleanup required — read-only HTTP requests generate no persistent changes on target

Expected Telemetry

Web server access logs showing GET requests to /admin, /userui, /api/users, /service/ambari without authentication cookies; network flow records showing HTTP connections to KACE SMA on port 443

Expected Detection

SIEM alert triggered by multi-endpoint probing pattern from single source IP; WAF logs showing unauthenticated requests to administrative paths

Test 2 KACE SMA Authentication Bypass Simulation via Missing Auth Header
linux

Tests detection capability for requests to KACE SMA admin endpoints that omit authentication headers, simulating the improper authentication bypass pattern of CVE-2025-32975. Requires lab KACE instance.

Command

bash
#!/bin/bash
KACE_HOST="192.168.100.50"  # Lab KACE SMA IP
KACE_PORT="443"
echo "[*] Testing authentication bypass patterns"
# Test 1: Direct admin access without session cookie
echo "[+] Test 1: No authentication headers"
curl -sk -v -m 15 \
  -H "User-Agent: Mozilla/5.0" \
  -H "Accept: text/html,application/xhtml+xml" \
  "https://${KACE_HOST}:${KACE_PORT}/admin/" 2>&1 | grep -E "HTTP|Location|Set-Cookie"

# Test 2: Malformed session token
echo "[+] Test 2: Malformed/empty session token"
curl -sk -v -m 15 \
  -H "Cookie: KACE_COOKIE=" \
  -H "X-Forwarded-For: 127.0.0.1" \
  "https://${KACE_HOST}:${KACE_PORT}/admin/index.php" 2>&1 | grep -E "HTTP|Location|Set-Cookie"

# Test 3: API endpoint without bearer token
echo "[+] Test 3: API access without bearer token"
curl -sk -m 15 \
  -H "Content-Type: application/json" \
  "https://${KACE_HOST}:${KACE_PORT}/api/users" 2>&1 | python3 -m json.tool 2>/dev/null || echo "Non-JSON response"

Cleanup

bash
No persistent changes; all requests are stateless HTTP probes

Expected Telemetry

Web server logs showing requests to /admin/, /admin/index.php, /api/users with empty or missing authentication cookies; HTTP response codes indicating whether bypass was successful (200/302) or properly rejected (401/403)

Expected Detection

Detection rule triggering on requests to admin endpoints with missing/empty authentication cookies followed by non-401/403 responses; alerts on X-Forwarded-For header manipulation attempts

Test 3 Post-Exploitation KACE Agent Script Deployment Simulation
linux

Simulates post-exploitation activity after successful KACE SMA authentication bypass — specifically the deployment of a script to managed endpoints via KACE's machine action feature. Requires compromised or test KACE admin credentials in a lab environment.

Command

bash
#!/bin/bash
KACE_HOST="192.168.100.50"  # Lab KACE SMA IP
KACE_USER="lab_admin"
KACE_PASS="LabPassword123!"
SCRIPT_NAME="security_test_$(date +%s)"
echo "[*] Simulating post-exploitation KACE script deployment"

# Step 1: Authenticate to KACE SMA
echo "[+] Step 1: Authenticating to KACE SMA"
COOKIE_JAR=$(mktemp)
curl -sk -c "${COOKIE_JAR}" -m 15 \
  -d "login_name=${KACE_USER}&login_passwd=${KACE_PASS}" \
  "https://${KACE_HOST}/admin/login" -o /dev/null

# Step 2: Create a test script (echo command - harmless)
echo "[+] Step 2: Attempting to create test script via API"
curl -sk -b "${COOKIE_JAR}" -m 15 \
  -X POST \
  -H "Content-Type: application/json" \
  -d "{\"name\":\"${SCRIPT_NAME}\",\"script_type\":\"KScript\",\"enabled\":false,\"script_contents\":\"# Lab security test only\\necho 'kace_test_telemetry'\"}" \
  "https://${KACE_HOST}/api/script" | python3 -m json.tool 2>/dev/null

rm -f "${COOKIE_JAR}"
echo "[*] Test complete — review KACE audit logs for script creation event"

Cleanup

bash
Log into KACE SMA admin console, navigate to Scripting > Scripts, locate the script named 'security_test_*', and delete it. Verify deletion in Reporting > Audit Log.

Expected Telemetry

KACE SMA audit log entry showing script creation by the test account; network logs showing authentication followed by POST request to /api/script; SIEM alert on new script creation event from an account that recently logged in from an unusual IP

Expected Detection

Detection rule correlating KACE authentication event followed immediately by privileged action (script creation); UEBA alert on unusual administrative activity pattern; SIEM correlation rule matching initial access followed by software deployment tool usage (T1072)

Related Detections