<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet href="/static/style.xsl" type="text/xsl"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" version="2.0">
  <channel>
    <title>Most recent entries from all</title>
    <link>https://cve.radiocsirt.org</link>
    <description>Contains only the most 10 recent entries.</description>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>python-feedgen</generator>
    <language>en</language>
    <lastBuildDate>Sat, 03 Oct 2026 04:02:01 +0000</lastBuildDate>
    <item>
      <title>CVE-2023-53024 — bpf: Fix pointer-leak due to insufficient speculative store bypass mitigation</title>
      <link>https://cve.radiocsirt.org/vuln/cve-2023-53024</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Linux&lt;/p&gt;
&lt;p&gt;In the Linux kernel, the following vulnerability has been resolved:&lt;/p&gt;
&lt;p&gt;bpf: Fix pointer-leak due to insufficient speculative store bypass mitigation&lt;/p&gt;
&lt;p&gt;To mitigate Spectre v4, 2039f26f3aca (&amp;#34;bpf: Fix leakage due to
insufficient speculative store bypass mitigation&amp;#34;) inserts lfence
instructions after 1) initializing a stack slot and 2) spilling a
pointer to the stack.&lt;/p&gt;
&lt;p&gt;However, this does not cover cases where a stack slot is first
initialized with a pointer (subject to sanitization) but then
overwritten with a scalar (not subject to sanitization because
the slot was already initialized). In this case, the second write
may be subject to speculative store bypass (SSB) creating a
speculative pointer-as-scalar type confusion. This allows the
program to subsequently leak the numerical pointer value using,
for example, a branch-based cache side channel.&lt;/p&gt;
&lt;p&gt;To fix this, also sanitize scalars if they write a stack slot
that previously contained a pointer. Assuming that pointer-spills
are only generated by LLVM on register-pressure, the performance
impact on most real-world BPF programs should be small.&lt;/p&gt;
&lt;p&gt;The following unprivileged BPF bytecode drafts a minimal exploit
and the mitigation:&lt;/p&gt;
&lt;p&gt;[...]
  // r6 = 0 or 1 (skalar, unknown user input)
  // r7 = accessible ptr for side channel
  // r10 = frame pointer (fp), to be leaked
  //
  r9 = r10 # fp alias to encourage ssb
  *(u64 *)(r9 - 8) = r10 // fp[-8] = ptr, to be leaked
  // lfence added here because of pointer spill to stack.
  //
  // O…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Linux&lt;/p&gt;
&lt;p&gt;In the Linux kernel, the following vulnerability has been resolved:&lt;/p&gt;
&lt;p&gt;bpf: Fix pointer-leak due to insufficient speculative store bypass mitigation&lt;/p&gt;
&lt;p&gt;To mitigate Spectre v4, 2039f26f3aca (&amp;#34;bpf: Fix leakage due to
insufficient speculative store bypass mitigation&amp;#34;) inserts lfence
instructions after 1) initializing a stack slot and 2) spilling a
pointer to the stack.&lt;/p&gt;
&lt;p&gt;However, this does not cover cases where a stack slot is first
initialized with a pointer (subject to sanitization) but then
overwritten with a scalar (not subject to sanitization because
the slot was already initialized). In this case, the second write
may be subject to speculative store bypass (SSB) creating a
speculative pointer-as-scalar type confusion. This allows the
program to subsequently leak the numerical pointer value using,
for example, a branch-based cache side channel.&lt;/p&gt;
&lt;p&gt;To fix this, also sanitize scalars if they write a stack slot
that previously contained a pointer. Assuming that pointer-spills
are only generated by LLVM on register-pressure, the performance
impact on most real-world BPF programs should be small.&lt;/p&gt;
&lt;p&gt;The following unprivileged BPF bytecode drafts a minimal exploit
and the mitigation:&lt;/p&gt;
&lt;p&gt;[...]
  // r6 = 0 or 1 (skalar, unknown user input)
  // r7 = accessible ptr for side channel
  // r10 = frame pointer (fp), to be leaked
  //
  r9 = r10 # fp alias to encourage ssb
  *(u64 *)(r9 - 8) = r10 // fp[-8] = ptr, to be leaked
  // lfence added here because of pointer spill to stack.
  //
  // O…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/cve-2023-53024</guid>
    </item>
  </channel>
</rss>
