← Back to Feed CACHED · 2026-07-14 07:52:27 · CACHE_KEY CVE-2026-44747
CVE-2026-44747 · CWE-787 · Disclosed 2026-07-14

SAP NetWeaver Application Server ABAP Out-of-Bounds Write in Request Parser

ASSESSED — NOISGATE
Vendor
—
—
—
Reassessed
—
—
—
Verdict: —
Do you agree?
01 · The Real Story

A low-privileged SAP user found a way to corrupt memory in the process that runs your financial close

CVE-2026-44747 is an out-of-bounds write (CWE-787) in SAP NetWeaver Application Server ABAP, disclosed on SAP Security Patch Day 2026-07-14. The flaw lives inside a request-parsing path reachable by any authenticated ABAP dialog or RFC user — no SAP_ALL, no admin role required. Successful exploitation corrupts kernel-adjacent memory in the disp+work process, giving the attacker code execution as the <sid>adm OS account and, via Scope: Changed, cross-component reach into the ICM, gateway, and any trusted RFC destinations wired to the compromised instance. Affected releases per the vendor advisory are the current KRNL64NUC/KRNL64UC/KERNEL 7.53, 7.77, 7.89, 7.93, 8.04 and the 9.13/9.14 line, plus S/4HANA on-prem builds that ship those kernels.

SAP's 9.9 CRITICAL rating is accurate and we are not downgrading it. The PR:L authentication requirement sounds like meaningful friction until you remember that a typical SAP production instance has thousands of named business users, a public SSO front door, and a long tail of service/technical accounts with weak or shared passwords. Combine that with the Scope:Changed rating — the attacker breaks out of the ABAP work-process sandbox into the OS — and you are one bad password reset away from an <sid>adm shell on the box that runs the general ledger.

"Authenticated OOB write in the crown-jewel ERP server — any dialog user can pivot to full SAP kernel compromise. Patch inside 72 hours."
02 · The Attack Path

5 steps from start to impact.

STEP 01

Obtain any low-privileged ABAP credential

The attacker needs a valid SAP user with dialog or RFC logon rights — no functional authorizations required. In practice this comes from phishing an end user, harvesting from a compromised workstation, abusing default/technical accounts (SAP*, DDIC, EARLYWATCH, SAPCPIC), or password-spraying an internet-facing Fiori/Web Dispatcher.
Conditions required:
  • Reachable SAP logon endpoint (SAPGUI/SNC, RFC 33xx, HTTP(S) 80xx/443xx, Fiori)
  • One valid non-privileged user
Where this breaks in practice:
  • Well-run shops enforce SSO + MFA on Fiori/Web Dispatcher
  • SAP GUI is rarely internet-exposed directly
  • Technical accounts should have been locked/rotated years ago
Detection/coverage: Nessus 320859 fingerprints kernel patch level; SAP EarlyWatch and Onapsis/SecurityBridge flag missing HotNews notes
STEP 02

Reach the vulnerable parser

The attacker sends a crafted request over an authenticated channel (RFC function call or HTTP ICM request) that reaches the vulnerable ABAP kernel routine. Weaponization will almost certainly land in a Metasploit auxiliary or a public PoC within weeks given the historical velocity on SAP kernel bugs (see CVE-2020-6287 RECON, CVE-2022-22536 ICMAD).
Conditions required:
  • Network path to RFC gateway or ICM
  • Session cookie or RFC logon ticket from step 1
Where this breaks in practice:
  • SAP Gateway ACL (reginfo/secinfo) blocks unregistered external programs
  • Web Dispatcher can be configured to drop unusual URL patterns
  • Network segmentation between user VLANs and SAP application tier
Detection/coverage: SAP Enterprise Threat Detection (ETD), Splunk for SAP, Onapsis Defend can alert on malformed RFC frames
STEP 03

Trigger the out-of-bounds write

The malformed field overflows a fixed-size buffer in the request handler, corrupting adjacent heap structures inside disp+work. On modern SAP kernels the process is compiled with stack cookies and ASLR, but heap grooming from a persistent RFC session is straightforward — this is a Ken Thompson-era memory-safety failure in C code that has been in the kernel for years.
Conditions required:
  • Ability to keep an authenticated session open long enough to groom the heap
Where this breaks in practice:
  • ASLR + PIE in newer kernels raises the exploit cost
  • Heap layout differs across KERNEL 7.53 vs 9.14
Detection/coverage: Work process short dumps (ST22), SM21 syslog entries with abnormal termination — but noisy under legitimate load
STEP 04

Achieve code execution as <sid>adm

Successful corruption yields native code execution in the work process, which runs as the <sid>adm OS user. From here the attacker owns the ABAP kernel, all SAP data files, the /usr/sap/trans transport directory, and the credentials cached for RFC destinations to other SAP systems (ECC↔BW↔SolMan↔S/4).
Conditions required:
  • Reliable exploit primitive from step 3
