← Back to Feed CACHED · 2026-05-17 09:42:19 · cache_key CVE-2025-29912
CVE-2026-8187 · CWE-400 · Disclosed 2026-05-09

A flaw has been found in Open5GS up to 2

ASSESSED — NOISGATE V0.5
Vendor
Reassessed
Verdict:
01 · The Real Story

Like forcing every truck in a depot through the complaint desk before it can reach the loading bay

CVE-2026-8187 is a resource-consumption flaw in Open5GS UPF affecting all versions up to and including 2.7.7. The weak spot is _gtpv1_u_recv_cb in src/upf/gtp-path.c, the hot receive path for GTP-U traffic. Per the public GitHub report, a sustained mix of GTP-U Echo Requests and G-PDUs with invalid or unknown TEIDs can push the UPF into expensive logging and response handling, degrading legitimate user-plane traffic with inflated latency and packet loss.

The vendor's MEDIUM label is basically right, but the raw AV:N/PR:N CVSS framing overstates how reachable this really is in enterprise deployments. An attacker does not need credentials, but they do need L3 reachability to the UPF's UDP/2152 GTP-U interface, which is usually on a carrier/private-5G transport segment rather than broadly internet-exposed. This is a serious operational nuisance for operators running Open5GS, not a fleet-wide emergency for general enterprise patch teams.

"Pre-auth DoS against a critical datapath, but only if an attacker can already reach your UPF's GTP-U interface."
02 · The Attack Path

4 steps from start to impact.

STEP 01

Reach the GTP-U edge

The attacker first needs packet-level reachability to the Open5GS UPF GTP-U listener on UDP/2152. In practice that usually means being on the mobile transport side, a lab/private-5G segment, a connected gNB path, or exploiting a bad exposure decision where the UPF is reachable from untrusted networks. Tools like nmap are not especially helpful for attribution here because UDP/2152 identifies GTP-U, not Open5GS specifically.
Conditions required:
  • Network path to the UPF GTP-U endpoint
  • Open5GS UPF enabled and reachable on UDP/2152
  • Firewall/ACLs allow untrusted traffic to that interface
Where this breaks in practice:
  • Most enterprises do not run Open5GS at all
  • Among operators that do, UPF interfaces are commonly isolated to RAN/transport segments
  • Generic internet scans can find UDP/2152 exposure, but cannot reliably fingerprint it as Open5GS
Detection/coverage: External vuln scanners have weak coverage here. Best detection is asset inventory plus network-path review for hosts running open5gs-upfd and listening on UDP/2152.
STEP 02

Generate abusive GTP-U traffic

The public issue describes a reproducible abuse pattern using a high-rate interleaving of GTP-U Echo Requests and G-PDUs that reference invalid or unknown TEIDs. A custom sender built with scapy, trafgen, or a small raw-socket utility is sufficient; no authentication or session setup is required once the attacker can send packets to the UPF. This is not a precision exploit chain so much as a packet-pressure attack against the hottest receive path.
Conditions required:
  • Ability to craft and send GTP-U packets
  • Sustained packet rate high enough to keep the callback busy
Where this breaks in practice:
  • Attacker needs protocol awareness, not just generic UDP spray
  • Rate limits, peer filtering, or dedicated transport policing can blunt effectiveness
Detection/coverage: Look for spikes in UDP/2152 volume, abnormal Echo Request rates, and bursts of traffic referencing unknown TEIDs. Most commodity scanners will miss this; network telemetry is better than CVE scanners.
STEP 03

Force expensive hot-path work

Inside _gtpv1_u_recv_cb, the abusive packet mix drives synchronous work on the datapath: handling Echo Requests, missing TEID lookups, possible error indications, and diagnostic logging. The GitHub report specifically calls out hot-path logging and responses as the amplifier. That means the attacker is burning the UPF's time budget, not breaking memory safety or gaining code execution.
Conditions required:
  • Affected code path present in the deployed version
  • Diagnostics and response behavior not rate-limited
