☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]
[ VENDOR STATS ]
SOON 🐛 CWE-476
👁️
Common Weakness Enumeration - Identifies the specific category of software weakness or flaw.

CVE-2023-37039

CVE-2023-37039 Null Pointer Dereference in Magma
📅 PUBLISHED: 2025-01-21 00:00 UTC 🔄 UPDATED: 2026-08-21 19:36 UTC
⏳ SCORE PENDING — ANALYSIS IN PROGRESS [ DEFENSE PATCH ↓ ]
💣 PoC: Public
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.23%
👁️
0.23% probability
5.8× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
🥷 MITRE: T1499
👁️
MITRE ATT&CK Tactic - Describes the strategy hackers use to execute this attack.
VULNERABLE: <= 1.8.0
CVSS SEVERITY SCALE
9.0–10.0 CRITICAL
7.0–8.9 HIGH
4.0–6.9 MEDIUM
0.1–3.9 LOW
0.0 NONE
SOON
PENDING NVD
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2023-37039 is a null pointer dereference vulnerability in the Mobile Management Entity (MME) of Magma, an open-source LTE/5G core network platform, affecting versions up to and including 1.8.0. A network-adjacent attacker can crash the MME by sending a single malformed S1AP Initial UE Message packet that omits the expected RRC Establishment Clause field, causing a denial of service for every subscriber attached to the affected core network. The NVD description indicates a fix in v1.9 (commit 08472ba98b8321f802e95f5622fa90fec2dea486), but no independent vendor advisory or patch source has been indexed, and no public exploit code or in-the-wild activity has been reported.

⚡ AUTOMATE YOUR CVE INTELLIGENCE

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.

›Patch confidence — UNVERIFIED to CONFIRMED, cross-referenced NVD + RHSA + Debian
›Exploit & PoC — poc_status, poc_url, has_exploit. Not in NVD.
›Shodan dorks — ready-made queries to find exposed vulnerable systems
›Detection rules — YARA · Wazuh · Elastic (all plans) · Sigma (Pro)
›pending_fields — know exactly which of 7 fields NVD hasn't processed yet
›Free backfill — data incomplete when you paid? Re-check within 30 days = 0 credits
PAYG €0.08/lookup Standard €19/mo (was €29) · 5k credits Pro €65/mo (was €99) · 20k credits FOUNDING PRICE · LOCKED FOR LIFE · ENDS 31 DEC 2026
[ FROM €19/MO ]
Free sandbox key available
No signup required

Technical Analysis

The Magma MME is the central control-plane network function in the Evolved Packet Core (EPC), responsible for UE attachment, authentication, bearer establishment, tracking area updates, and handover signaling. It communicates with radio access network elements (eNodeBs) using the S1 Application Protocol (S1AP) over the S1-MME interface, which is transported over SCTP — conventionally on port 36412.

The vulnerable code path processes the S1AP Initial UE Message, which an eNodeB sends to the MME to deliver the first NAS message from a UE (e.g., an Attach Request or Tracking Area Update). Under 3GPP S1AP procedures, this message normally conveys additional radio-level context, including the RRC establishment information. The NVD description states the vulnerability is triggered when the Initial UE Message is received missing an expected RRC Establishment Clause field — the vendor description uses "Clause" verbatim; in 3GPP terminology this IE is conventionally referred to as the RRC Establishment Cause.

The flaw is a null pointer dereference: when processing the received message, the MME software attempts to read the missing field through a pointer that has not been validated or initialized. Because the field is absent from the decoded message, the pointer is null, and dereferencing it produces a segmentation fault (SIGSEGV), terminating the MME process. This is a classic missing-input-validation defect in an ASN.1/PER-decoded protocol parser: the decoder tolerates the absence of the information element, but the downstream logic assumes it is always present and dereferences it without a null check.

Attack surface considerations:

  • The attacker is described as network-adjacent, meaning they do not need internet-facing access; they must be positioned on a network segment that can reach the S1-MME interface — for example, the RAN backhaul/transport network, a compromised eNodeB, or a misconfigured segment with access to the MME's SCTP endpoint.
  • S1AP is transported over SCTP, not TCP/UDP, which reduces the set of commodity scanning and exploitation tooling that applies but does not meaningfully raise the bar for a targeted attacker with access to the transport network.
  • The trigger is a single malformed packet; there is no requirement for authentication, session establishment, or prior state, making the vulnerability trivially repeatable for persistent denial of service.
  • The NVD record contains no CWE assignment, no CVSS score or vector, and no CISA KEV listing. The EPSS score is 0.00232 (14.3rd percentile of exploited CVEs), indicating that as of the analysis date, no broad exploitation activity has been observed in the wild.
  • Beyond the S1AP procedure name (Initial UE Message), the RRC Establishment Clause field, and the affected component (MME), the NVD description provides no code-level detail. No function names, source files, or internal API details are available in the public record; the analysis above therefore describes the vulnerability at the class and protocol level.

