WireGuard is broken on iOS 15 beta

Andrej Mihajlov and at mullvad.net
Fri Jun 11 09:02:40 UTC 2021

My approach worked too. However it relies on the private interfaces of NetworkExtension framework, which we’d probably want to avoid.

In short it can be expressed in one line as:

let fd = packetFlow.perform(Selector("interface")).toOpaque().advanced(by: 0x128).assumingMemoryBound(to: Int32.self).pointee

But I bet that walking over fds is much safer.


> On 11 Jun 2021, at 10:50, Jason A. Donenfeld <Jason at zx2c4.com> wrote:
> Can I infer from that that your technique didn't work? Some
> confirmation one way or another there would be useful, so I know
> whether to dedicate some RE time next week to it or not. If I can
> avoid the fd iteration, I'd prefer that.
> Jason

More information about the WireGuard mailing list