P.K. SHARMA

Cyber security intelligence, AI governance, practitioner analysis

AI Security

An AI agent found 84 flaws in 5G core software. Twenty-three still have no fix

One research group produced 81 CVEs from a single paper. Fifty-eight are patched. The gap is not a maintainer failure: finding vulnerabilities has moved to machine speed and everything downstream of finding has not.

By Parminder Kumar Sharma · · 5 min read

A cellular antenna unit mounted on a mast, seen from below against a near-black night sky, edge-lit in cyan with a single red status light on the housing.

What the paper actually reports

Five researchers at Nanyang Technological University pointed a multi-agent system called iFinder at seven open-source cellular core implementations. It came back with 84 previously unknown vulnerabilities. Developers confirmed 83 and 81 now carry CVE numbers.

The paper is Understanding Implicit Trust Errors in Core Carrier Networks through Multi-Agent Flaw Discovery and Analysis, by Ziyu Lin, Ziting Wang, Xinfeng Li, Wei Dong and XiaoFeng Wang, submitted 11 July 2026 and accepted to USENIX Security 2026.

The bug class they name is the part worth understanding. Implicit trust errors, which they shorten to iTrue, are cases where one core component accepts input or state from another without checking it, because the interface between them was designed on the assumption of physical isolation. The authors break it into three concrete failures:

  • Omitted syntactic validation. The field is parsed without checking it is well formed.
  • Unenforced semantic invariants. The field parses, but nothing checks whether the value is legal in this state, or whether the sender is entitled to it.
  • Unchecked resource allocation. A request allocates a UE context, a timer or a bearer structure without checking any remains.

Nothing here is memory corruption. Every one of these is a missing if.

The distribution nobody quotes

The 84 flaws by implementation

ImplementationLanguageFoundConfirmedCVE assigned
Open5GS LTEC303030
free5GCGo141412
OAI 5GC++111111
Open5GS 5GC1099
SD-CoreGo777
OAI LTEC++777
eUPFGo555
Total848381
Table 3 of the paper. Note the fourth column: this is not a 5G story, and the worst single result is a 4G core.

Thirty of the 84 are in the LTE core of a single project. More than a third of everything found, in 4G code that has been in production far longer than any 5G deployment and is carrying traffic for private networks today.

Memory safety is not the axis. The Go implementations produced 26 findings between them. These are logic flaws, and a memory-safe language does not prevent a missing entitlement check.

The 84 flaws by pattern and protocol

PatternGTP-CPFCPTotal
Absent field62531
Malformed field11314
Resource exhaustion7714
Invalid value4812
Invalid state718
Invalid reference235
Total374784
Table 5 of the paper. One cell, absent-field handling on PFCP, accounts for 31% of every flaw found.

Twenty-five flaws are one pattern on one protocol: a PFCP handler reading a field that is not there. That is not seven codebases each getting unlucky. It is a single shared assumption, written down once in a specification that never required the check because the interface was never meant to be reachable.

How the session hijack works

The most serious finding was validated on commercial 5G cores, not only in a lab. It is in the UPF, the User Plane Function, which is the component that actually forwards subscriber traffic.

The UPF is programmed over the N4 interface using PFCP, the Packet Forwarding Control Protocol. The SMF sends it Packet Detection Rules: each PDR has an ID, a Precedence value, and a bound Forwarding Action Rule saying where matching traffic goes. Lower Precedence means higher priority.

The flaw is that the UPF does not check PDR ID uniqueness when handling a PFCP Session Modification Request.

The message that does it

PFCP Session Modification Request→ Create PDR   PDR ID: 1   Precedence: 10   FAR ID: → attacker tunnel
  1. 01PFCP Session Modification Request: A legitimate message type. The SMF sends these constantly to update live sessions.
  2. 02→ Create PDR: Adding a packet detection rule to an existing session.
  3. 03PDR ID: 1: Already in use by the victim session. Nothing checks uniqueness, and nothing checks that the sender owns it.
  4. 04Precedence: 10: The victim rule sits at 100. Lower wins, so this one is now first.
  5. 05FAR ID: → attacker tunnel: Where matched traffic is forwarded. This is the payoff.
Structurally valid, correctly encoded, and accepted. The attack is entirely in the third and fourth lines: an ID that already belongs to somebody, and a number lower than theirs.

