KernelScan.io

HIGH Introduced in 6.16

ovpn KeySlot Panic

CVE-2026-74750

CVSS 7.5 / 10.0 NVD

CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H

KernelScan AI5.5MEDIUM

01

In the Linux kernel, the following vulnerability has been resolved: ovpn: defer key slot crypto freeing to workqueue Key slots are released through a kref and the existing release path frees the AEAD transforms from an RCU callback. That is not safe for all crypto implementations: crypto_free_aead can sleep, for example when an async or hardware implementation has teardown work to complete. Use queue_rcu_work for key-slot release. This keeps the RCU grace period needed by lockless key-slot readers, but runs the actual crypto teardown from workqueue context where sleeping is allowed. Once the rcu_work callback runs, pre-existing RCU readers are gone, and the final kref put already proves that no transform user remains, so the worker can release the AEAD transforms and free the slot directly. The previous patch drains ovpn_wq during module exit, so queued key-slot teardown work cannot outlive module text.

02

Engine v0.6.0

Risk summary

The ovpn kernel VPN driver frees cryptographic AEAD transforms from an RCU callback, which runs in atomic context where sleeping is not permitted. When a crypto implementation that sleeps during teardown (e.g. async or hardware-backed) is in use, releasing a key slot triggers a kernel panic. Any user who can configure and operate an ovpn interface — typically requiring CAP_NET_ADMIN, potentially obtainable in a user namespace — can trigger this denial of service during normal VPN operation such as key rotation or peer disconnect.

Affecteddrivers/net/ovpn/crypto.c, drivers/net/ovpn/crypto_aead.c (ovpn VPN driver)

Vulnerability analysis

The ovpn VPN driver releases key slots through a reference-counted object whose teardown runs in atomic context. That teardown frees the underlying cryptographic transforms, but some crypto implementations need to sleep during cleanup — for example, async or hardware-backed providers that have completion work to finish. Atomic context forbids sleeping, so using such a crypto implementation causes a kernel panic. The fix keeps the waiting period needed by concurrent readers but moves the actual crypto cleanup to a workqueue thread where sleeping is allowed. The vulnerable path is reachable by any user who can configure and operate an ovpn VPN interface, which normally requires CAP_NET_ADMIN — a capability an unprivileged local user may obtain through user namespaces on systems where that is permitted.

03

BranchIntroducedFixed inPatch commit
7.16.167.1.100f77ed5ee919
mainline6.167.22da3dfa1ddfe