CVE-2026-74727: ovpn: skip rehash for peers already removed from by_id
In the Linux kernel, the following vulnerability has been resolved:
ovpn: skip rehash for peers already removed from by_id
ovpn_nl_peer_set_doit() resolves the target peer via
ovpn_peer_get_by_id() before taking ovpn->lock. In the window between
the lookup (which only takes a refcount) and the subsequent
spin_lock_bh(&ovpn->lock), a concurrent OVPN_CMD_PEER_DEL, keepalive
expiry, or socket teardown can take ovpn->lock first, run
ovpn_peer_remove() to unhash the peer from all four tables (by_id,
by_vpn_addr4/6, by_transp_addr) and release the lock. set_doit then
acquires ovpn->lock and calls ovpn_peer_hash_vpn_ip(), which
re-inserts the now-removed peer back into the rehashing tables.
The same race affects the float path: ovpn_peer_endpoints_update()
holds only a refcount and acquires ovpn->lock very late (after async
AEAD decrypt and a netlink notification), then rehashes the peer
in the by_transp_addr table.
The resurrected peer becomes reachable again from the RX lookup
(ovpn_peer_get_by_transp_addr) and the TX VPN-IP lookup, even though
userspace believes it is gone. Once the data-path refcount drops the
peer is freed via call_rcu while the hash entries embedded in it
remain linked, opening a UAF window.
Bail out of the rehash when hash_entry_id is unhashed, mirroring
the sentinel already used by ovpn_peer_remove() to detect the
already-removed state. The check is safe under ovpn->lock, which
serializes every mutation of hash_entry_id, and is a no-op for the
add path because ovpn_peer_add_mp() inserts hash_entry_id before
calling ovpn_peer_hash_vpn_ip().
Security readout for executives and security teams
Plain-English summary
A timing flaw in Linux's ovpn code can accidentally restore a deleted VPN peer to internal lookup tables. The peer may later be freed while those references remain, creating a use-after-free condition. The supplied CVSS assessment indicates potentially severe confidentiality, integrity, and availability impact, although demonstrated outcomes are not provided.
Executive priority
Urgent for systems actively using ovpn. Schedule an expedited vendor-supported kernel update, prioritizing VPN infrastructure exposed to untrusted networks. Systems not using ovpn are less likely to be exposed, but applicability should be documented rather than assumed from package presence alone.
Technical view
Peer lookup occurs before ovpn locking. Concurrent deletion, expiry, or socket teardown can unhash the peer before peer-set or endpoint-float processing later rehashes it. RCU may then free the peer while embedded hash entries remain linked, creating a use-after-free window. The fix skips rehashing when hash_entry_id indicates removal.
Likely exposure
Exposure is limited to Linux systems using the affected ovpn functionality. The bundle lists 6.16, 6.18.45, 7.1.9, 7.2, and an ambiguous "0" as affected version entries, but does not clearly define ranges. Confirm applicability through distribution or kernel-vendor guidance rather than relying solely on these labels.
Exploitation context
The supplied CVSS 9.8 vector describes network reachability, low attack complexity, no required privileges, and no user interaction. Exploitation still depends on the peer-lifecycle race described. The bundle provides no proof of concept or evidence of active exploitation, and the CVE is not identified as being in KEV.
Researcher notes
The described sentinel check is performed under ovpn->lock and prevents removed peers from being rehashed; the add path remains unaffected because it inserts hash_entry_id first. No CWE, exploit artifact, attack telemetry, or precise affected-version range semantics are supplied. The three kernel.org references appear to represent fixes for applicable stable branches.
Mitigation direction
Apply the supported vendor kernel update incorporating the applicable referenced stable fix.
Reboot affected systems into the updated kernel and verify the running version.
If an update is unavailable, obtain supported mitigation guidance from the Linux distribution or kernel vendor.
Prioritize systems actively using ovpn, particularly network-reachable VPN infrastructure.
Validation and detection
Inventory running Linux kernels and determine which systems actively use ovpn.
Compare installed kernel packages with vendor advisories and the referenced stable fix commits.
After updating, confirm every system booted into the intended fixed kernel.
Regression-test peer deletion, keepalive expiry, socket teardown, and endpoint changes under concurrent activity.
Review kernel diagnostics for memory-safety warnings, crashes, or abnormal ovpn peer behavior.
Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.
Potential ATT&CK relevance
Conservative CVE-to-ATT&CK context
These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.
ATT&CK lookup starting points
Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.
cve · low confidence lookup
CVE-2026-74727 mapping review
Open the CVE-to-ATT&CK bridge for reviewed, inferred, or future official mappings tied to this CVE.
These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.
1CVSS vectors
3Timeline events
0ADP providers
4Source links
CVSS vector scores
1 official score
We collect every scored CVSS vector available in the official CNA and ADP containers. When more than one version is present, the table keeps the source vectors side by side instead of collapsing them into the highest score.