End to end, as demonstrated on OAI 5G

  1. 1. Reachable N4Attacker sends PFCP Association Setup Request
  2. 2. Normal trafficVictim attaches, SMF sends Session Establishment
  3. 3. Duplicate admittedAttacker reuses victim PDR ID at Precedence 10
  4. 4. Working as designedUPF sorts PDRs by precedence
  5. 5. New tunnel to attackerMalicious PDR matches first
  6. 6. Session hijackedUplink traffic delivered to attacker
Six steps, none of which is an exploit in the memory-corruption sense. The core does exactly what it was told at every stage.

The number that matters is 23

Every write-up leads with 84. The number that changes anything is 23: flaws confirmed, catalogued, publicly numbered, and unfixed.

What survives each stage, out of 84

Found84 flaws
Confirmed by developers83 flaws
CVE assigned81 flaws
Patched58 flaws
Still unfixed23 flaws
Measured counts from the paper. The drop from 81 to 58 is the story: finding produced 81 catalogued flaws and fixing absorbed 58 of them.

A CVE is a published description of what to look for. Twenty-three of them exist for software carrying voice and data, and the description is available while the fix is not.

That is not a maintainer failure. Patching 58 of 81 findings from one paper is a good showing for small volunteer teams. It is structural, and the shape is new.

What iFinder made cheap

  • Reading seven entire codebases in three languages for one bug class.
  • Cross-checking each candidate against the 3GPP specification to suppress hallucinated findings.
  • Generating a proof-of-concept per candidate and refining it by running it.
  • Doing all of it again on the next implementation.

What it did not touch

  • Reproducing the flaw in a maintainer environment.
  • Deciding whether the fix breaks 3GPP conformance.
  • Review, regression testing and release.
  • Every operator upgrading a production core.

The hallucination problem is worth noting, because it is the reason this is not another pile of false positives. iFinder maps each candidate to the protocol procedure it implements in the specification, then maps that procedure back to the codebase to recover the full execution context, so the agent can see whether a check exists elsewhere before claiming it is missing. Ninety-nine percent developer confirmation is the result of that step, not of the finding step.

Who actually runs these cores

The reflex is that this is a mobile operator problem. It is, and they have security teams. The exposure that gets missed is elsewhere.

Open5GS, free5GC and OpenAirInterface are what private cellular networks are built on. Manufacturing sites, ports, warehouses, hospital campuses, mining operations. The people running them chose 5G or private LTE because Wi-Fi could not cover the site, and they are now running telecom core software with the operational maturity of a factory network.

Take this with you

If you run a private 5G or LTE network

  • Establish which core you run and at which version. On a private network this is frequently undocumented and known only to the integrator who installed it.
  • Check that version against the CVEs from this paper, and expect some to have no patch. Twenty-three did as of 11 August 2026.
  • Find out whether N4 is reachable from anything other than the SMF. In a cloud-native deployment that is a network policy question, not a firewall rule, and it is the precondition for the session hijack.
  • Confirm your integrator contract covers security patching rather than only availability. Most cover availability.
  • Log PFCP Session Modification Requests and alert on a Create PDR whose ID already exists in the session. That is the detection signature, and it is cheap because legitimate modifications do not reuse live IDs.
  • Ask who monitors the core. On most private networks the honest answer is nobody, because it was procured as connectivity rather than as infrastructure.

What this changes about disclosure

Coordinated disclosure was designed around a researcher finding a handful of issues and a vendor fixing them inside ninety days. It assumed finding was the expensive part.

If one group with one system can hand a maintainer eighty findings at once, ninety days is not a deadline, it is a fiction. The question for the next twelve months is not whether AI will find more vulnerabilities. It will. It is whether anything downstream of finding can absorb the volume, and on this evidence the answer is not yet.

For the defensive side of the same capability, see the guide on AI red teaming. The tooling that produced this paper is the tooling that will be pointed at your estate, by you or by somebody else. The same trust-the-caller shape appears in MCP tool access, where a protocol built for a trusted local process was exposed to an untrusted one.

Sources

  1. PrimaryUnderstanding Implicit Trust Errors in Core Carrier Networks through Multi-Agent Flaw Discovery and AnalysisarXivaccessed 2026-08-11
  2. Reported byAn AI tool found 84 flaws in 5G network software and 23 of them still have no fixHelp Net Securityaccessed 2026-08-11

Share this briefing

Know someone who owns this problem? Send it to them.

Related briefings

The briefing, in your inbox

Practitioner analysis of cyber and AI security news. No vendor noise.

One email per briefing. Unsubscribe any time.