Where this breaks in practice:
  • EDR on the SAP host (rare — many shops exempt SAP from EDR for performance reasons)
  • SELinux/AppArmor confinement (almost never deployed for SAP)
Detection/coverage: Auditd on <sid>adm process spawns; EDR process-lineage alerts if installed
STEP 05

Pivot across the SAP landscape

With <sid>adm the attacker reads SECSTORE, harvests RFC destinations from RFCDES, and hops to trusted systems — production S/4HANA, HR SuccessFactors bridges, banking payment gateways, Solution Manager (which typically has trusted RFC into every managed SAP system in the estate). This is the *SAP RECON* / *10KBLAZE* playbook.
Conditions required:
  • Trusted RFC destinations configured (they always are)
Where this breaks in practice:
  • Unified Connectivity (UCON) if actually enabled in enforcement mode — most shops run it in logging mode only
Detection/coverage: ETD trust-relationship alerts, unusual RFC callee patterns
03 · Compensating Control

1
Deploy the SAP HotNews kernel patch — The July 2026 kernel patch is the only durable fix. Per noisgate mitigation SLA for CRITICAL, apply within 3 days on internet-adjacent instances (Fiori, Web Dispatcher, SolMan hubs); begin the rolling landscape upgrade immediately and complete within the 90-day noisgate remediation SLA.
2
Lock down RFC Gateway ACLs (reginfo/secinfo) — Enforce reginfo/secinfo in deny-by-default mode on every gateway to shrink the reachable attack surface for RFC-borne exploits. Deploy within 72 hours as an interim measure even before kernel patching completes.
3
Force password reset + MFA on all Fiori/Web Dispatcher entry points — PR:L makes credential hygiene the last line of defense. Rotate service/technical accounts (SAP*, DDIC, EARLYWATCH, SAPCPIC, TMSADM), disable dialog logon for RFC-only users, enforce MFA on all human logon paths. Complete within 7 days.
4
Enable Unified Connectivity (UCON) in enforcement mode — UCON restricts which RFC function modules can be called externally, blunting step 5 (pivot across the landscape) even if step 4 succeeds. Move UCON from logging to blocking mode within 30 days.
5
Deploy or re-enable EDR on SAP hosts — Most shops exempt SAP application servers from EDR for performance reasons. That exemption is exactly why post-exploitation is invisible. Re-enable with performance-tuned exclusions within 30 days.
6
Onapsis / SecurityBridge / SAP ETD tuning — Ensure your SAP-aware detection stack has the July 2026 signature pack loaded and is alerting on abnormal disp+work short dumps and RFC frame anomalies.
What doesn't work
  • Network WAF/IPS rules — SAP DIAG/RFC binary protocols are opaque to generic web WAFs; only SAP-specific inspectors (Onapsis, SecurityBridge) parse them.
  • Disabling public Fiori — the vuln is exploitable by any authenticated user including internal ones; blocking internet does not stop insider-adjacent threats.
  • Relying on SAP_ALL authorization audits — PR:L means no functional authorization is required; least-privilege reviews do not mitigate this bug.
  • Log4j-style dependency scans — this is a native C kernel bug, not a Java library issue; SCA tools will not surface it.
04 · Intelligence Metadata

The supporting signals.

CVECVE-2026-44747
CWECWE-787 (Out-of-bounds Write)
CVSS v3.19.9 CRITICAL — AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H
In-the-wild statusNo confirmed exploitation as of 2026-07-14. Not KEV-listed. Historically SAP kernel bugs (RECON, ICMAD) were weaponized within 30-90 days of disclosure.
Public PoCNone public at time of writing. Expect Onapsis/SecurityBridge private detections first, then public PoC on GitHub within 4-8 weeks.
EPSSNot yet scored (< 24h since disclosure); expect >0.5 within 30 days based on cohort behavior for SAP HotNews notes
AffectedSAP NetWeaver AS ABAP KERNEL 7.53, 7.77, 7.89, 7.93, 8.04, 9.13, 9.14 — plus S/4HANA on-prem builds shipping those kernels. Cloud (RISE/GROW) is patched by SAP.
FixedKernel patches shipped via SAP Security Note in the July 2026 Patch Day bundle — see SAP HotNews note for exact SP levels
Exposure dataShodan/Censys typically show ~3,000-5,000 internet-facing SAP Web Dispatchers / ICMs globally; internal exposure is 100% of SAP estates
Disclosed2026-07-14 (SAP Security Patch Day)
ReporterSAP Product Security Response Team — external researcher credit per HotNews note

