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

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
| Implementation | Language | Found | Confirmed | CVE assigned |
|---|---|---|---|---|
| Open5GS LTE | C | 30 | 30 | 30 |
| free5GC | Go | 14 | 14 | 12 |
| OAI 5G | C++ | 11 | 11 | 11 |
| Open5GS 5G | C | 10 | 9 | 9 |
| SD-Core | Go | 7 | 7 | 7 |
| OAI LTE | C++ | 7 | 7 | 7 |
| eUPF | Go | 5 | 5 | 5 |
| Total | 84 | 83 | 81 |
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
| Pattern | GTP-C | PFCP | Total |
|---|---|---|---|
| Absent field | 6 | 25 | 31 |
| Malformed field | 11 | 3 | 14 |
| Resource exhaustion | 7 | 7 | 14 |
| Invalid value | 4 | 8 | 12 |
| Invalid state | 7 | 1 | 8 |
| Invalid reference | 2 | 3 | 5 |
| Total | 37 | 47 | 84 |
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
- 01
PFCP Session Modification Request: A legitimate message type. The SMF sends these constantly to update live sessions. - 02
→ Create PDR: Adding a packet detection rule to an existing session. - 03
PDR ID: 1: Already in use by the victim session. Nothing checks uniqueness, and nothing checks that the sender owns it. - 04
Precedence: 10: The victim rule sits at 100. Lower wins, so this one is now first. - 05
FAR ID: → attacker tunnel: Where matched traffic is forwarded. This is the payoff.
End to end, as demonstrated on OAI 5G
- 1. Reachable N4Attacker sends PFCP Association Setup Request
- 2. Normal trafficVictim attaches, SMF sends Session Establishment
- 3. Duplicate admittedAttacker reuses victim PDR ID at Precedence 10
- 4. Working as designedUPF sorts PDRs by precedence
- 5. New tunnel to attackerMalicious PDR matches first
- 6. Session hijackedUplink traffic delivered to attacker
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
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
- PrimaryUnderstanding Implicit Trust Errors in Core Carrier Networks through Multi-Agent Flaw Discovery and AnalysisarXivaccessed 2026-08-11
- Reported byAn AI tool found 84 flaws in 5G network software and 23 of them still have no fixHelp Net Securityaccessed 2026-08-11


