[BUG] Specific IPv6 AllowedIPs Values Cause "Go Backend Library" error

grates_54_doyenne at icloud.com grates_54_doyenne at icloud.com
Mon Jun 30 20:27:10 UTC 2025


Hi folks,

I am writing to inquire about a potential bug.

Description:
Certain IPv6 ranges in the AllowedIPs field trigger the following error when activating a tunnel:
"Activation failure: Unable to turn on Go backend library.”

The issue was first observed in the macOS WireGuard client and later reproduced on iOS.

Root Cause:
When the following IPv6 ranges are added to the config:
fe80:1::/32, fe80:2::/31, fe80:4::/30, fe80:8::/29, fe80:10::/28
The client silently modifies them upon saving, replacing them with:
fe80::%lo0/32, fe80::%gif0/31, fe80::%anpi0/30, fe80::%en1/29, fe80::%awdl0/28
The injected suffixes (%lo0, %en1, etc.) appear to be network interface names, which then cause the Go backend to fail during activation, I guess.

Steps to Reproduce:
    • Create a new tunnel in the macOS or iOS WireGuard client.
    • Add the following to AllowedIPs:
fe80:1::/32, fe80:2::/31, fe80:4::/30, fe80:8::/29, fe80:10::/28
    • Save and activate the tunnel → Error occurs.
    • Reopen the config → Observe the modified IPs.

Environment:
    • OS: macOS 15.5, iOS 18.5
    • WireGuard version: 1.0.16 (both clients)

Notes:
    • The issue appears specific to the GUI clients (macOS/iOS); CLI utilities were not tested.
    • The automatic substitution of fe80:X::/Y with fe80::%<interface>/Y suggests a parsing bug in the config sanitization logic.


Igor


More information about the WireGuard mailing list