{"id":15033,"date":"2026-09-04T19:02:22","date_gmt":"2026-09-04T11:02:22","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-64044"},"modified":"2026-09-04T19:02:22","modified_gmt":"2026-09-04T11:02:22","slug":"cve-2026-64044","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-64044","title":{"rendered":"CVE-2026-64044 [HIGH] &#8211; In the Linux kernel, the following vulnerability has been resolved:\n\novpn: respect peer re"},"content":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>ovpn: respect peer refcount in CMD_NEW_PEER error path<\/p>\n<p>ovpn_nl_peer_new_doit()&#8217;s error path calls ovpn_peer_release() directly<br \/>\nrather than ovpn_peer_put(), bypassing the kref. The accompanying<br \/>\ncomment (&#8220;peer was not yet hashed, thus it is not used in any context&#8221;)<br \/>\nholds for UDP but not for TCP.<\/p>\n<p>For UDP, the ovpn_socket union uses the .ovpn arm and never points back<br \/>\nat a peer; UDP encap_recv looks up peers via the not-yet-populated<br \/>\nhashtables, so the new peer is unreachable until ovpn_peer_add()<br \/>\npublishes it.<\/p>\n<p>For TCP, ovpn_socket_new() sets ovpn_sock-&gt;peer and<br \/>\novpn_tcp_socket_attach() publishes ovpn_sock via rcu_assign_sk_user_data().<br \/>\nFrom that moment until ovpn_socket_release() detaches in the error path,<br \/>\nthe TCP fd is fully wired: userspace recvmsg \/ sendmsg \/ close \/ poll<br \/>\non the fd, as well as the strparser-driven ovpn_tcp_rcv() path, can<br \/>\nreach the peer through sk_user_data -&gt; ovpn_sock-&gt;peer and bump its<br \/>\nrefcount via ovpn_peer_hold().<\/p>\n<p>ovpn_tcp_socket_wait_finish() (called inside ovpn_socket_release())<br \/>\ndrains strparser and the tx work, but does not synchronize with<br \/>\nuserspace syscall callers that already hold a peer reference. If<br \/>\novpn_nl_peer_modify() or ovpn_peer_add() returns an error while such<br \/>\na caller is in flight &#8211; notably an ovpn_tcp_recvmsg() blocked in<br \/>\n__skb_recv_datagram() on peer-&gt;tcp.user_queue &#8211; the direct<br \/>\novpn_peer_release() destroys the peer while the caller still holds<br \/>\nthe reference, and the eventual ovpn_peer_put() from that caller<br \/>\noperates on freed memory.<\/p>\n<p>Replace the direct destructor call with ovpn_peer_put() so the kref<br \/>\ncorrectly defers destruction until the last reference is dropped.<br \/>\nIn the common case where no concurrent user is present, behaviour is<br \/>\nunchanged: the kref hits zero immediately and ovpn_peer_release_kref()<br \/>\nruns the same destructor.<\/p>\n<p>With this conversion ovpn_peer_release() has no callers outside peer.c<br \/>\n&#8211; ovpn_peer_release_kref() in the same translation unit is the only<br \/>\nremaining user &#8211; so make it static and drop its declaration from<br \/>\npeer.h.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>ovpn: respect peer refcount in CMD_NEW_PEER error path<\/p>\n<p>ovpn_nl_peer_new_doit()&#8217;s error path calls ovpn_peer_release() directly<br \/>\nrat<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-15033","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/15033","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln"}],"about":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/types\/vuln"}],"wp:attachment":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=15033"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=15033"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=15033"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}