Skip to content

feat: Reduce kill switch auth requirements#10

Open
SRugina wants to merge 1 commit intoProtonVPN:stablefrom
SRugina:feat/reduce-killswitch-auth
Open

feat: Reduce kill switch auth requirements#10
SRugina wants to merge 1 commit intoProtonVPN:stablefrom
SRugina:feat/reduce-killswitch-auth

Conversation

@SRugina
Copy link

@SRugina SRugina commented Feb 8, 2026

To mitigate CVE-2025-9615, NetworkManager from 1.57.1 (at least) will remove the modify_system build option (a new option is available for backwards compatibility but is discouraged). Debian, NixOS, & Tumbleweed already do not rely on this, but Arch, Fedora, and Alpine do (for now). See https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/2324

If a non-permanent kill switch were enabled ("Standard" and/or IPv6) without modify_system, a polkit prompt would appear for every manual (dis)connection of the VPN (except within auth timeout of previous prompt). This is because editing system connections uses the org.freedesktop.NetworkManager.settings.modify.system polkit action, which without modify_system defaults to auth_admin_keep.

To fix this, a user connection is sufficient as on boot it is acceptable to wait for login like the VPN connection (also a user connection). When the user's regular connection is also a user connection, there will be no polkit prompt to manually (dis)connect the VPN.

Only the permanent ("Advanced") kill switch needs to be a system connection so that there is no leak before user login on boot, and since it's permanent (written to disk) the polkit prompt is only required when enabling/disabling the permanent kill switch setting and not on every manual (dis)connection of the VPN.

To mitigate CVE-2025-9615, NetworkManager from 1.57.1 (at least) will
remove the modify_system build option (a new option is available for
backwards compatibility but is discouraged). Debian, NixOS, & Tumbleweed
already do not rely on this, but Arch, Fedora, and Alpine do (for now).
See https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/2324

If a non-permanent kill switch were enabled ("Standard" and/or IPv6)
without modify_system, a polkit prompt would appear for every manual
(dis)connection of the VPN (except within auth timeout of previous
prompt). This is because editing system connections uses the
`org.freedesktop.NetworkManager.settings.modify.system` polkit action,
which without modify_system defaults to `auth_admin_keep`.

To fix this, a user connection is sufficient as on boot it is acceptable
to wait for login like the VPN connection (also a user connection). When
the user's regular connection is also a user connection, there will be
no polkit prompt to manually (dis)connect the VPN.

Only the permanent ("Advanced") kill switch needs to be a system
connection so that there is no leak before user login on boot, and since
it's permanent (written to disk) the polkit prompt is only required when
enabling/disabling the permanent kill switch setting and not on every
manual (dis)connection of the VPN.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant