Progress Kemp LoadMaster — Pre-Auth RCE (CVE-2026-8037)

Uninitialized-heap OS command injection in the LoadMaster API — unauthenticated root code execution on the load balancer appliance.
Threat
CVE-2026-8037 · Kemp LoadMaster
Severity
EXPLOITED ITW
Type
Edge appliance · Pre-auth RCE
Access
Unauthenticated · Network
Version
v0.2 · 2026-07-02
Author
HuntPack
Confidence
High (vendor + PoC)
01

Executive Summary

CVE-2026-8037 (CVSS 9.6) is a pre-authentication remote code execution flaw in the Progress Kemp LoadMaster load-balancing appliance. The root cause is an uninitialized-heap bug in the API's escape_quotes() routine: the function allocates a buffer with malloc() and never writes a null terminator, so when the escaped value is folded into a validuser command line via __sprintf_chk() and executed through system(), an attacker can read past the buffer into adjacent heap memory and inject shell metacharacters — yielding full root code execution with no credentials.

watchTowr Labs published a working exploitation analysis on 2026-06-29, and The Hacker News reported active exploitation attempts beginning the same day. The exploit is delivered as a single POST to the /accessv2 endpoint: an apiuser value of four single quotes overwrites allocator metadata, while dozens of padding JSON keys (g0g60+) spray the heap so the injected command lands in the shell.

Highest-value defensive angle: LoadMaster is a network appliance — it does not run the Falcon sensor — so the primary detections live in ingested appliance access/syslog (the /accessv2 exploit body and any post-exploit shell/egress) plus network- and host-side telemetry on the Falcon-covered assets behind the load balancer. Patch to 7.2.63.2 and restrict API exposure first; hunt second.

Defender priority: Treat any internet-reachable LoadMaster on GA ≤ 7.2.63.1 / LTSF ≤ 7.2.54.17 with the API enabled as presumed-targeted. Patch or take the API off the perimeter today, then hunt the /accessv2 access logs for the heap-spray body and the appliance's egress for reverse-shell callbacks.

02

Source Review & Web Hunter Notes

TierSourceKey FindingCarry Fwd
1watchTowr Labs (2026-06-29)Root-cause + working exploit: uninitialized malloc() in escape_quotes(), missing null terminator, validuser/system() chain, /accessv2 POST, four-quote apiuser + g0g60+ heap spray.yes
1The Hacker News (2026-07-01)Active exploitation attempts observed commencing 2026-06-29; CVSS 9.6; pre-auth; API-enabled devices only.yes
1Progress PSIRT advisoryAffected GA ≤ 7.2.63.1 and LTSF ≤ 7.2.54.17; fixed in 7.2.63.2 (malloccalloc + explicit null termination).yes
2SC Media / GBHackers / cybersecuritynews (2026-06-30)Corroborating coverage; exploitation via crafted /accessv2 requests; monitor for anomalous validuser calls and unexpected appliance egress.partial

Intel note: No public atomic IOCs (attacker IPs, payload hashes, C2) were published at time of writing — exploitation is characterized by the request shape against /accessv2 and post-exploit behavior, not by fixed indicators. IOC blocks below use placeholders to be filled from local findings.

03

Hunt Brief & Attack Chain

Hypotheses (fidelity-ordered)

  1. H1 (high): An unauthenticated POST to /accessv2 carrying four single quotes in apiuser and repeated g0g60+ padding keys is an exploitation attempt for CVE-2026-8037 — visible in ingested LoadMaster web/API access logs.
  2. H2 (medium): A successfully exploited LoadMaster will spawn a shell (sh/bash) or fetch tooling (curl/wget) as a child of its web/API service — visible in appliance OS syslog/auditd if forwarded.
  3. H3 (medium): A compromised appliance beacons or pulls a payload outbound to an unusual destination — visible in perimeter firewall/proxy logs as egress from the LoadMaster management IP to non-update destinations.
  4. H4 (medium): Post-foothold, the actor pivots from the appliance to a backend/web host that is Falcon-covered, spawning recon or web-shell processes off the web-server parent.
  5. H5 (medium): Pre-exploit reconnaissance shows a single source probing /accessv2 across multiple web-facing assets.

Attack chain

StepBehaviorTelemetryHunt Angle
1 · ReconScan for exposed LoadMaster API / probe /accessv2Web/proxy access logsQ5
2 · ExploitPOST /accessv2 with heap-spray body + four-quote apiuserLoadMaster access logsQ1
3 · Executevaliduser/system() runs injected shell command as rootAppliance syslog/auditdQ3
4 · Pull / BeaconAppliance fetches tooling or opens reverse shellFirewall/proxy egress logsQ2
5 · PivotMove from appliance to backend hostFalcon process/network on backendQ4
04