Where this breaks in practice:
  • Some deployments may already suppress or offload noisy logging
  • Host CPU headroom and traffic-engineering choices change how visible the impact becomes
Detection/coverage: Host-side signals matter: CPU spikes, log bursts, container or process resource pressure, and rising RTT/loss on otherwise healthy subscriber traffic.
STEP 04

Degrade subscriber data plane

The observable outcome is availability degradation: higher latency, packet loss, and a user plane that remains technically up but becomes operationally poor. The public lab report saw RTT move from roughly 1-3 ms baseline to p95 above 100 ms with spikes over 300 ms, plus measurable loss. Blast radius is limited to the subscribers and traffic traversing that affected UPF node.
Conditions required:
  • Legitimate sessions share the same stressed UPF
  • Attack volume is sustained long enough to contend with forwarding
Where this breaks in practice:
  • Impact is bounded to the UPF instance or segment under attack
  • This is service degradation, not tenant escape, data theft, or persistent foothold
Detection/coverage: Service monitoring should catch this faster than EDR: subscriber throughput drop, RTT inflation, loss, and UPF saturation without a matching business-traffic explanation.
03 · Intelligence Metadata

The supporting signals.

In-the-wild statusAs of 2026-05-29, I found no KEV listing and no authoritative reporting of active exploitation campaigns.
Proof-of-concept availabilityNo polished public exploit repo surfaced, but the GitHub issue #4492 gives a workable reproduction recipe: high-rate GTP-U Echo Requests plus invalid/unknown TEID G-PDUs.
EPSS0.00032 from the user-supplied intel — effectively very low predicted near-term exploitation probability.
KEV statusNot listed in the CISA Known Exploited Vulnerabilities catalog.
CVSS reality checkCNA/VulDB says 5.3 MEDIUM (AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L); NVD has already enriched it to 7.5 HIGH with A:H. I side closer to the CNA on real-world risk because reachability to UPF GTP-U is the real gate.
Affected versionsReported as Open5GS <= 2.7.7, specifically the UPF component's src/upf/gtp-path.c receive callback.
Fixed versionI found no authoritative patched release on Open5GS as of 2026-05-29. Current public site and GitHub release listings still show v2.7.7 as latest, so treat this as unfixed/unclear until upstream says otherwise.
Scanning and exposure dataI found no product-specific Shodan/Censys fingerprint for Open5GS UPF. What matters is whether UDP/2152 GTP-U is reachable from untrusted networks; that exposure is configuration-driven, and broad internet attribution to Open5GS is weak.
DisclosurePublic disclosure date is 2026-05-09. The linked GitHub issue was opened 2026-04-25 by 0wln3d.
Reporter / source qualityPrimary technical detail comes from the public GitHub issue and NVD/VulDB metadata. That is enough to assess impact directionally, but not enough to claim a clean crash threshold or universal exploit reliability.
04 · The Call

noisgate verdict.

Final Verdict
= UNCHANGED to MEDIUM (4.4/10)

The decisive friction is attacker position: this only matters if someone can already send traffic to your UPF GTP-U interface, which sharply narrows the exposed population compared with a normal internet-facing service. Once reachable it is still a real pre-auth availability problem, but the blast radius is operational degradation on a specific datapath node, not enterprise-wide compromise.

HIGH Affected component and attack mechanics
MEDIUM Real-world exposure frequency across enterprise deployments
MEDIUM Absence of a fixed upstream version as of 2026-05-29

Why this verdict

  • Reachability is the whole game — CVSS says AV:N, but in reality the attacker needs L3 access to UDP/2152 on the UPF, which usually implies internal mobile transport, private-5G fabric, or a misconfigured exposed user-plane edge. That is a major downward adjustment from generic internet-reachable software.
  • Impact is availability-only and local to the node path — the public report shows latency and loss inflation, not code execution, persistence, or data compromise. That keeps the score out of HIGH even though the UPF is operationally important.
  • Threat intel is coldno KEV, no campaign reporting, and a tiny EPSS (0.00032) mean there is no evidence this is being weaponized at scale.
  • Population is narrow — Open5GS is not a mass-market enterprise platform, and only the UPF path is relevant. Requiring the right product, the right component, and the right network reachability compounds the friction.
  • Still not LOW — if you *do* run Open5GS, the UPF is a choke point. Unauthenticated packet abuse against a subscriber datapath can create visible customer impact even without a full outage.

