<?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-09-29T20:16:12.629200+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-2025-40214</id>
    <title>CVE-2025-40214 — af_unix: Initialise scc_index in unix_add_edge().</title>
    <updated>2026-09-29T20:16:12.630947+00:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml"><p><strong>Affected:</strong> Linux, Siemens RUGGEDCOM RST2428P</p>
<p>In the Linux kernel, the following vulnerability has been resolved:</p>
<p>af_unix: Initialise scc_index in unix_add_edge().</p>
<p>Quang Le reported that the AF_UNIX GC could garbage-collect a
receive queue of an alive in-flight socket, with a nice repro.</p>
<p>The repro consists of three stages.</p>
<p>1)
    1-a. Create a single cyclic reference with many sockets
    1-b. close() all sockets
    1-c. Trigger GC</p>
<p>2)
    2-a. Pass sk-A to an embryo sk-B
    2-b. Pass sk-X to sk-X
    2-c. Trigger GC</p>
<p>3)
    3-a. accept() the embryo sk-B
    3-b. Pass sk-B to sk-C
    3-c. close() the in-flight sk-A
    3-d. Trigger GC</p>
<p>As of 2-c, sk-A and sk-X are linked to unix_unvisited_vertices,
and unix_walk_scc() groups them into two different SCCs:</p>
<p>unix_sk(sk-A)-&gt;vertex-&gt;scc_index = 2 (UNIX_VERTEX_INDEX_START)
  unix_sk(sk-X)-&gt;vertex-&gt;scc_index = 3</p>
<p>Once GC completes, unix_graph_grouped is set to true.
Also, unix_graph_maybe_cyclic is set to true due to sk-X's
cyclic self-reference, which makes close() trigger GC.</p>
<p>At 3-b, unix_add_edge() allocates unix_sk(sk-B)-&gt;vertex and
links it to unix_unvisited_vertices.</p>
<p>unix_update_graph() is called at 3-a. and 3-b., but neither
unix_graph_grouped nor unix_graph_maybe_cyclic is changed
because both sk-B's listener and sk-C are not in-flight.</p>
<p>3-c decrements sk-A's file refcnt to 1.</p>
<p>Since unix_graph_grouped is true at 3-d, unix_walk_scc_fast()
is finally called and iterates 3 sockets sk-A, sk-B, and sk-X:</p>
<p>sk-A -&gt; sk-B (-&gt; sk-C)
  sk-X -&gt; sk-X</p>
<p>This is to…</p></div>
    </content>
    <link href="https://vulnerability.circl.lu/vuln/cve-2025-40214"/>
  </entry>
</feed>
