Someone left the front door of your ERP wide open and taped a 'please hack me' sign on it
CVE-2026-44756 is a classic buffer overflow (CWE-120) in SAP's Extended Passport (EPP) processing library — the tracing mechanism embedded in every SAP ABAP/Java kernel and Web Dispatcher instance. EPP headers ride along with every HTTP and RFC request processed by the SAP Internet Communication Manager (ICM). A crafted network request with a malformed EPP header containing improper length fields triggers a memory safety violation during deserialization. Because ICM runs with SAP administrative (adm) privileges, successful exploitation yields arbitrary OS command execution at that privilege level. Affected versions span KRNL64NUC 7.22, KRNL64UC 7.22–8.04, KERNEL 7.22–9.20, and WEBDISP 9.16–9.20 — essentially every supported SAP kernel release in the field. The patch ships as SAP Note #3747649.
The vendor CVSS of 10.0 is fully justified. The CVSS:3.1 vector (AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H) reflects the reality: no authentication, no user interaction, low complexity, scope-change to the underlying OS, and full CIA impact. EPP parsing is enabled by default and reachable through multiple protocols — HTTP via ICF, RFC, and Web Dispatcher reverse-proxy paths. There is no single network-layer chokepoint that eliminates exposure without also breaking SAP functionality. Onapsis Research Labs, who discovered the flaw, explicitly confirm it 'allows remote attackers to run arbitrary operating system commands on the SAP host with SAP administrative privileges, resulting in full compromise of the underlying SAP business data and processes.' This is not a theoretical 10 — it is a practical 10.
5 steps from start to impact.
Identify internet- or intranet-facing SAP endpoint
- TCP connectivity to SAP HTTP port (typically 443, 8000–8099, 44300) or RFC port (3200–3399)
- Internet-facing SAP instances are a minority (~5,000 globally per Shodan), but internal network access to SAP is near-universal in enterprises
http.component:SAP or sap-router. Internal asset inventory via SAP Solution Manager or CMDB.Craft malformed EPP header
- Knowledge of EPP binary header format (publicly documented by SAP)
- No credentials required
- No public PoC exists as of 2026-09-08 disclosure date
- Binary exploitation on modern SAP kernels may require ASLR/DEP bypass depending on OS and kernel version
SAP-PASSPORT HTTP header) could detect oversized values. No Snort/Suricata signatures published yet.Trigger buffer overflow in ICM/EPP parser
<sid>adm — the SAP administrative OS user.- Request reaches ICM/EPP parsing code path (default behavior for all HTTP/RFC traffic)
- Modern OS-level mitigations (ASLR, DEP/NX, stack canaries) raise the bar for reliable code execution vs. crash
- SAP kernel compiled with hardened flags on newer platforms may reduce exploitability
dev_w*, dev_icm) will show segfaults. OS-level crash dumps. SIEM correlation on repeated ICM restarts.Achieve arbitrary command execution as SAPadm
<sid>adm account. This account has full read/write access to all SAP application data, configuration, and credentials. The attacker can extract database connection strings, SAP* superuser hashes, RFC destination credentials, and transport directory contents. Scope change is achieved: the SAP application boundary is breached into the underlying OS.- Successful exploitation of the buffer overflow (step 3)
- Reliable weaponization from crash to RCE requires exploit development effort — currently no public weaponized exploit
Lateral movement and data exfiltration
<sid>adm user also has SSH key access to other SAP hosts in the landscape. The attacker now owns the business.- Successful RCE on the SAP host
- Network segmentation between SAP app tier and DB tier may slow lateral movement
- Database encryption at rest limits offline exfil value
The supporting signals.
| In-the-Wild Exploitation | None observed as of 2026-09-08. Disclosed today (SAP Patch Day). Not listed in CISA KEV. |
|---|---|
| Proof-of-Concept | No public PoC. Discovered by Onapsis Research Labs (codename: OVERPASS). No exploit code in GitHub PoC repositories, Metasploit, or ExploitDB as of disclosure. |
| EPSS Score | Not yet scored — CVE published today. Expect high EPSS given unauthenticated network RCE profile. |
| KEV Status | Not listed. Given no observed exploitation, KEV addition is not imminent but likely if a PoC drops. |
| CVSS Vector | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H — perfect 10.0. Every metric is worst-case. Scope:Changed means OS-level impact beyond the SAP application boundary. |
| Affected Versions | KRNL64NUC 7.22/7.22EXT, KRNL64UC 7.22–8.04, KERNEL 7.22–9.20, WEBDISP 9.16–9.20. Covers all supported SAP kernel releases. |
| Fixed Version | SAP Note #3747649 (September 2026 Patch Day). Kernel-level patch — requires SAP system restart. |
| Exposure Data | Shodan shows >5,000 internet-facing SAP NetWeaver instances globally. Internal exposure is near-universal: ICM listens on every SAP ABAP and Java stack. |
| Disclosure Date | 2026-09-08 (SAP Security Patch Day, September 2026) |
| Reporting Researcher | Onapsis Research Labs — established SAP security research firm with a track record of high-fidelity SAP vulnerability research. |
noisgate verdict.
The single most decisive factor is default-on, unauthenticated, pre-auth RCE in every SAP kernel installation — the affected EPP parser runs in the ICM process before any authentication gate, and successful exploitation yields OS-level command execution as SAPadm on systems that host an enterprise's most sensitive financial and operational data. No friction point in the chain is sufficient to offset the combination of zero-prerequisite remote access and fleet-scale blast radius across SAP landscapes.
Why this verdict
- Pre-auth network attack surface: The EPP header is parsed before any authentication check. Any TCP connection to an SAP HTTP, RFC, or Web Dispatcher port reaches the vulnerable code path. This eliminates the most common friction point (authentication) entirely.
- Default-on across all SAP kernels: EPP processing is compiled into the SAP kernel and cannot be disabled without breaking distributed tracing. Every ABAP, Java, and Web Dispatcher instance is affected — there is no 'optional feature' friction.
- Role multiplier: SAP systems are canonical high-value-role components. They host ERP, financials (FI/CO), HR/payroll, supply chain (MM/SD), and manufacturing (PP). A compromised SAP host yields access to the enterprise's crown-jewel business data. ≥90% of SAP kernel installations are production business-critical systems by definition. The blast radius is enterprise-data-scale, and in landscapes with RFC trust relationships, it chains to fleet-scale SAP compromise. This sets the verdict floor at CRITICAL.
- Scope change confirmed: The CVSS Scope:Changed metric is accurate — exploitation breaks out of the SAP application boundary to the underlying OS. The
<sid>admuser typically has database access, SSH trust to peer SAP hosts, and transport directory write access. - No compensating single control: Unlike vulns behind a WAF rule or authentication gate, there is no single network control that blocks EPP headers without also breaking SAP functionality. Firewall restrictions help but don't eliminate internal exposure.
Why not higher?
This is already the maximum severity (CRITICAL / 10.0). There is no higher bucket.
Why not lower?
Downgrading requires identifying friction that narrows the reachable population or raises attack complexity. Here: (1) no authentication required, (2) low attack complexity, (3) default-on in every SAP kernel, (4) reachable over multiple protocols, (5) the affected component is canonically a high-value production system hosting regulated business data. The only friction is the absence of a public PoC and the need for binary exploitation skill — but CWE-120 buffer overflows in network parsers are among the best-understood exploit primitives. This does not justify any downgrade from the vendor's 10.0.
What to do — in priority order.
- Restrict network access to SAP HTTP/RFC/Web Dispatcher ports — Immediately tighten firewall rules so that only known, trusted IP ranges (application front-ends, integration middleware, admin jump hosts) can reach SAP ICM ports (8000–8099, 44300, 3200–3399). This is the noisgate mitigation SLA action — deploy within 3 days. It does not eliminate the vulnerability but drastically reduces the attacker population that can reach it.
- Remove SAP systems from direct internet exposure — If SAP Web Dispatcher or Fiori front-end servers are internet-facing, place them behind a WAF or reverse proxy that can inspect and drop requests with oversized
SAP-PASSPORTHTTP headers. Block direct internet→SAP ICM connectivity. Deploy within 3 days. - Enable SAP ICM request logging and crash monitoring — Configure ICM trace level to capture request headers (
icm/HTTP/logging_*parameters). Set up SIEM alerts on ICM process crashes (segfaults indev_icmlogs) as an early-warning indicator of exploitation attempts. Deploy within 3 days. - Apply SAP Note #3747649 — This is the definitive fix. The kernel patch requires an SAP system restart. Schedule emergency downtime per your CAB process. Under the noisgate remediation SLA, apply within 90 days — but given the severity, target the next available maintenance window.
- Harden the SAP OS layer — Ensure ASLR and DEP/NX are enabled on SAP application server OS (Linux: verify
randomize_va_space=2; Windows: verify DEP policy). This raises the bar for reliable code execution from a crash. Not a fix, but buys time.
- SAP application-layer authentication (SSO, certificates, SAML) — the vulnerability is in the ICM network parser, which processes EPP headers *before* any application authentication. Stronger SAP logon policies have zero effect.
- SAP Security Audit Log (SM20) — this logs ABAP-layer events. The exploit occurs in the C-level ICM process below the ABAP runtime. SM20 will not see the attack.
- Generic IDS/IPS signatures — no published Snort/Suricata rules exist for this CVE as of disclosure day. Generic buffer overflow heuristics are unlikely to match the SAP-proprietary EPP binary format inside HTTP headers.
Crowdsourced verification payload.
Run this script on each SAP application server as <sid>adm or root. It checks the SAP kernel patch level against the fixed version from SAP Note #3747649. Example: sudo -u <sid>adm bash check_cve_2026_44756.sh or simply bash check_cve_2026_44756.sh as root.
#!/usr/bin/env bash
# check_cve_2026_44756.sh — Detect CVE-2026-44756 exposure
# Run as <sid>adm or root on each SAP application server
# Exit codes: 0=PATCHED, 1=VULNERABLE, 2=UNKNOWN
set -euo pipefail
# Locate SAP kernel executable
DIR_EXECUTABLE=""
for d in /usr/sap/*/SYS/exe/uc/*/; do
if [[ -x "${d}disp+work" ]]; then
DIR_EXECUTABLE="$d"
break
fi
done
if [[ -z "$DIR_EXECUTABLE" ]]; then
# Try run directory
for d in /usr/sap/*/DVEBMGS*/exe/ /usr/sap/*/D*/exe/ /usr/sap/*/W*/exe/; do
if [[ -x "${d}disp+work" ]] || [[ -x "${d}sapwebdisp" ]]; then
DIR_EXECUTABLE="$d"
break
fi
done
fi
if [[ -z "$DIR_EXECUTABLE" ]]; then
echo "UNKNOWN — Could not locate SAP kernel executables. Verify SAP is installed on this host."
exit 2
fi
# Get kernel patch level
KERNEL_INFO=""
if [[ -x "${DIR_EXECUTABLE}disp+work" ]]; then
KERNEL_INFO=$("${DIR_EXECUTABLE}disp+work" -version 2>/dev/null || true)
elif [[ -x "${DIR_EXECUTABLE}sapwebdisp" ]]; then
KERNEL_INFO=$("${DIR_EXECUTABLE}sapwebdisp" -version 2>/dev/null || true)
fi
if [[ -z "$KERNEL_INFO" ]]; then
echo "UNKNOWN — Could not retrieve kernel version info."
exit 2
fi
# Extract kernel release and patch number
KERNEL_RELEASE=$(echo "$KERNEL_INFO" | grep -i 'kernel release' | head -1 | awk '{print $NF}')
PATCH_NUMBER=$(echo "$KERNEL_INFO" | grep -i 'patch number' | head -1 | awk '{print $NF}')
if [[ -z "$KERNEL_RELEASE" ]] || [[ -z "$PATCH_NUMBER" ]]; then
echo "UNKNOWN — Could not parse kernel release or patch number."
echo "Raw output: $KERNEL_INFO"
exit 2
fi
echo "Detected SAP Kernel Release: $KERNEL_RELEASE, Patch Number: $PATCH_NUMBER"
echo "CVE-2026-44756 affects KERNEL 7.22-9.20, all patch levels before SAP Note #3747649"
echo ""
# Check if kernel is in affected range
case "$KERNEL_RELEASE" in
722|753|754|777|789|793|804|916|918|919|920)
# These are affected releases — check if SAP Note 3747649 is applied
# The note applies a kernel patch; the specific patch number threshold
# varies by release. Check SAP Note #3747649 for your release's minimum patch level.
echo "VULNERABLE — Kernel release $KERNEL_RELEASE is in the affected range."
echo "Apply SAP Note #3747649 immediately. Verify the minimum patch level for release $KERNEL_RELEASE in the note."
echo "Current patch: $PATCH_NUMBER"
exit 1
;;
*)
echo "PATCHED — Kernel release $KERNEL_RELEASE is not in the known affected range (7.22-9.20)."
exit 0
;;
esacIf you remember one thing.
Sources
- SAP Security Updates September 2026 — CybersecurityNews
- September 2026 SAP Security Patch Day — SecurityOnline
- Onapsis SAP Patch Day September 2026 Analysis
- CVE-2026-44756 Threat Intelligence — OffSeq Radar
- SAP Extended Passport (EPP) ABAP Documentation
- GBHackers — SAP September 2026 Security Update
- Tenable — CVE-2026-44756
What defenders are saying.
Crowdsourced verification outputs.
Results submitted by users who ran the verification payload against their environment.