TL;DR: 64% of 444 iOS apps with LLM features exposed exploitable credentials or backend access, and 72% were still exploitable 90 days after disclosure, according to Approov’s analysis of Wake Forest University research; in 146 cases attackers could send billable inference requests and often extract system prompts. The key issue is not iOS alone but the broader failure of putting trust decisions and secrets on an interceptable client channel.
At a glance
What this is: This is an analysis of empirical research showing that LLM API credentials in iOS apps often leak in transit, with exploitable access persisting even after disclosure.
Why it matters: It matters because the failure mode is architectural, not platform-specific, so IAM, NHI, and app security teams need controls that authenticate callers and externalise secrets rather than relying on client-side protection.
By the numbers:
- The researchers analyzed 444 iOS apps with working LLM features.
- 282 of them, or 64%, exposed exploitable credentials or backend access in network traffic.
- 146 apps were fully exploitable, allowing arbitrary inference requests billed to the developer’s account.
Context
LLM API credential leakage is a governance problem as much as a coding problem. When a client application carries or forwards a provider key, the secret becomes visible wherever traffic can be intercepted, and standard client-side hardening does not change that trust boundary.
The research is relevant beyond iOS because the underlying failure is the same across mobile and cross-platform environments: credentials, authentication checks, and trust decisions are being placed on endpoints the developer does not control. That creates a direct intersection with NHI governance, secrets management, and application identity.
The study’s remediation findings are particularly important for security programmes. If a defect persists after disclosure because the architecture itself is wrong, rotation-only thinking is not enough; the control has to move to issuance time and backend verification.
Key questions
Q: What fails when LLM credentials are placed on a mobile client?
A: The failure is not just leakage of a string. The real break is that the client becomes the trust boundary, so anyone who can intercept traffic or modify runtime behaviour can replay the credential, drain the account, or reach the backend directly. Security has to shift to server-side issuance and verification.
Q: Why do client-side LLM protections still leave apps exposed?
A: Because client-side controls assume the endpoint will enforce them honestly. On a controlled device, attackers can bypass proxy checks, hook certificate validation, or replay intercepted tokens. If the backend does not independently authenticate the caller, the client control only slows the attacker, it does not stop them.
Q: What are the signs that an app-to-LLM control is failing?
A: Common signs include persistent use of bearer tokens with long lifetimes, unauthenticated relays, keys visible in traffic, and failures that remain after secret rotation. If disclosure fixes nothing unless the codebase is rebuilt, the problem is probably architectural rather than a leaked credential.
Q: Should teams prioritise secret rotation or backend caller verification first?
A: Backend caller verification should come first when the secret is already leaving the device, because rotation does not fix an open relay or broken token validation. Rotation is useful once the trust boundary is correct, but it cannot repair a design that never authenticated the request properly.
Technical breakdown
Why interceptable transport exposes LLM credentials
The study’s core insight is that a secret only needs to cross an observable channel once to be exposed. It does not matter whether the key is hardcoded, assembled at runtime, hidden in native code, or fetched later from a server if it is ultimately sent over a network path a device owner or attacker can inspect. Runtime interception defeats the assumption that on-device storage hardening or obfuscation can keep an API key confidential. For LLM integrations, the credential is often also the business control that governs billing and prompt access, so exposure has both security and cost impact.
Practical implication: Shift protection from code hiding to channel control and remove provider credentials from client-controlled traffic wherever possible.
Why backend proxies fail when they do not authenticate the caller
Moving a provider key into a backend proxy reduces client exposure only if the proxy itself is protected. The study found many relays that were effectively open because they lacked authentication, which means the attacker did not need the original secret at all, only access to the relay endpoint. That is a different failure mode from key leakage and it cannot be fixed by rotating a string. The architecture must prove who is calling before it will forward requests to the LLM provider. Without that check, the proxy simply relocates the trust problem from the app package to the backend edge.
Practical implication: Require server-side caller authentication and treat any unauthenticated relay as a direct exposure of the LLM budget and backend trust boundary.
Why layered transport defense beats single controls
Certificate pinning, proxy bypass checks, and related controls are useful, but they are not sufficient alone against a controlled endpoint. On a compromised device, runtime hooking can defeat client-side checks, and a single anti-interception mechanism is often brittle against more than one capture path. The study showed that layered combinations were far more effective, while single defenses were bypassed at high rates. This is not just a mobile engineering issue. It is an access-governance lesson: controls that live only on the client side are advisory unless the backend also makes an independent decision.
Practical implication: Use layered client and server controls, but make the backend the final authority on whether a request is trusted.
Threat narrative
Attacker objective: The attacker’s objective is to hijack LLM access for unauthorised inference, extract proprietary prompts, and consume the developer’s metered account.
- Entry occurs when an attacker intercepts LLM API traffic from a mobile app that sends provider credentials or bearer tokens over the network.
- Credential access follows because the intercepted material can be replayed against the live backend, even when the secret is hidden in code or assembled at runtime.
- Escalation happens when the backend lacks authentication or accepts weak token logic, allowing arbitrary inference requests and prompt extraction at the developer’s expense.
- Impact is billable misuse of the LLM account, exposure of proprietary system prompts, and persistent abuse that can continue until the architecture changes.
Breaches seen in the wild
- 12,000 secrets in LLM training data: Truffle Security found 11,908 live API keys and passwords hard-coded in web pages captured by Common Crawl, a dataset used to train LLMs.
- 17,000+ Secrets Exposed in Public GitLab Repositories: Over 17,000 secrets including API keys and tokens exposed in public GitLab Cloud repositories.
Read and download The State of NHI & AI Agent Breach Report 2026, covering 200+ breaches impacting Non-Human Identities including AI Agents.
NHI Mgmt Group analysis
Transport visibility, not platform choice, is the governing failure mode. The research shows that if a credential must cross an interceptable channel, it is already in the wrong trust boundary. That means mobile LLM security is fundamentally a secrets-governance problem, not just a mobile-hardening problem. The practical conclusion is that programmes should prioritise where secrets live and how they are issued, not just where they are stored.
Runtime visibility creates a distinct form of secret leakage debt. Teams often assume obfuscation, native code, or app-store packaging materially reduces risk, but this study shows that the network leg dominates. The same logic applies to broader NHI programmes when a workload or agent carries long-lived credentials into environments it does not fully control. The fix is to reduce the lifetime and scope of the secret, then anchor trust in server-side verification.
Backend authentication is the real control boundary for app-to-LLM access. Open relays and weak token validation are not implementation mistakes in the narrow sense; they are governance failures about who is allowed to invoke the service. That is why this topic intersects with NHI identity management as well as application security. Practitioners should treat machine authentication as the policy decision point, because anything enforced only in the client is easy to bypass.
Secret rotation alone does not address architectural misuse. The 72% remediation gap after disclosure is the strongest signal in the study. Some apps could not be fixed by revoking a leaked string because the defect was the absence of an authentication boundary or broken token validation. This is the named concept this research sharpens: runtime channel trust gap, where the channel carrying the credential is the real vulnerability. Teams should govern the channel, not just the credential.
From our research library:
- AI-related credential leaks surged 81.5% year-over-year in 2025, with the surrounding AI infrastructure leaking 5x faster than core LLM providers, according to the State of Secrets Sprawl 2026.
- Only 44% of developers are reported to follow security best practices for secrets management, exposing a significant developer behaviour gap, according to the State of Secrets in AppSec.
- Read next: Secrets Management Buyer's Guide
What this signals
Runtime channel trust gap: once a mobile app sends a provider credential over an interceptable channel, the security boundary has already failed. Programmes that treat this as a secrets-rotation problem will keep missing the real issue, which is whether the backend independently verifies the caller before it serves the model.
The same control pattern applies beyond iOS. As AI features spread across mobile and cross-platform apps, identity and access teams should assume that client-side trust checks will be bypassed and move enforcement to server-side issuance, attestation, and short-lived credentials.
AI-related credential leaks surged 81.5% year-over-year in 2025, with the surrounding AI infrastructure leaking 5x faster than core LLM providers, according to the State of Secrets Sprawl 2026.
For practitioners
- Externalise LLM credentials from client apps Keep provider keys out of the app package and out of client-controlled traffic. Deliver credentials from a central service only at request time, after the caller has been verified.
- Require server-side proof of caller identity Make the backend verify that each request comes from a legitimate app instance running in an expected environment before it forwards any LLM request.
- Treat proxy auth as mandatory, not optional If a backend relay exists, protect it with authentication and reject open-relay behaviour. A proxy without caller authentication is just a different path to the same abuse.
- Layer transport controls with anti-hooking checks Combine certificate pinning, anti-interception checks, and server-side refusal logic so that bypassing one client control does not automatically expose the backend.
Key takeaways
- The study shows that LLM app risk is driven by how secrets and trust are handled across the channel, not by iOS alone.
- A large share of apps remained exploitable after disclosure because some failures were architectural, including open relays and broken token validation.
- The strongest defence is to externalise secrets, verify callers server-side, and treat client-side transport controls as layered but insufficient on their own.
Standards & Framework Alignment
This section maps relevant standards and security frameworks to the operational risks and controls described in this guidance.
OWASP Non-Human Identity Top 10 and MITRE ATT&CK address the attack and risk surface, while NIST SP 800-53 Rev 5 sets the governance and control requirements practitioners need to meet.
| Framework | Control / Reference | Relevance |
|---|---|---|
| OWASP Non-Human Identity Top 10 | NHI-02 — Secret Leakage | The study centres on credentials exposed in mobile network traffic. |
| NHI-04 — Insecure Authentication | Unauthenticated relays and weak token logic are core findings in the article. | |
| NHI-07 — Long-Lived Secrets | Persistent exploitable access shows the risk of tokens that outlive their intended trust window. | |
| Recommendation — Scan mobile apps for exposed NHI secrets and move provider credentials out of client-controlled traffic. Require server-side authentication before any app-to-LLM request is forwarded. Replace long-lived LLM credentials with centrally issued, short-lived secrets. | ||
| MITRE ATT&CK | TA0006;TA0010 — Credential Access; Exfiltration | The attacker model depends on intercepting credentials and replaying them against the backend. |
| Recommendation — Map intercepted LLM credentials to TA0006 and TA0010 to prioritise detection of replay and abuse. | ||
| NIST SP 800-53 Rev 5 | IA-5 — Authenticator Management | The article shows why credential lifecycle control matters when secrets are exposed in transit. |
| Recommendation — Apply IA-5 to centralise authenticator rotation, revocation, and lifetime management for LLM access. | ||
Key terms
- Runtime Channel Trust Gap: A runtime channel trust gap is the mismatch between where a secret is protected and where it must travel to be used. If the credential crosses a channel that attackers can intercept or manipulate, client-side secrecy no longer provides real security.
- Unauthenticated Backend Relay: An unauthenticated backend relay is a server-side proxy that forwards requests without verifying who sent them. It shifts the secret off the device but leaves the service open to abuse because the attacker only needs access to the relay endpoint.
- Client-Side Trust Boundary: The point at which browser code is allowed to see, use, or transmit sensitive data. It is not a physical boundary, but a governance boundary defined by policy, monitoring, and control over what loaded scripts can access during execution.
- Runtime Attestation: Runtime attestation is a control that cryptographically proves a request came from the expected system or workload. It adds evidence to machine-to-machine access decisions, which is especially valuable when bearer tokens alone cannot distinguish a real integration from an attacker replaying credentials.
Deepen your knowledge
The NHI Foundation Level course, the industry's only accredited NHI security programme, covers NHI governance, machine identity security, and secrets management. It helps practitioners connect identity controls to the application and runtime decisions that shape real exposure.
Published by the NHIMG editorial team on October 16, 2026.
NHI Mgmt Group, the independent authority on Non-Human Identity, IAM, and Agentic AI security. nhimg.org