Security

    iOS Network Extension and VPN entitlement security

    A 2026 view of the iOS Network Extension framework building a VPN, content filter, and DNS proxy behind a gated entitlement, with sensitive traffic protected by TLS and pinning

    The Network Extension framework is how an iOS app reaches into the network stack: building a VPN, a content filter, or a DNS proxy that can see and route the device's traffic. Like the equivalent capability on Android, it is powerful and high-trust, an app holding a packet tunnel can observe and direct what the device sends, so Apple gates it behind a special entitlement, user-approved configuration, and a visible indicator. There are two sides worth understanding: the responsibility you take on if your app uses it, and the reason that, regardless, your sensitive traffic should never trust the network. Here is what Network Extension can do and how to handle it securely.

    Short answer

    The iOS Network Extension framework lets apps create VPNs, content filters, DNS proxies, and similar network components that can route or inspect device traffic. Per Apple, using it requires the Network Extension entitlement, which Apple gates, plus user-approved configuration and a visible system indicator for VPNs. The risks are two-sided: an app with this capability holds users' traffic, so it is a serious responsibility under App Store review, and a misused or malicious one could inspect or redirect traffic. To protect your own sensitive traffic from any such component on the device, rely on TLS and, for high-value connections, certificate pinning, so traffic passing through a VPN, filter, or proxy cannot be read or altered. Treat the network as untrusted regardless of what runs on the device.

    What you should know

    • Network Extension builds VPNs, filters, and DNS proxies: components that handle traffic.
    • It requires a gated entitlement: plus user-approved config and an indicator.
    • A traffic-handling component holds high trust: it can inspect or route traffic.
    • Using it is a serious responsibility: scrutinized in App Store review.
    • Protect your traffic with TLS and pinning: do not trust the network path.

    What can Network Extension do?

    It provides several types of network component, each touching traffic. The table summarizes.

    ComponentWhat it does
    Packet tunnel (VPN)Routes device traffic through the app, like a VPN
    Content filterInspects and can filter network traffic
    DNS proxyHandles the device's DNS queries
    Personal VPN configurationManages a VPN profile the user approves
    Entitlement gatingApple-granted capability, with review

    The Network Extension framework exposes provider types that sit at different points in the network path. A packet tunnel provider routes the device's traffic through the app, the iOS way to build a VPN, so the app can see and direct that traffic. A content filter provider can inspect and filter traffic, and a DNS proxy provider handles the device's DNS queries, each a privileged position over what the device communicates. Managing a VPN configuration requires the user to approve it, and iOS shows a VPN indicator while one is active. All of these require the Network Extension entitlement, which Apple grants as a capability, with some provider types subject to additional approval, so the framework is gated rather than freely available. The common thread is that each component occupies a trusted spot in the traffic path, which is exactly why access is controlled.

    What are the risks and the responsibility?

    The capability is high-trust, so using it responsibly matters, and so does not trusting the network yourself. If your app uses Network Extension, you take on real responsibility: a VPN, content filter, or DNS proxy can observe and direct users' traffic or DNS, among the most sensitive positions an app can hold, so you must handle that traffic with care, use the capability only for its disclosed purpose, never log or exfiltrate users' traffic beyond what the feature requires, and expect App Store review scrutiny appropriate to the capability. Apple's gating of the entitlement and the user-facing VPN indicator are part of keeping this visible and accountable, but the duty is yours. The separate, universal concern is that your app's sensitive traffic may pass through a VPN, content filter, or DNS proxy you do not control, whether a legitimate tool the user installed or something malicious, so you cannot assume the network path is clean. Both sides point the same way: the position is powerful, so use it sparingly and honestly, and protect your own data with encryption rather than trust.

    How do you handle it, on both sides?

    Use the entitlement responsibly, and protect your traffic regardless of the network. If your app legitimately needs Network Extension, request the gated entitlement for the specific provider type you need, use it only for the disclosed purpose, and treat the traffic, packets or DNS queries, as a serious responsibility: do not log or transmit it beyond what the feature requires, apply least privilege to what you do with it, and be ready for the heightened review that comes with the capability. On the other side, which applies to every app, do not trust the network: use TLS for all communication so traffic is encrypted end to end, and for high-value connections use certificate pinning, so even a VPN, content filter, or DNS proxy on the device can only see encrypted bytes and cannot read or man-in-the-middle your sensitive traffic. Validate data server-side as always. The principle mirrors the Android side: a traffic-handling capability is high-trust and to be used sparingly and honestly, and since you cannot assume the network path is clean, the protection for your own sensitive data is strong transport encryption and pinning, not trust in what runs on the device.

    What to watch out for

    The first trap, if your app uses Network Extension, is mishandling users' traffic or DNS, or using the capability beyond its disclosed purpose, which is both a breach of trust and a review risk; use it narrowly and never misuse the traffic. The second is assuming your traffic is safe on the device when a VPN, filter, or DNS proxy could be handling it; rely on TLS and pinning for sensitive connections. The third is overlooking that the entitlement is gated and reviewed, so plan for that. A pre-submission scan such as PTKD.com (https://ptkd.com), which reads the compiled IPA against OWASP MASVS, surfaces your entitlements and whether your app uses secure transport, helping confirm sensitive traffic is encrypted regardless of the network path.

    What to take away

    • The iOS Network Extension framework builds VPNs, content filters, and DNS proxies that can route or inspect device traffic, gated by an Apple-granted entitlement, user-approved configuration, and a VPN indicator.
    • A traffic-handling component holds high trust, so using Network Extension is a serious responsibility scrutinized in App Store review, and misuse is a real risk.
    • If you use it, handle traffic narrowly and honestly; regardless, protect your own sensitive traffic with TLS and certificate pinning, since it may pass through a component you do not control.
    • Use a pre-submission scan such as PTKD.com to surface your entitlements and confirm your app uses secure transport for sensitive traffic.
    • #ios
    • #network-extension
    • #vpn
    • #dns-proxy
    • #certificate-pinning
    • #owasp-masvs
    • #app-security

    Frequently asked questions

    What is the iOS Network Extension framework?
    It is the framework that lets an iOS app reach into the network stack to build components like VPNs, content filters, and DNS proxies. A packet tunnel provider routes the device's traffic through the app, the iOS way to build a VPN; a content filter provider can inspect and filter traffic; and a DNS proxy provider handles the device's DNS queries. Each occupies a trusted position over what the device communicates, which is why using it requires the Network Extension entitlement that Apple gates, along with user-approved configuration and a system indicator for active VPNs.
    How is it gated?
    Through an Apple-granted entitlement and user approval. Using Network Extension requires the Network Extension capability, which Apple grants, and some provider types are subject to additional approval, so the framework is not freely available. On top of that, a VPN configuration must be approved by the user, and iOS shows a VPN indicator while one is active, keeping the capability visible. These controls reflect that a traffic-handling component is high-trust, and they make using it a deliberate, accountable step that draws appropriate App Store review scrutiny rather than something added casually.
    What responsibility comes with using Network Extension?
    A serious one, because a VPN, content filter, or DNS proxy can observe and direct users' traffic or DNS, among the most sensitive positions an app can hold. So you must handle that traffic with care: use the capability only for its disclosed purpose, never log or exfiltrate users' traffic beyond what the feature requires, apply least privilege to what you do with it, and expect heightened App Store review. Apple's gating and the VPN indicator keep it visible, but the duty to handle users' traffic honestly and minimally is yours, and misuse is both unethical and a review risk.
    How do I protect my app's traffic from a VPN or filter on the device?
    Do not trust the network, because your sensitive traffic may pass through a VPN, content filter, or DNS proxy you do not control, legitimate or malicious. Use TLS for all communication so traffic is encrypted end to end, and for high-value connections use certificate pinning, so such a component can only see encrypted bytes and cannot read or man-in-the-middle your sensitive traffic. This applies to every app regardless of whether it uses Network Extension. Validate data server-side as always, treating the transport as untrusted rather than assuming the network path is clean.
    How does this compare to Android VpnService?
    They are platform counterparts. Both let an app route or handle device traffic from a high-trust position, both require user consent and show an indicator, and both carry a strict app-store policy and serious responsibility for the traffic. The lessons mirror each other: use the capability sparingly and honestly if your app needs it, and regardless of platform, protect your own sensitive traffic with TLS and certificate pinning because it may pass through such a component. A pre-submission scan such as PTKD.com surfaces your entitlements and whether your app uses secure transport on either platform.

    Keep reading

    Scan your app in minutes

    Upload an APK, AAB, or IPA. PTKD returns an OWASP-aligned report with copy-paste fixes.

    Try PTKD free