CVE-2023-37031
Executive Summary
CVE-2023-37031 is a null pointer dereference vulnerability in the Mobile Management Entity (MME) component of Magma — an open-source software-defined mobile core network platform — affecting versions up to and including 1.8.0. A network-adjacent attacker can crash the MME process by sending a single S1AP eNB Configuration Transfer message that omits the required Target eNB ID information element. The impact is a denial of service against the LTE control plane, taking down mobility management, attach, and paging functions for all subscribers served by the affected MME.
This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.
No signup required
Technical Analysis
Magma is a disaggregated, software-defined mobile core network platform (LTE/EPC and 5G core) designed to run on commodity hardware. The MME is the central control-plane network function responsible for subscriber attach/detach, authentication, mobility tracking, idle-mode paging, and handover coordination between eNodeBs (eNBs). The MME communicates with eNBs over the S1-MME interface using the S1 Application Protocol (S1AP), which is transported over SCTP (standard S1-MME SCTP port is 36412).
The vulnerable procedure is the S1AP eNB Configuration Transfer message. This is a control-plane procedure used for SON (Self-Organizing Network) coordination, where one eNB asks the MME to transparently forward a configuration transfer container to a target eNB. In the S1AP message definition, the Target eNB ID information element identifies the intended recipient eNB. The NVD description indicates that when this required Target eNB ID field is absent from the received message, Magma's MME code follows a null pointer during message processing, causing the MME process to terminate.
The flaw is a classic missing-input-validation failure: the S1AP decoder accepts a message that violates the expected IE presence constraint, and the subsequent handler logic dereferences the resulting null pointer without a guard. No CWE was formally assigned in the NVD record, but the vulnerability class is CWE-476 (NULL Pointer Dereference). The CVSS vector and base score are N/A in the available data, which prevents direct severity scoring; the EPSS score is 0.00373 (30.5th percentile), indicating a low modeled probability of exploitation in the wild. CISA KEV does not list this CVE, and no public exploit code or Nuclei coverage is known.
Important patch caveat: the NVD description claims the issue is fixed in v1.9 at commit 08472ba98b8321f802e95f5622fa90fec2dea486, yet the tracked patch confidence is 0/4 with no patch sources confirmed. Organizations should treat the fix claim as unverified and inspect the referenced commit directly before assuming mitigations are in place.
Exploitation Scenarios
No public proof-of-concept has been identified, and the attack chain below is inferred from the vulnerability class (null pointer dereference during S1AP message decode/handling) and the NVD description. The attacker must be network-adjacent — meaning they have packet-level access to the transport network segment between eNBs and the MME (for example, a compromised eNB, a rogue device on the S1 backhaul, or an insider with access to the RAN transport).
Reconnaissance / target identification: The attacker maps the RAN transport segment and identifies the MME's S1AP endpoint (typically SCTP port 36412). Because S1AP runs over SCTP, the attacker may also probe for the SCTP association parameters. If they control or compromise a legitimate eNB, they already have a valid SCTP association and do not need to establish a new one, simplifying the attack.
Triggering the flaw: The attacker crafts an S1AP
eNB Configuration Transfermessage that is structurally valid enough to be parsed by the S1AP layer but omits theTarget eNB IDinformation element. This violates the expected message format and causes the MME's message handler to reference a null pointer when resolving the target eNB identifier.Payload / execution: No active payload or memory-corruption primitive is required. The "payload" is the malformed control-plane packet itself; a single packet is sufficient to trigger the fault condition. The crash is a software defect in the MME rather than a malicious code injection.
Post-exploitation impact: The MME process terminates, resulting in a denial of service for all eNBs and UEs attached to that MME. New attach/detach requests fail, idle-mode paging stops, and ongoing handovers may drop. When the MME restarts, it must re-establish SCTP associations with all served eNBs, potentially causing a signaling storm as thousands of UEs re-attach. An attacker positioned to repeat the packet can maintain the outage.
Given the absence of public exploit code, the primary exploitation posture is a low-skill, high-reliability DoS: the required packet is small, requires no memory-safety expertise, and can be replayed or scripted.
Impact Assessment
The business impact is a denial of service on the mobile core control plane. The MME is a single point of failure for its service area: if it crashes, all eNodeBs connected to it lose S1 signaling, which means new sessions cannot be established, existing connected-mode UEs may experience dropped services as tracking-area updates and handovers fail, and idle UEs cannot be paged for incoming sessions. For a production Magma deployment used to serve real subscribers (e.g., rural ISP, private LTE, or public carrier trials), the outage duration directly translates to subscriber-facing degradation and potential regulatory SLA breaches.
Affected systems are Magma deployments running MME version ≤ 1.8.0. The blast radius is bounded by the MME's coverage footprint but is multiplicative: one packet crashes one MME which serves many eNBs and potentially tens of thousands of subscribers. The network-adjacent requirement limits exposure — the issue is not remotely exploitable from the public internet unless the S1-MME interface is poorly segmented and reachable from an untrusted network — but RAN transport networks are frequently shared or lightly monitored, making adjacent access a realistic threat model for telecom infrastructure.
CVSS is N/A, so standard severity scoring is unavailable; the crash impact is comparable to a high-severity availability issue, while exploitability is constrained by the adjacency requirement. The EPSS score (0.00373, 30.5th percentile) suggests limited current in-the-wild activity, and absence from CISA KEV means no known exploitation evidence has been cataloged.
Detection Guidance
Sigma Rule
title: CVE-2023-37031 - Magma MME Crash via Malformed S1AP eNB Configuration Transfer
id: a4d9b1c2-6f3e-4a2b-9d4c-1c8e5b7a0f22
status: experimental
description: Detects MME crash indicators combined with S1AP eNB Configuration Transfer message handling in Magma logs, consistent with CVE-2023-37031 null pointer dereference.
references:
- https://nvd.nist.gov/vuln/detail/CVE-2023-37031
tags:
- attack.t1499
- cve.2023.37031
author: valtersit.com threat intelligence
date: 2025/01/01
logsource:
product: linux
category: application
detection:
selection_s1ap:
- 'eNB Configuration Transfer'
- 'Target eNB ID'
- 'S1AP'
selection_crash:
- 'SIGSEGV'
- 'segfault'
- 'null pointer'
- 'PANIC'
- 'mme terminated'
- 'restarting mme'
condition: selection_s1ap and selection_crash
falsepositives:
- Legitimate MME crashes caused by unrelated software defects
- Verbose S1AP logging that mentions message names without a crash
level: high
YARA Rule
rule CVE_2023_37031_Magma_MME_S1AP_Crash
{
meta:
author = "valtersit.com threat intelligence"
description = "Detects network captures, memory dumps, or log artifacts referencing S1AP eNB Configuration Transfer messages missing the Target eNB ID field (CVE-2023-37031)"
reference = "https://nvd.nist.gov/vuln/detail/CVE-2023-37031"
date = "2025-01-01"
strings:
$s_msg = "eNB Configuration Transfer" ascii wide
$s_ie = "Target eNB ID" ascii wide
$s_mme = "MME" ascii wide
$s_crash = "null pointer" ascii wide nocase
condition:
uint16(0) == 0x4d42 or filesize < 10MB
and (
($s_msg and not $s_ie) or
($s_msg and $s_crash)
)
}
Note: because S1AP is ASN.1 PER-encoded on the wire, binary captures may not contain the literal strings above. This rule is most effective against decoded/logged representations of S1AP messages, debug output, or post-crash memory/coredump artifacts. A PER-level signature is not feasible without exact encoder bytes, which are not available in the public advisory.
Suricata IDS Rule
alert sctp any any -> $HOME_NET 36412 (
msg:"CVE-2023-37031 - Potential malformed S1AP eNB Configuration Transfer (short SCTP payload)";
flow:to_server,established;
dsize:<64;
classtype:attempted-dos;
reference:cve,2023-37031;
sid:3703101;
rev:1;
)
This rule is a heuristic detection: S1AP eNB Configuration Transfer messages that are missing IEs tend to be abnormally short. Because Suricata lacks a native S1AP/ASN.1 PER decoder, exact message-level matching cannot be expressed as a static signature without the specific encoder bytes from the vulnerable implementation. The rule flags small SCTP payloads to the S1-MME port and should be tuned against baseline legitimate S1AP traffic to reduce false positives. A stricter variant should additionally restrict the source to known eNB IP ranges ($E_NB_NET).
Elastic Detection
process where event.action in ("session.end", "end", "exit") and process.name == "mme"
and (process.exit_code == 139 or process.exit_code == 11)
This EQL query detects abnormal termination of the MME process, where exit code 139 / 11 corresponds to a segmentation fault — the expected outcome of the null pointer dereference. For network-layer visibility, augment with an event correlation rule on network events:
network where destination.port == 36412 and network.transport == "sctp"
and event.category == "network" and event.outcome == "failure"
The process-centric rule is the strongest signal because the crash is the deterministic consequence of the malicious packet. Teams should investigate any MME crash in correlation with S1AP traffic toward the MME from non-eNB source addresses.
Splunk SPL Query
index=* (sourcetype=syslog OR sourcetype="*magma*" OR source="/var/log/magma/*")
("eNB Configuration Transfer" OR "Target eNB ID" OR "S1AP")
("SIGSEGV" OR "segfault" OR "null pointer" OR "PANIC" OR "mme terminated" OR "restarting mme")
| stats count earliest(_time) as first_seen latest(_time) as last_seen by host, source, process
| sort - count
For network flow data:
index=netflow OR index=*sctp*
dest_port=36412
| stats count by src_ip, dest_ip, _time
| where count > 1
The first query surfaces MME crash events that co-occur with S1AP message handling; the second surfaces repeated SCTP contact to the S1-MME port from unexpected or non-eNB sources. Combine both to triage whether a crash was preceded by anomalous S1AP traffic.
Wazuh OSSEC Rule
<group name="magma,mme,">
<rule id="100371" level="12">
<decoded>mme</decoded>
<match>eNB Configuration Transfer</match>
<regex>segfault|SIGSEGV|null pointer|PANIC|terminated|restarting</regex>
<description>Magma MME potential crash from malformed S1AP eNB Configuration Transfer (CVE-2023-37031)</description>
<mitre>
<id>T1499</id>
</mitre>
<group>cve-2023-37031,</group>
</rule>
</group>
This Wazuh rule triggers at level 12 (high severity alert) when a Magma MME log line references the S1AP eNB Configuration Transfer message and contains crash indicators such as a segmentation fault or null pointer exception. Deploy via the local ruleset (/var/ossec/etc/rules/local_rules.xml) and validate the log decoder against your Magma logging format before production use.
Mitigation & Patch Guidance
Patch confidence is 0/4 — no tracked source confirms a usable patch, despite the NVD description referencing a v1.9 commit (08472ba98b8321f802e95f5622fa90fec2dea486). Treat the deployment as vulnerable until the fix is verified in your specific build.
- Immediate mitigations:
- Segment the S1-MME interface. Ensure no untrusted host can reach the MME's SCTP listener (port 36412). Use ACLs and firewalls to restrict S1AP access to known eNB IP addresses.
- Harden eNB identity validation — enforce SCTP peer IP allowlists and, where supported, validate eNB identities through S1AP Initial UE / S1 Setup procedures before accepting later messages.
- Monitor MME process health and configure automatic restart with crash-loop protection and backoff to prevent signaling storms on rapid restart.
- Patch / upgrade steps:
- Inspect the upstream repository for commit
08472ba98b8321f802e95f5622fa90fec2dea486and confirm it addresses the missingTarget eNB IDnull dereference. If confirmed, upgrade Magma to v1.9 or later. - If the commit cannot be verified or the v1.9 branch is not yet deployed, contact the Magma maintainers for an advisory and request a backport for the in-use release.
- Inspect the upstream repository for commit
- Long-term hardening:
- Add fuzzing of the Magma S1AP decoder to the CI pipeline, specifically targeting optional/required IE presence constraints (S1AP ASN.1 PER messages).
- Deploy MME redundancy (MME pooling / load-balanced S1 associations) so a single MME crash does not produce a total coverage outage.
- Enable S1AP-level anomaly detection in network monitoring, alerting on messages that fail IE-presence validation or that originate from non-eNB source addresses.
- Re-evaluate the CVE entry periodically for updates to CVSS, CWE, and patch status, and subscribe to CISA KEV for any future inclusion.
References
- NVD — CVE-2023-37031: https://nvd.nist.gov/vuln/detail/CVE-2023-37031
- Magma project repository (upstream fix reference: v1.9 commit 08472ba98b8321f802e95f5622fa90fec2dea486): https://github.com/magma/magma
- 3GPP TS 36.413 — S1 Application Protocol (S1AP) specification for eNB Configuration Transfer and Target eNB ID IE definitions: https://www.3gpp.org/ftp/Specs/archive/36_series/36.413/
- MITRE ATT&CK — T1499 Endpoint Denial of Service: https://attack.mitre.org/techniques/T1499/
- CISA Known Exploited Vulnerabilities Catalog (CVE-2023-37031 not currently listed): https://www.cisa.gov/known-exploited-vulnerabilities-catalog
No known threat actor campaigns, exploit-in-the-wild evidence, or public proof-of-concept code have been identified for this CVE at the time of writing. The attack rationale is inferred from the described null pointer dereference in S1AP message handling.
What is this? Security researchers use these exact search queries on Shodan.io (a search engine for internet-connected devices) to find vulnerable systems globally. You can copy these dorks to see if your organization's IP space is exposed.
💣 PoC CODE AVAILABLE
Exploit code for this CVE is tracked in our database.
Access poc_code via API Pro.