<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet href="/static/style.xsl" type="text/xsl"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
  <id>https://vulnerability.circl.lu/rss/recent/all/10</id>
  <title>Most recent entries from all</title>
  <updated>2026-10-04T00:56:45.284167+00:00</updated>
  <author>
    <name>Vulnerability-Lookup</name>
    <email>info@circl.lu</email>
  </author>
  <link href="https://vulnerability.circl.lu" rel="alternate"/>
  <generator uri="https://lkiesow.github.io/python-feedgen" version="1.0.0">python-feedgen</generator>
  <subtitle>Contains only the most 10 recent entries.</subtitle>
  <entry>
    <id>https://vulnerability.circl.lu/vuln/cve-2026-63979</id>
    <title>CVE-2026-63979 — net/handshake: hand off the pinned file reference to accept_doit</title>
    <updated>2026-10-04T00:56:45.300129+00:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml"><p><strong>Affected:</strong> Linux</p>
<p>In the Linux kernel, the following vulnerability has been resolved:</p>
<p>net/handshake: hand off the pinned file reference to accept_doit</p>
<p>handshake_req_next() removes the request from the per-net
pending list and drops hn_lock before handshake_nl_accept_doit()
reads req-&gt;hr_sk-&gt;sk_socket and dereferences sock-&gt;file (once in
FD_PREPARE() and again in get_file()).  In that window a
consumer running tls_handshake_cancel() followed by sockfd_put()
(svc_sock_free) or __fput_sync() (xs_reset_transport) releases
sock-&gt;file.  sock_release() then runs sock_orphan(), zeroing
sk_socket, and frees the struct socket.  The accept-side code
either reads NULL through sk_socket or chases freed memory.</p>
<p>The submit-side sock_hold() does not prevent this.  sk_refcnt
protects struct sock, but struct socket and sock-&gt;file are
independently refcounted via the file descriptor the consumer
owns.  Pinning sk leaves sock and sock-&gt;file unprotected.</p>
<p>Retarget the accept-side dereferences at req-&gt;hr_file, which was
pinned at submit time, instead of req-&gt;hr_sk-&gt;sk_socket-&gt;file.
Pinning on its own is not sufficient: a consumer that cancels
between handshake_req_next() returning and accept_doit reaching
FD_PREPARE() takes the !remove_pending() branch in
handshake_req_cancel() and drops hr_file before the accept side
takes its own reference.  Hand off an additional file reference
inside handshake_req_next(), under hn_lock, so the accept side
operates on a reference that no concurrent handshake_req_cancel()
can…</p></div>
    </content>
    <link href="https://vulnerability.circl.lu/vuln/cve-2026-63979"/>
  </entry>
</feed>