Why not higher?

This is not a general-purpose internet service bug with broad reachable population. The attacker must already be able to hit the GTP-U interface, and the public evidence points to service degradation rather than host takeover, cross-tenant compromise, or reliable crash-on-demand across all deployments.

Why not lower?

It is still pre-auth once reachability exists, and it targets a critical forwarding function rather than some dead-end helper daemon. For organizations actually operating Open5GS, this can hurt production traffic quality fast enough to deserve more than backlog-only treatment.

05 · Compensating Control

What to do — in priority order.

  1. Filter GTP-U to known peers — Restrict UDP/2152 so only approved gNB/RAN or transport peers can reach the UPF. This is the highest-value control because it removes the main attack prerequisite; for a MEDIUM verdict there is no formal noisgate mitigation SLA, but if your UPF is currently broader than intended, fix that in the next change window, not whenever someone gets around to it.
  2. Rate-limit untrusted UDP/2152 traffic — Apply policers or ACL-based rate controls on the edge closest to the UPF-facing transport so Echo floods and invalid TEID sprays cannot monopolize the receive path. Use this where peer allowlisting is incomplete or where private-5G labs have looser topology; again, no formal mitigation SLA for MEDIUM, but do it before the next routine maintenance cycle if exposure exists.
  3. Isolate UPF transport — Put the UPF GTP-U side in a dedicated VRF/VLAN/security zone separate from general server networks. That reduces the chance that a foothold on ordinary enterprise infrastructure can laterally reach the user plane.
  4. Tune alerting on UPF saturation — Alert on CPU spikes, RTT inflation, packet loss, log bursts, and UDP/2152 anomalies for hosts running open5gs-upfd. This will not prevent exploitation, but it will keep a partial degradation event from lingering as a mystery performance issue.
  5. Track upstream for a fix — As of 2026-05-29 I did not find a patched upstream release beyond 2.7.7. Keep the issue on exception tracking and be ready to validate and deploy the first authoritative vendor fix within the MEDIUM remediation window once it exists.
What doesn't work
  • MFA/SSO does nothing here because the attack is packet-driven against a user-plane UDP service, not a login flow.
  • WAF rules do not help because this is GTP-U over UDP/2152, not HTTP.
  • Endpoint AV/EDR alone is the wrong choke point; it may show resource stress after the fact, but it will not stop protocol-valid abuse on the network edge.
  • Patching only control-plane nodes misses the problem; the vulnerable path is the UPF.
06 · Verification

Crowdsourced verification payload.

Run this on the target Linux host that provides the Open5GS UPF role, either on the bare host or inside the container/VM image you actually deploy. Invoke it as bash check-open5gs-cve-2026-8187.sh; root is helpful but not strictly required if your package manager metadata is readable. It checks for an installed Open5GS package or UPF binary and reports VULNERABLE, PATCHED, or UNKNOWN based on whether the detectable version is <= 2.7.7.

noisgate-verify.sh
BASHREAD-ONLYSAFE
#!/usr/bin/env bash
# check-open5gs-cve-2026-8187.sh
# Detect likely exposure to CVE-2026-8187 on Linux hosts running Open5GS UPF.
# Exit codes: 0=PATCHED, 1=VULNERABLE, 2=UNKNOWN

set -u

TARGET_FIXED="2.7.7"
found_version=""
found_source=""

normalize_version() {
  # Strip distro/package suffixes while keeping dotted semantic core.
  # Examples: 2.7.7-1 -> 2.7.7 ; 2.7.7+git -> 2.7.7
  echo "$1" | sed -E 's/^([^0-9]*)([0-9]+(\.[0-9]+){1,3}).*$/\2/'
}