Consolidated IOC Table

No vendor-published atomic IOCs at time of writing. The indicators below are behavioral / request-shape indicators derived from the watchTowr analysis; fill placeholder infrastructure values from local hunt findings.

TypeValueConfActionContext
Request pathPOST /accessv2medhuntTargeted endpoint (legitimate for API automation — qualify with body)
Body patternapiuser = four single quotes ('''')highhuntHeap-metadata overwrite primitive
Body patternRepeated JSON keys g0g60+highhuntHeap spray padding
BehaviorShell/tool child of appliance web servicemedhuntPost-exploit code execution
BehaviorUnexpected egress from LoadMaster mgmt IPmedhuntReverse shell / payload pull
IPREPLACE_WITH_ATTACKER_SRCmedpivotSource IP of confirmed exploit POST
VersionGA ≤ 7.2.63.1 / LTSF ≤ 7.2.54.17highenrichVulnerable if API enabled
05

Affected Surface & Telemetry Matrix

SurfaceRequired TelemetryPriorityGap Risk
LoadMaster API (/accessv2)Appliance web/API access logs → NG-SIEMcriticalhigh — often not forwarded
LoadMaster OSAppliance syslog/auditd (process exec)highhigh — limited on appliance
Perimeter egressFirewall/proxy connection logshighmedium
Backend / web hostsFalcon ProcessRollup2 / NetworkConnectIP4mediumlow — Falcon-covered

Telemetry reality: the appliance itself is the blind spot. If LoadMaster access/syslog is not already shipped to NG-SIEM, stand that up (Section 13) — it converts H1–H3 from theoretical to live.

06

ATT&CK Mapping

TacticTechniqueObserved BehaviorQuery / Control
ReconnaissanceT1595.002 · Active Scanning: Vuln ScanningProbing /accessv2 across assetsQ5
Initial AccessT1190 · Exploit Public-Facing ApplicationPre-auth RCE via /accessv2Q1 · Patch
ExecutionT1059.004 · Command & Scripting: Unix Shellsystem() runs injected command as rootQ3
Command & ControlT1071.001 · Application Layer Protocol: WebAppliance egress / reverse shellQ2
PersistenceT1505.003 · Server Software Component: Web ShellWeb shell on backend after pivotQ4
07

Native Audit-Log Hunts (non-CQL)

  • LoadMaster WUI: System Configuration → Logging Options → review the API/access log for POST /accessv2 entries with abnormally large bodies or repeated keys.
  • Version check: confirm running firmware against GA ≤ 7.2.63.1 / LTSF ≤ 7.2.54.17; anything at or below is vulnerable when the API is enabled.
  • API exposure: confirm whether the RESTful API is enabled and whether the management/API interface is reachable from untrusted networks.
  • Config drift: review LoadMaster admin users, SSH authorized keys, and cron/scheduled jobs for unauthorized additions (post-exploit persistence on the appliance).
  • Perimeter: pull firewall logs for outbound sessions sourced from the LoadMaster management IP outside its normal update/NTP/DNS pattern.
08

CrowdStrike LogScale CQL Hunt Queries

Pick your tenant's cloud first — every "Open in Falcon" button below uses this selection.
Q1 · /accessv2 heap-spray exploitation body
CONF HIGHFP LOWCOST LOW

Looks for: POST requests to /accessv2 in ingested LoadMaster access logs whose body carries the four-single-quote apiuser primitive or the g0g60+ heap-spray padding keys. Point the query at the repo/parser where the appliance logs land.

// HUNT: LoadMaster pre-auth RCE — /accessv2 heap-spray exploitation body (CVE-2026-8037)
// MITRE: T1190
// CONF: high  FP: low  COST: low | REQUIRES: LoadMaster API/access logs ingested to NG-SIEM
// FALSE POSITIVES: none expected — the four-quote apiuser + g-key spray is exploit-specific
#repo="appliance_web"
| url=/accessv2/i
| method=/^POST$/i
| request_body=/(''''|"g\d+"\s*:)/
| table([@timestamp, src_ip, method, url, status, request_body], limit=200)
Q2 · Appliance anomalous egress (reverse shell / tool pull)
CONF MEDFP MEDCOST LOW

Looks for: outbound sessions in ingested firewall/proxy logs sourced from the LoadMaster management IP to destinations outside its normal update/NTP/DNS pattern. FP: legitimate firmware update, NTP, and DNS egress — exclude those destinations and set REPLACE_LM_MGMT_IP.

// HUNT: LoadMaster appliance anomalous egress after exploit (reverse shell / tool pull)
// MITRE: T1071.001, T1105
// CONF: medium  FP: medium  COST: low | REQUIRES: perimeter firewall/proxy logs; LoadMaster mgmt IP known
// FALSE POSITIVES: appliance update/NTP/DNS egress
// TUNING: exclude sanctioned update/NTP/DNS destinations and the vendor update CIDR
#repo="firewall"
| src_ip=/^REPLACE_LM_MGMT_IP$/
| dest_port!=443
| dest_port!=53
| dest_port!=123
| table([@timestamp, src_ip, dest_ip, dest_port, action, bytes_out], limit=200)
Q3 · Shell/command spawned by appliance web service
CONF MEDFP LOWCOST LOW

Looks for: a shell or download utility spawned as a child of the LoadMaster web/API service in appliance OS syslog/auditd — the direct footprint of the injected validuser command. Requires appliance process logging to be forwarded.

// HUNT: LoadMaster shell/command execution via validuser injection (post-exploit)
// MITRE: T1059.004
// CONF: medium  FP: low  COST: low | REQUIRES: LoadMaster OS syslog/auditd ingested
// FALSE POSITIVES: rare — appliance internals seldom spawn interactive shells
#repo="appliance_syslog"
| process_name=/^(sh|bash|nc|ncat|curl|wget|python|perl)$/i
| parent_process=/(httpd|nginx|lighttpd|bal|lmadmin|validuser)/i
| table([@timestamp, host, parent_process, process_name, command], limit=200)
Q4 · Backend host — recon/webshell off web parent (pivot)
CONF MEDFP MEDCOST MED

Looks for: on Falcon-covered backend/web hosts behind the load balancer, recon or shell utilities spawned as children of a web-server process — post-pivot activity. FP: legitimate health checks, deployment tooling, and admin scripts run under the web account — scope ParentBaseFileName to the real web binary and exclude monitoring agents.

// HUNT: Backend host — inbound from LB segment then recon/webshell spawn
// MITRE: T1190, T1505.003
// CONF: medium  FP: medium  COST: medium | REQUIRES: Falcon on backend/web hosts
// FALSE POSITIVES: health-check, deploy, and admin tooling under the web account
// TUNING: scope ParentBaseFileName to the actual web-server binary; exclude monitoring agents
#event_simpleName=/ProcessRollup2|SyntheticProcessRollup2/
| ParentBaseFileName=/(w3wp|httpd|nginx|java|node|php-fpm)/i
| FileName=/^(whoami|id|uname|hostname|cat|curl|wget|bash|sh|powershell)(\.exe)?$/i
| table([ComputerName, aid, ParentBaseFileName, FileName, CommandLine, UserName], limit=200)
Q5 · External probing of /accessv2 (pre-exploit recon)
CONF MEDFP MEDCOST LOW

Looks for: a single source IP touching /accessv2 across many web-facing assets in ingested web/proxy logs — the recon sweep before exploitation. FP: sanctioned vulnerability scanners and KEMP API automation — exclude their source IPs.

// HUNT: External probing of /accessv2 across web-facing assets (pre-exploit recon)
// MITRE: T1595.002
// CONF: medium  FP: medium  COST: low | REQUIRES: web/proxy access logs ingested
// FALSE POSITIVES: internal vuln scanners, legitimate KEMP API automation
// TUNING: exclude sanctioned scanner and automation source IPs
#repo="web_access"
| url=/accessv2/i
| groupBy([src_ip], function=count(as=hits))
| sort(hits, order=desc)
09

CrowdStrike Custom IOA Recommendations

The appliance is not Falcon-covered, so IOAs apply to the backend/pivot hosts (Q4). Promote the rest as Scheduled Searches over the ingested appliance repos.

IOA / SearchPatternExclusionsPath
Web-parent shell spawn (IOA)Parent = web-server binary; Child = sh/bash/whoami/curl/wgetDeploy/health/admin tooling accountsCustom IOA on web-tier host group
/accessv2 exploit body (Sched. Search)Q1NoneScheduled Search → SOC alert
Appliance shell child (Sched. Search)Q3NoneScheduled Search → SOC alert

Keep Q2 and Q5 as investigate-only hunts — their FP profile is environment-dependent and needs tuning before alerting.

10

Machine-Readable IOC Appendix

No atomic IOCs published — the blocks below use REPLACE_WITH_… placeholders. Fill from confirmed local findings before importing.

Falcon IOC Management CSVbulk import
type,value,action,severity,expiration,description,tags
ipv4,REPLACE_WITH_ATTACKER_SRC,detect,high,2027-01-02,CVE-2026-8037 exploit source,campaign:KempLoadMaster
domain,REPLACE_WITH_C2,detect,high,2026-10-02,LoadMaster reverse-shell C2,campaign:KempLoadMaster
sha256,REPLACE_WITH_TOOL_HASH,prevent,critical,2027-01-02,post-exploit tool pulled to appliance,campaign:KempLoadMaster
Behavioral Signaturesrequest / process shape
POST /accessv2 with apiuser value of four single quotes ('''')
POST /accessv2 body with repeated JSON keys g0..g60+
appliance web service spawning sh/bash/nc/curl/wget
outbound session from LoadMaster mgmt IP to non-update destination
web-server process spawning whoami/id/uname/curl on backend host
Named Tooling / Endpointcontext
CVE: CVE-2026-8037 (CVSS 9.6)
Product: Progress Kemp LoadMaster (load balancer appliance)
Endpoint: /accessv2 (POST) — RESTful API
Root cause: uninitialized malloc() in escape_quotes(), missing null terminator
Chain: escape_quotes -> __sprintf_chk -> validuser -> system()
Primitive: four-quote apiuser + g0..g60+ heap spray
Patch / Exposure Auditverify fixed
Fixed: LoadMaster 7.2.63.2 (malloc -> calloc + null termination)
Vulnerable: GA <= 7.2.63.1  |  LTSF <= 7.2.54.17  (when API enabled)
Audit: confirm firmware version in WUI (Home -> firmware)
Audit: confirm RESTful API enabled state and mgmt-interface reachability
Action: patch, then restrict API to trusted mgmt network only
11

Detection Validation Gates

GateCheckPass Criterion
Telemetry readyAre LoadMaster access + OS logs reaching NG-SIEM?Q1/Q3 return rows for known-good API traffic
Benign baselineRun Q5 for 7 daysKnown scanner/automation IPs identified & excluded
Positive testReplay a benign four-quote / g-key body from an authorized test hostQ1 fires on the test request
PromotionQ1/Q3 FP rate over baseline windowZero benign hits → promote to alert
12

Hardening — Tiered

Immediate (this week)
  • Patch to 7.2.63.2 (or later) — the fix converts malloccalloc and adds explicit null termination. Primary control. (Vendor advisory · M1051 Update Software)
  • Remove the management/API interface from the internet. Bind the WUI/RESTful API to a dedicated management VLAN reachable only via VPN/jump host. (M1030 Network Segmentation)
  • Disable the RESTful API if not actively used. (M1042 Disable or Remove Feature)
Near term (1–4 weeks)
  • Ship LoadMaster access + system logs to NG-SIEM so H1–H3 become detectable. (M1047 Audit)
  • Restrict API source IPs at the firewall to a named admin allow-list. (M1037 Filter Network Traffic)
  • Egress-filter the appliance: allow only vendor-update, NTP, and DNS destinations outbound from the LoadMaster mgmt IP. (M1037)
Strategic (1–3 months)
  • Appliance inventory + lifecycle: track all LoadMaster instances, firmware, and API exposure in CMDB with an SLA for edge-device patching. (M1051)
  • Front the management plane with MFA-gated PAM and session recording. (M1032 Multi-factor Authentication)
13

Deployable Playbooks

A · Confirm version & API exposure (appliance CLI / WUI)

# In the LoadMaster WUI:
#   Home -> confirm firmware version (compare to GA 7.2.63.1 / LTSF 7.2.54.17)
#   Certificates & Security -> Remote Access -> confirm "Enable API Interface" state
#   System Configuration -> Interfaces -> confirm mgmt bound to non-Internet interface
# Any device at/below the vulnerable versions with API enabled = patch now.

B · Firewall egress allow-list for the appliance (illustrative iptables/edge policy)

# Replace 192.0.2.10 with the LoadMaster management IP.
# Permit only vendor-update / NTP / DNS egress; drop the rest (reverse-shell containment).
-A FORWARD -s 192.0.2.10 -p udp --dport 53  -j ACCEPT
-A FORWARD -s 192.0.2.10 -p udp --dport 123 -j ACCEPT
-A FORWARD -s 192.0.2.10 -d UPDATE_CIDR -p tcp --dport 443 -j ACCEPT
-A FORWARD -s 192.0.2.10 -j DROP

C · Stand up appliance log forwarding (syslog)

# LoadMaster WUI: System Configuration -> Logging Options -> Syslog Options
#   Set the SIEM collector as the Info/Notice/Warn/Error/Critical syslog target.
# Confirm ingestion, then point Q1/Q3 #repo at the parser that receives it.
14

Containment Runbook

PhaseActionsOwnerEvidence
IsolatePull the mgmt/API interface off untrusted networks; block the appliance egress (Playbook B); if compromise confirmed, fail traffic to a standby and take the unit offline.Network / InfraFirewall change ticket; Q2 egress hits
EradicateRebuild/reimage the appliance from vendor-clean firmware 7.2.63.2+; do not trust in-place cleanup of a root-compromised appliance. Rotate all secrets the appliance held (API keys, certs, admin creds).InfraFirmware hash; cert/key rotation log
RecoverRestore config from a known-good pre-incident backup; re-enable API only on the mgmt VLAN; verify version and egress policy.InfraVersion readout; Q1 clean
Hunt-backRun Q4 across backend hosts for pivot activity in the exposure window; run Q1/Q5 back to the earliest ingested logs.SOC / HuntQ4 results; timeline
15

Detection Coverage Map

TechniqueBehaviorCQLIOACoverage
T1595.002/accessv2 recon sweepQ5Partial
T1190/accessv2 exploit bodyQ1Sched. SearchGood (if logs ingested)
T1059.004Shell child on applianceQ3Sched. SearchPartial (appliance logs)
T1071.001 / T1105Appliance egress / tool pullQ2Partial
T1505.003Web shell / recon on backendQ4IOAGood
On-appliance persistenceNew admin/SSH key/cron on LoadMasterGAP — no EDR on appliance; use §7 native checks

Validation: the pack is only as strong as appliance log ingestion. Until LoadMaster access/syslog reaches NG-SIEM (Playbook C), Q1–Q3 are aspirational and the primary live coverage is Q4 on backend hosts plus §7 native WUI checks. Close the ingestion gap first.

16

Hunt Summary Ticket

TITLE:      CVE-2026-8037 — Progress Kemp LoadMaster Pre-Auth RCE Hunt
SEVERITY:   Critical (CVSS 9.6, exploited in the wild)
SCOPE:      All Kemp LoadMaster appliances (GA <= 7.2.63.1 / LTSF <= 7.2.54.17, API enabled)
HYPOTHESIS: Unauthenticated POST /accessv2 with four-quote apiuser + g0..g60 heap
            spray yields root RCE; look for the request body, appliance shell/egress,
            and backend pivot.
QUERIES:    Q1 exploit body | Q2 appliance egress | Q3 appliance shell child
            Q4 backend recon/webshell | Q5 /accessv2 recon sweep
DO FIRST:   1) Patch to 7.2.63.2  2) Take API off the perimeter
            3) Confirm LoadMaster logs reach NG-SIEM  4) Run Q1 + Q5
FINDINGS:   ____________________________________________
GAPS:       No EDR on the appliance; on-appliance persistence needs native WUI review
ACTIONS:    Patch, segment API, egress-filter, forward logs, hunt-back backend hosts
OWNER:      HuntPack
VERSION:    v0.2 · 2026-07-02
17

Changelog

v0.22026-07-24CQL correctness pass. All table() calls now carry an explicit row limit: the default is 200 and truncation is silent, so a capped result was indistinguishable from a complete one. Atomic-IOC sweeps (filters over 5+ hashes or C2 IPs) use limit=max so a wide infection is never silently under-scoped; behavioural hunts use limit=200, where exceeding the cap indicates the query needs tuning. Where present, event names that do not exist in the Falcon data model were corrected (e.g. ServiceInstalled is a Sysmon concept, not a Falcon event; ElfFileWritten is ELFFileWritten) — such queries could never return a row. No detection logic, fields, or IOCs changed.
v0.12026-07-02Initial HuntPack — 5 CQL hunts, IOA + Scheduled-Search recommendations, tiered hardening, appliance log-forwarding and egress-containment playbooks, containment runbook. Built from watchTowr (2026-06-29) + The Hacker News (2026-07-01) reporting.
18

References

TierSourceUsed ForAccess Date
1watchTowr Labs — Kemp LoadMaster uninitialized-heap to pre-auth RCERoot cause, exploit chain, /accessv2 body shape2026-07-02
1The Hacker News — LoadMaster pre-auth RCE faces active exploitationActive exploitation timeline, CVSS, affected scope2026-07-02
1The Hacker News — LoadMaster flaw lets attackers run root commands pre-authDisclosure detail, affected/fixed versions2026-07-02
2SC Media — LoadMaster vulnerability actively exploitedCorroboration2026-07-02
2Cyber Security News — critical LoadMaster pre-auth RCECorroboration, defender guidance2026-07-02