CTIPilot

SAP NetWeaver AS ABAP

product · product:sap-netweaver-as-abap single-source

Coverage timeline
1
first 2026-09-21 → last 2026-09-21
Peak priority
routine
1 routine
Sources cited
2
2 hosts
Sections touched
1
research
Co-occurring entities
0
no co-occurrence
ATT&CK techniques
1
pinned v19.2 · see below

Hunting pivots

Releases covered
SAP NetWeaver AS ABAP
ATT&CK techniques

ATT&CK techniques

1 technique observed across 1 entry, derived from entry metadata and body evidence, never asserted without a published entry behind it · pinned to MITRE ATT&CK v19.2 · compare on the matrix · Navigator layer (JSON)

Execution TA0002

T1059Command and Scripting Interpreter×1

Adversaries may abuse command and script interpreters to execute commands, scripts, or binaries. These interfaces and languages provide ways of interacting with computer systems and are a common feature across many different platforms. Most systems come with some built-in command-line interface and scripting capabilities, for example, macOS and Linux distributions include some flavor of Unix Shell while Windows installations include the Windows Command Shell and PowerShell.

Evidence: 2026-09-21/sap-sm49-sm69-external-command-execution-blind-spot · ATT&CK page ↗

Story timeline

  1. 2026-09-21An independent researcher's lab test finds SAP's Security Audit Log carries no event for OS command execution via SM49/SM69 or RFC, only OS-level auditd sees the command on every path
    researchA SAP transaction that runs arbitrary OS commands leaves almost nothing in the log SAP itself designed to audit it

Where this entity is cited

  • research1

Source distribution

  • detect.fyi1 (50%)
  • malware.news1 (50%)

explore in graph

Entries about SAP NetWeaver AS ABAP (1)

2026-09-21 · view entry permalink →

ROUTINENATOF3

An independent researcher's lab test finds SAP's Security Audit Log carries no event for OS command execution via SM49/SM69 or RFC, only OS-level auditd sees the command on every path

An independent researcher, publishing on Detect FYI / Medium and syndicated in full via malware.news, demonstrates on a self-owned SAP NetWeaver AS ABAP 7.52 lab that SAP's Security Audit Log (SAL) carries no event type or field for OS-level "external command" execution launched via transactions SM49/SM69 or over RFC, a structural gap in the log's schema, not a misconfiguration that can be turned on (Detect FYI, 2026-09-20). External commands run through the sapxpg helper process as the <sid>adm OS-owner account, and the researcher found that most Linux-applicable SAP-delivered command definitions accept additional runtime parameters, so the binary actually executed at runtime can differ entirely from the one an administrator defined; demonstrated by using a find-with--exec command definition to run /usr/bin/id instead of its intended target. On the interactive SM49 path, the SAL records only a generic "Transaction SM49 started" event, with no command, binary or parameter data, even with every audit class enabled. On the RFC path, the SAL at best records an "RFC call" event naming only the invoked function module (SXPG_COMMAND_EXECUTE), never the command or its arguments. Only the background-job path (SM36) records the full command and its output, and it does so in the job log rather than the Security Audit Log.

OS-level auditd is the only source that sees the full argument vector on every path, via the sapxpg parent-process chain (SAP work process → sapxpg → target binary), but the researcher flags three practical failure modes: the -a task,never audit rule, which some SUSE/SLES builds ship active and others omit entirely, silently suppresses execve auditing for new tasks; runtime auditctl changes do not survive reboot unless persisted under /etc/audit/rules.d/; and a bare execve rule is noisy unless filtered on a ParentImage ending in sapxpg, since that name matches both the SAP work-process binary and the SAP Host Agent's own sapxpg (the latter running as root). Because the SAL always knows the SAP user but never the command, and auditd always knows the command but only the OS account, the researcher recommends bridging the two by time-correlating the SAL's SAP-user timestamp (or, on the background path, simply reading the self-sufficient job log) against the auditd execve record within a tight window to reconstruct the full "this SAP user ran this OS command as <sid>adm" statement.

Triage: a sapxpg child process running a benign, expected command is routine SAP operation and not itself a signal. The researcher's recommended discriminator is content-based: a high-severity alert on any sapxpg-child command line carrying injection gadgets (-exec, an interpreter invocation, shell metacharacters) versus a lower-severity baseline rule matching any sapxpg child regardless of content, to establish what normal looks like in a given environment before tuning the higher-severity rule.

The only trace is a generic “Transaction SM49 started.” There is no event for the command, the binary, the parameters, the -exec payload, or the npladm context. A SIEM ingesting this log sees "a user opened SM49" and nothing more.

auditd tells you what ran but not which SAP user triggered it (every SAP-spawned command is uid=<sid>adm), while the SAL knows the SAP user but not the command.

Detect FYI
research21 Sep 04:47Zsingle-sourceOpen finding ↗