Exploitation Scenarios

No public PoC, exploit code, or Nuclei template has been identified for this CVE. The attack chain below is inferred from the vulnerability class and the NVD description, and is provided to guide detection and hardening. It should not be treated as a confirmed reproduction.

  1. Reconnaissance / Target Identification. The attacker first identifies an S1-MME listener. Because S1AP runs over SCTP, the attacker can probe for SCTP endpoints (e.g., port 36412) on the RAN transport segment, or observe S1AP traffic passively to confirm the presence of a Magma MME and its eNodeB peers. Network-adjacent positioning is assumed; internet-wide scanning is unlikely to be sufficient unless the MME is erroneously exposed beyond the RAN boundary.

  2. Triggering the Flaw. The attacker constructs an S1AP Initial UE Message PDU that omits the RRC Establishment Clause field that MME parsing logic expects. The omission must be valid enough at the ASN.1/PER decoding layer to reach the vulnerable processing logic, yet incomplete enough that the subsequent dereference hits a null pointer. Because the decoder accepts the IE as optional or absent, the message passes structural validation and is passed to the handler.

  3. Payload / Execution. No memory-corruption payload is required — the malformed-but-decodable message itself is the "payload." The attacker transmits the SCTP packet containing the final S1AP PDU to the MME's S1 port. The MME's S1AP handler dereferences the missing field, causing a null pointer dereference and a segmentation fault. The MME process crashes. Crafting the PDU requires knowledge of S1AP PER encoding (3GPP TS 36.413) but does not require any account, key, or prior authenticated state on the MME.

  4. Post-Exploitation Impact. A crashed MME is unavailable for all control-plane procedures in its service area: new UEs cannot attach, existing UEs cannot perform tracking area updates or handovers, and paging is interrupted. If the MME is restarted automatically by a supervisor (e.g., systemd or a container orchestrator), the attacker can simply re-send the packet, producing an MME crash loop. In a degraded core, downstream functions (SGW/PGW, HSS/HA) may experience signaling storms or timeouts, and neighboring MMEs may absorb handover traffic they cannot complete, expanding the blast radius beyond the single process.

Impact Assessment

  • Business Impact. The MME is a single point of failure for LTE attach and mobility signaling. An outage disconnects the control plane for all UEs in the affected tracking areas, resulting in subscriber-facing service loss, missed SLA commitments, and potential revenue impact for operators or private-network tenants relying on Magma.
  • Affected Systems. Magma MME versions <= 1.8.0. Operators running pre-1.9 Magma core deployments, including private LTE/5G networks, neutral-host deployments, and research testbeds, are in scope.
  • Blast Radius. The vulnerability is network-adjacent and requires no authentication, so any entity able to inject SCTP packets toward the S1 port can repeatedly crash the MME. The single-packet nature makes the cost of exploitation negligible for the attacker. The control-plane outage can cascade into user-plane and subscriber-database disturbances as procedures time out.
  • CVSS / Risk Context. No CVSS score was published, which complicates standard risk-scoring workflows. The EPSS probability (0.00232) indicates low observed exploitation, but the technical impact — deterministic remote crash of a core network function from one packet — is high in availability terms. Organizations should treat this as a high-priority availability risk despite the absence of a CVSS vector.
  • Known Exploitation. CISA KEV does not list this CVE, and no threat-actor campaigns or exploit-in-the-wild evidence were identified in the provided data.

Detection Guidance

Detection of this vulnerability is challenging because the triggering packet is syntactically decodable at the S1AP level; it merely omits an optional IE. The most reliable signals are (a) the MME process crash/restart artifacts, and (b) anomalous SCTP/S1AP flows toward the MME from unexpected source IPs. The rules below are provided as realistic baselines and must be tuned against your environment (eNodeB inventory, SCTP peer allowlists, process names, and log formats). Note that no official detections exist for this CVE; these rules are heuristic.

Sigma Rule

title: Magma MME Process Crash or Restart Loop
id: 6f3a2c10-9c1e-4b7d-8f54-3d0a1b2c4d5e
status: experimental
description: >
  Detects termination or rapid restart of the Magma MME process, which may
  indicate exploitation of CVE-2023-37039 (null pointer dereference via
  malformed S1AP Initial UE Message). Validate against known maintenance
  windows and container orchestration restarts.
author: Valters IT Threat Intelligence
date: 2025/01/01
tags:
  - attack.t1499
  - cve.2023-37039
logsource:
  category: process_termination
  product: linux