version_le() {
  # returns 0 if $1 <= $2
  [ "$(printf '%s\n%s\n' "$1" "$2" | sort -V | head -n1)" = "$1" ]
}

have_cmd() {
  command -v "$1" >/dev/null 2>&1
}

# 1) Package manager checks
if have_cmd dpkg-query; then
  if dpkg-query -W -f='${Version}\n' open5gs >/dev/null 2>&1; then
    raw_ver="$(dpkg-query -W -f='${Version}\n' open5gs 2>/dev/null | head -n1)"
    found_version="$(normalize_version "$raw_ver")"
    found_source="dpkg:open5gs"
  fi
fi

if [ -z "$found_version" ] && have_cmd rpm; then
  if rpm -q --qf '%{VERSION}\n' open5gs >/dev/null 2>&1; then
    raw_ver="$(rpm -q --qf '%{VERSION}\n' open5gs 2>/dev/null | head -n1)"
    found_version="$(normalize_version "$raw_ver")"
    found_source="rpm:open5gs"
  fi
fi

# 2) Binary existence / service hints
upf_bin=""
for candidate in /usr/bin/open5gs-upfd /usr/sbin/open5gs-upfd /usr/local/bin/open5gs-upfd /usr/local/sbin/open5gs-upfd; do
  if [ -x "$candidate" ]; then
    upf_bin="$candidate"
    break
  fi
done

if [ -z "$found_version" ] && [ -n "$upf_bin" ]; then
  # Some builds may embed a version string; best-effort only.
  raw_ver="$(strings "$upf_bin" 2>/dev/null | grep -Eo '[0-9]+\.[0-9]+\.[0-9]+' | sort -V | tail -n1)"
  if [ -n "$raw_ver" ]; then
    found_version="$(normalize_version "$raw_ver")"
    found_source="binary:$upf_bin"
  fi
fi

# 3) If no Open5GS footprint at all, UNKNOWN rather than PATCHED.
if [ -z "$found_version" ] && [ -z "$upf_bin" ]; then
  echo "UNKNOWN: Open5GS package/version not detected on this host"
  exit 2
fi

# 4) If UPF binary exists but version is unknown, keep UNKNOWN.
if [ -n "$upf_bin" ] && [ -z "$found_version" ]; then
  echo "UNKNOWN: open5gs-upfd present at $upf_bin but version could not be determined"
  exit 2
fi

# 5) Compare version threshold.
if version_le "$found_version" "$TARGET_FIXED"; then
  echo "VULNERABLE: detected Open5GS $found_version via $found_source (CVE-2026-8187 affects <= $TARGET_FIXED)"
  exit 1
fi

echo "PATCHED: detected Open5GS $found_version via $found_source (> $TARGET_FIXED)"
exit 0
07 · Bottom Line

If you remember one thing.

TL;DR
Monday morning: identify whether you have any Open5GS UPF nodes at all, then immediately review whether their UDP/2152 GTP-U interfaces are reachable from anything other than approved RAN/transport peers. This is a MEDIUM call, so there is no noisgate mitigation SLA — go straight to the 365-day remediation window; however, because I found no authoritative fixed release as of May 29, 2026, do not wait for patching alone — tighten peer filtering and transport isolation in the next available change window, document the exception, and once upstream ships a fix, deploy it within the noisgate remediation SLA of ≤365 days.

Sources

  1. NVD entry for CVE-2026-8187
  2. Open5GS issue #4492 public reproduction details
  3. Open5GS project site
  4. Open5GS v2.7.7 release page
  5. VulDB summary for CVE-2026-8187
  6. CISA Known Exploited Vulnerabilities catalog
  7. FIRST EPSS data and stats
  8. Ubuntu CVE tracker entry
Peer Review

What defenders are saying.

Submit a review attribution: handle + country only
0 flags selected · stored anonymously
Validation Results

Crowdsourced verification outputs.

Results submitted by users who ran the verification payload against their environment.