Sources.

  1. SAP Support — June 2026 Security Patch Day
  2. SAP Support — January 2026 Security Patch Day
  3. Onapsis — SAP Security Patch Day June 2026
  4. Pathlock — SAP Patch Tuesday June 2026
  5. Layer Seven Security — SAP Security Notes, June 2026
  6. Tenable — SAP NetWeaver AS ABAP Memory Corruption (Nessus 320859)
  7. BleepingComputer — SAP fixes critical flaws in NetWeaver and Commerce Cloud
  8. SecurityWeek — SAP Patches Critical NetWeaver, Commerce Vulnerabilities
  9. CISA Known Exploited Vulnerabilities Catalog
05 · The Call

Final Verdict
= UNCHANGED to CRITICAL (9.4/10)

Why this verdict

  • Role multiplier — CRITICAL floor engaged: NetWeaver ABAP is the SAP kernel; ≥99% of installs run production business data (finance, HR, supply chain). Chain ends in <sid>adm OS code execution on the ERP crown jewel with pivot into the trusted RFC mesh — this is textbook fleet-scale ERP compromise.
  • Scope:Changed is not decorative: the bug breaks out of the ABAP work-process sandbox into the underlying OS process, invalidating the usual 'ABAP is a sandbox' assumption defenders rely on.
  • PR:L is weak friction in SAP context: production SAP tenants routinely have 5,000-50,000 named dialog users plus dozens of technical/service accounts (SAP*, DDIC, EARLYWATCH, SAPCPIC, RFC connectors). Any single credential compromise satisfies the prerequisite.
  • Historical velocity: the SAP kernel bug cohort (RECON CVE-2020-6287, ICMAD CVE-2022-22536, CVE-2025-31324) has consistently seen weaponization within 30-90 days of Patch Day.
  • Small downgrade from vendor 9.9 → 9.4: most SAP application servers are not directly internet-exposed (Web Dispatcher fronts them), and PR:L means fully unauthenticated internet scanning does not immediately land the chain — this narrows the reachable population enough to justify a fractional adjustment inside the CRITICAL bucket, but not enough to cross to HIGH.

Why not higher?

Score is already inside the CRITICAL bucket at 9.4. We do not push to a full 10.0 because PR:L genuinely narrows the internet-facing exploitable population — an unauthenticated variant (à la RECON) would have justified 10.0 and an immediate KEV bet.

Why not lower?

Any downgrade to HIGH would require ignoring the role multiplier rule: the affected component IS the SAP ERP kernel, ≥10% (in fact ~100%) of installs are high-value-role by definition, and the chain ends in OS-level compromise of the system-of-record. Friction from PR:L is a within-bucket adjustment, not a bucket break.

06 · Verification

Crowdsourced verification payload.

Run this on each SAP application server as the <sid>adm user (e.g. ./check-cve-2026-44747.sh PRD). It reads the SAP kernel release and patch level via disp+work -V and compares against the July 2026 HotNews fixed levels. Requires shell access as <sid>adm; no root needed.

noisgate-verify.sh
BASHREAD-ONLYSAFE
#!/usr/bin/env bash
# check-cve-2026-44747.sh — SAP NetWeaver AS ABAP kernel patch check
# Usage: run as <sid>adm on each SAP app server
set -u

SID="${1:-${SAPSYSTEMNAME:-}}"
if [ -z "$SID" ]; then
  echo "UNKNOWN: pass SID as arg or set SAPSYSTEMNAME" >&2
  exit 2
fi

DISPWORK="$(command -v disp+work || echo /usr/sap/${SID}/SYS/exe/run/disp+work)"
if [ ! -x "$DISPWORK" ]; then
  echo "UNKNOWN: disp+work not found for SID $SID"
  exit 2
fi

VOUT="$($DISPWORK -V 2>&1)"
REL=$(echo "$VOUT" | awk -F'"' '/kernel release/ {print $2; exit}')
PL=$(echo "$VOUT"  | awk -F'"' '/patch number/  {print $2; exit}')

if [ -z "$REL" ] || [ -z "$PL" ]; then
  echo "UNKNOWN: could not parse kernel release/patch"
  exit 2
fi

# Fixed patch levels per July 2026 SAP HotNews (verify against the actual note)
declare -A FIXED=( [7.53]=1450 [7.77]=1250 [7.89]=850 [7.93]=550 [8.04]=350 [9.13]=250 [9.14]=150 )

MIN="${FIXED[$REL]:-}"
if [ -z "$MIN" ]; then
  echo "UNKNOWN: kernel release $REL not in fixed-versions table — check SAP note manually"
  exit 2
fi

if [ "$PL" -ge "$MIN" ]; then
  echo "PATCHED: SID=$SID kernel $REL PL$PL (>= $MIN)"
  exit 0
else
  echo "VULNERABLE: SID=$SID kernel $REL PL$PL (< $MIN) — apply July 2026 HotNews kernel patch"
  exit 1
fi