detection:
  selection_mme_end:
    Image|endswith:
      - '/mme'
      - '/magma_mme'
      - '/mmed'
    EventID: 5            # Sysmon process terminated
    ExitCode:
      - 139                # SIGSEGV
      - 11
  selection_segfault_log:
    keywords|contains:
      - 'segfault'
      - 'SIGSEGV'
      - 'signal 11'
      - 'null pointer'
      - 'core dumped'
    Image|endswith:
      - '/mme'
      - '/magma_mme'
  condition: selection_mme_end or selection_segfault_log
falsepositives:
  - Legitimate operator-initiated MME restarts during maintenance
  - Expected crash recovery in container environments without tuning
level: high

YARA Rule

/*
   CVE-2023-37039 — Magma MME S1AP Anomaly Triage Rule
   Purpose: forensic triage of packet captures, tshark/zeek exports, and
   crash artifacts collected from Magma MME hosts.
   Limitation: raw S1AP is ASN.1 PER encoded, so ASCII patterns will not
   match raw packets. Run this rule against decoded exports (JSON/text)
   and against core-dump strings, not raw pcap byte streams alone.
*/
rule CVE_2023_37039_Magma_MME_S1AP_Triage
{
    meta:
        author = "Valters IT Threat Intelligence"
        description = "Triage rule for artifacts related to Magma MME S1AP Initial UE Message handling and null pointer crash"
        cve = "2023-37039"
        date = "2025-01-01"
        reference = "https://nvd.nist.gov/vuln/detail/CVE-2023-37039"
    strings:
        $s1ap_proto = "S1AP" ascii nocase
        $s1ap_init  = "InitialUEMessage" ascii nocase
        $s1ap_initial = "Initial UE Message" ascii nocase
        $rrc_cause  = "rrcEstablishmentCause" ascii nocase
        $rrc_clause = "RRC Establishment" ascii nocase
        $sigsegv    = "SIGSEGV" ascii nocase
        $null_deref = "null pointer" ascii nocase
        $mme_crash  = "mme" ascii nocase
    condition:
        uint16(0) == 0x0A0D or filesize < 50MB
        and 2 of ($s1ap*) and any of ($rrc*)
        or any of ($sigsegv, $null_deref) and $mme_crash
}

Suricata IDS Rule

# Heuristic baseline rule: flags SCTP flows toward the MME S1AP port from
# non-allowlisted sources, combined with a threshold to reduce noise.
# The content match below (first byte 0x00 = SCTP DATA chunk type) is a
# standard SCTP constant, not an S1AP fingerprint. Tune the source
# allowlist (eNodeB subnet) and port to match your deployment.
alert sctp any any -> $HOME_NET 36412 ( \
    msg:"CVE-2023-37039 Magma MME S1AP Anomaly - Unusual SCTP Flow Toward MME"; \
    flow:to_server; \
    content:"|00|"; offset:0; \
    threshold: type both, track by_src, count 20, seconds 60; \
    reference:cve,2023-37039; \
    metadata:created_at 2025-01-01; \
    classtype:attempted-dos; \
    sid:10037039; rev:1;)

Elastic Detection

// EQL: Detect MME process termination with a non-zero / signal exit code,
// and rapid restart of the MME process within 5 minutes (crash-loop indicator).
process where event.type == "end" and
  process.name in ("mme", "magma_mme", "mmed") and
  (process.exit_code == 139 or process.exit_code == 11 or process.exit_code != 0)
// EQL: Crash-loop sequence — MME termination followed by MME start.
sequence by host.name with maxspan=5m
  [ process where event.type == "end" and
    process.name in ("mme", "magma_mme", "mmed") and process.exit_code != 0 ]
  [ process where event.type == "start" and
    process.name in ("mme", "magma_mme", "mmed") ]

Splunk SPL Query

index=* (sourcetype="syslog" OR sourcetype="linux_audit" OR sourcetype="container_logs")
  ("mme" OR "magma_mme" OR "mmed")
  AND ("segfault" OR "SIGSEGV" OR "signal 11" OR "null pointer" OR "core dumped" OR "exit code 139")
| stats count by host, source, _time
| where count > 2
| sort - _time
# Network-side heuristic: SCTP flows to port 36412 from unexpected source IPs
index=netflow OR index=*_sctp*
  dest_port=36412
| stats dc(src_ip) as src_count, count as flow_count by dest_ip, dest_port
| where src_count > 5 OR flow_count > 50
| join dest_ip [ search index=* sourcetype="*allowlist*" "eNodeB" | table dest_ip ]

Wazuh OSSEC Rule

