{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-74750","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","state":"PUBLISHED","assignerShortName":"Linux","dateReserved":"2026-08-15T05:44:03.931Z","datePublished":"2026-08-26T14:36:58.355Z","dateUpdated":"2026-08-27T05:01:10.597Z"},"containers":{"cna":{"providerMetadata":{"orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","shortName":"Linux","dateUpdated":"2026-08-27T05:01:10.597Z"},"descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\novpn: defer key slot crypto freeing to workqueue\n\nKey slots are released through a kref and the existing release path\nfrees the AEAD transforms from an RCU callback. That is not safe for all\ncrypto implementations: crypto_free_aead can sleep, for example when an\nasync or hardware implementation has teardown work to complete.\n\nUse queue_rcu_work for key-slot release. This keeps the RCU grace period\nneeded by lockless key-slot readers, but runs the actual crypto teardown\nfrom workqueue context where sleeping is allowed. Once the rcu_work\ncallback runs, pre-existing RCU readers are gone, and the final kref put\nalready proves that no transform user remains, so the worker can release\nthe AEAD transforms and free the slot directly.\n\nThe previous patch drains ovpn_wq during module exit, so queued key-slot\nteardown work cannot outlive module text."}],"metrics":[{"cvssV3_1":{"version":"3.1","vectorString":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","baseScore":7.5,"baseSeverity":"HIGH"},"scenarios":[{"lang":"en","value":"AV:N - Key-slot teardown runs from peer removal paths reachable over the network: remote TCP RST/FIN closes ovpn_tcp_close() and keepalive expiry deletes silent VPN peers, both releasing crypto key slots whose RCU callbacks call crypto_free_aead().\nAC:L - Once an ovpn instance with peers/keys exists, a remote party can deterministically trigger teardown (silence until keepalive timeout or force TCP disconnect) without winning races or influencing memory layout; async/hardware AEAD drivers make the sleeping-in-RCU callback reliably observable.\nPR:N - Exploitation needs only network reachability to an operational OpenVPN offload tunnel (or ability to reset its transport); no local account, CAP_NET_ADMIN, or init-namespace root on the victim is required beyond normal VPN service deployment.\nUI:N - No victim user action is required after ovpn is configured; peer teardown and key-slot release are driven automatically by transport disconnect or configured keepalive expiry from remote peer behavior.\nS:U - Impact is confined to kernel networking/crypto teardown on the same host; it does not cross VM, container, or IOMMU security boundaries and is standard in-kernel denial-of-service, not privilege escalation across authorities.\nC:N - The bug is calling a potentially sleeping crypto_free_aead() from an RCU callback, not an out-of-bounds read, UAF, or disclosure primitive; teardown occurs only after RCU grace period and final kref put with no attacker-readable side channel.\nI:N - Sleeping during AEAD transform release does not grant attacker-controlled memory writes or code execution; it violates atomic-context rules and can destabilize the kernel but does not corrupt adjacent structures into exploitable write primitives.\nA:H - crypto_free_aead() may block on async/hardware teardown while running in an RCU callback, triggering BUG: sleeping function called from invalid context, RCU stall, oops, or kernel panic and enabling repeatable remote denial of service against internet-facing VPN gateways."}]}],"affected":[{"product":"Linux","vendor":"Linux","defaultStatus":"unaffected","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/net/ovpn/crypto.c","drivers/net/ovpn/crypto.h","drivers/net/ovpn/crypto_aead.c","drivers/net/ovpn/crypto_aead.h"],"versions":[{"version":"8534731dbf2d52a539b94defd06d2a8d3514aacb","lessThan":"0f77ed5ee91946ea63e29f2e0ff9dc9e722d8da3","status":"affected","versionType":"git"},{"version":"8534731dbf2d52a539b94defd06d2a8d3514aacb","lessThan":"2da3dfa1ddfe55a065f484750c83660e3bd4ac00","status":"affected","versionType":"git"}]},{"product":"Linux","vendor":"Linux","defaultStatus":"affected","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/net/ovpn/crypto.c","drivers/net/ovpn/crypto.h","drivers/net/ovpn/crypto_aead.c","drivers/net/ovpn/crypto_aead.h"],"versions":[{"version":"6.16","status":"affected"},{"version":"0","lessThan":"6.16","status":"unaffected","versionType":"semver"},{"version":"7.1.10","lessThanOrEqual":"7.1.*","status":"unaffected","versionType":"semver"},{"version":"7.2","lessThanOrEqual":"*","status":"unaffected","versionType":"original_commit_for_fix"}]}],"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.16","versionEndExcluding":"7.1.10"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.16","versionEndExcluding":"7.2"}]}]}],"references":[{"url":"https://git.kernel.org/stable/c/0f77ed5ee91946ea63e29f2e0ff9dc9e722d8da3"},{"url":"https://git.kernel.org/stable/c/2da3dfa1ddfe55a065f484750c83660e3bd4ac00"}],"title":"ovpn: defer key slot crypto freeing to workqueue","x_generator":{"engine":"bippy-1.2.0"}}}}