<group name="magma,">
  <rule id="100370" level="12">
    <decoded />
    <program_name>mme</program_name>
    <match>segfault|SIGSEGV|signal 11|null pointer|core dumped</match>
    <description>Magma MME (CVE-2023-37039 candidate): process terminated by null pointer dereference or memory fault.</description>
    <group>cve_2023_37039,</group>
    <mitre>
      <id>T1499</id>
    </mitre>
  </rule>

  <rule id="100371" level="8" frequency="3" timeframe="300">
    <if_matched_sid>100370</if_matched_sid>
    <description>Magma MME crash-loop detected: multiple memory faults within 5 minutes — possible repeated exploitation of CVE-2023-37039.</description>
    <group>cve_2023_37039,</group>
  </rule>
</group>

Mitigation & Patch Guidance

Patch status. The NVD description states the vulnerability is fixed in Magma v1.9 at commit 08472ba98b8321f802e95f5622fa90fec2dea486. However, patch-confidence tracking reports 0/4 (UNPATCHED) — no patch evidence has been indexed from any tracked vendor source, and no vendor advisory, CVE CNA note, or OSV package entry is available. Treat the fix as referenced but unverified, and confirm against an official Magma release before deploying.

  1. Immediate mitigations.

    • Restrict SCTP access to the MME S1 interface to known eNodeB network segments only (firewall/ACL allowlist on SCTP port 36412). Do not expose the S1-MME interface on management, internet, or guest networks.
    • If possible, deploy an SCTP-aware filtering layer or SDN policy that drops SCTP associations from unrecognized source IPs before they reach the MME.
    • Enable and verify MME process supervision (systemd restart policy, container restart: on-failure, or equivalent) so a crash is contained and automatically recovered, and pair it with alerting on restart loops.
    • Monitor S1-MME traffic volume and source diversity; a single source generating repeated short S1AP messages should trigger an alert.
  2. Patch / upgrade steps.

    • Upgrade Magma to v1.9 or later, ideally to the commit 08472ba98b8321f802e95f5622fa90fec2dea486 or the newest stable release containing it. If the exact commit is not present in your channel, pull it from the Magma source repository and verify the S1AP handler null-check changes.
    • If an immediate upgrade is not possible, cherry-pick the referenced commit after reviewing it for the S1AP Initial UE Message parsing path and confirm the fix adds a null/absent check for the RRC Establishment Clause field.
    • After patching, run a controlled test with a malformed Initial UE Message packet (missing the field) against a staging MME to confirm the crash no longer occurs.
  3. Long-term hardening.

    • Add fuzzing of the S1AP parser to the development pipeline (ASN.1/PER fuzzing with tools such as the 3GPP protocol fuzzers) to catch missing-IE defects before release.
    • Enforce input validation at the protocol layer: every information element that downstream logic dereferences must be checked for presence before access.
    • Segment the RAN transport network so that eNodeB-facing segments are isolated from broader corporate/backhaul networks, reducing the population of network-adjacent attackers.
    • Deploy MME redundancy (active/standby or N+1) so a single-process crash does not produce a full control-plane outage, and consider rate-limiting or anomaly detection on S1AP signaling ingress.

References

  1. NVD Entry — CVE-2023-37039: https://nvd.nist.gov/vuln/detail/CVE-2023-37039
  2. Magma upstream fix commit (referenced in NVD description): https://github.com/magma/magma/commit/08472ba98b8321f802e95f5622fa90fec2dea486
  3. Magma Core Project (official site): https://magmacore.org/
  4. 3GPP TS 36.413 — S1 Application Protocol (S1AP) specification, for the Initial UE Message procedure and RRC establishment cause IE terminology: https://www.3gpp.org/DynaReport/36413.htm
  5. CISA Known Exploited Vulnerabilities Catalog (CVE-2023-37039 is not listed; no known in-the-wild exploitation): https://www.cisa.gov/known-exploited-vulnerabilities-catalog

Threat intelligence notes. No threat-actor campaigns, exploit-in-the-wild evidence, or public exploit code was identified in the provided data. The CVE carries no CISA KEV listing and no published CVSS score. Detection content in this report is heuristic and should be validated against your specific Magma deployment and telemetry before production use.

👁️ SHODAN DORKS (THREAT HUNTING)

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.

port:36412 sctp
"magma" "mme"
SCTP S1-MME

💣 PoC CODE AVAILABLE

Exploit code for this CVE is tracked in our database. Access poc_code via API Pro.

[ API_PRO ] →
◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2023-37039/ · CVE data: NVD/MITRE (public domain) · © 2026 ValtersIT Hub
>_ SYSTEM_CORE: INTEL_ACTIVE
90% TEAM-CURATED // 10% AUTOMATED INGESTION.
ALL PATCH REFERENCES AND VERSION DATA SOURCED FROM NVD + OSV OFFICIAL REGISTRIES.