<?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, 17 Oct 2026 16:44:13 +0000</lastBuildDate>
    <item>
      <title>CVE-2021-47303 — bpf: Track subprog poke descriptors correctly and fix use-after-free</title>
      <link>https://cve.radiocsirt.org/vuln/cve-2021-47303</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: Track subprog poke descriptors correctly and fix use-after-free&lt;/p&gt;
&lt;p&gt;Subprograms are calling map_poke_track(), but on program release there is no
hook to call map_poke_untrack(). However, on program release, the aux memory
(and poke descriptor table) is freed even though we still have a reference to
it in the element list of the map aux data. When we run map_poke_run(), we then
end up accessing free&amp;#39;d memory, triggering KASAN in prog_array_map_poke_run():&lt;/p&gt;
&lt;p&gt;[...]
  [  402.824689] BUG: KASAN: use-after-free in prog_array_map_poke_run+0xc2/0x34e
  [  402.824698] Read of size 4 at addr ffff8881905a7940 by task hubble-fgs/4337
  [  402.824705] CPU: 1 PID: 4337 Comm: hubble-fgs Tainted: G          I       5.12.0+ #399
  [  402.824715] Call Trace:
  [  402.824719]  dump_stack+0x93/0xc2
  [  402.824727]  print_address_description.constprop.0+0x1a/0x140
  [  402.824736]  ? prog_array_map_poke_run+0xc2/0x34e
  [  402.824740]  ? prog_array_map_poke_run+0xc2/0x34e
  [  402.824744]  kasan_report.cold+0x7c/0xd8
  [  402.824752]  ? prog_array_map_poke_run+0xc2/0x34e
  [  402.824757]  prog_array_map_poke_run+0xc2/0x34e
  [  402.824765]  bpf_fd_array_map_update_elem+0x124/0x1a0
  [...]&lt;/p&gt;
&lt;p&gt;The elements concerned are walked as follows:&lt;/p&gt;
&lt;p&gt;for (i = 0; i &amp;lt; elem-&amp;gt;aux-&amp;gt;size_poke_tab; i++) {
           poke = &amp;amp;elem-&amp;gt;aux-&amp;gt;poke_tab[i];
    [...]&lt;/p&gt;
&lt;p&gt;The access to size_poke_tab is a 4 byte read, verified by checking offsets
in the KA…&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: Track subprog poke descriptors correctly and fix use-after-free&lt;/p&gt;
&lt;p&gt;Subprograms are calling map_poke_track(), but on program release there is no
hook to call map_poke_untrack(). However, on program release, the aux memory
(and poke descriptor table) is freed even though we still have a reference to
it in the element list of the map aux data. When we run map_poke_run(), we then
end up accessing free&amp;#39;d memory, triggering KASAN in prog_array_map_poke_run():&lt;/p&gt;
&lt;p&gt;[...]
  [  402.824689] BUG: KASAN: use-after-free in prog_array_map_poke_run+0xc2/0x34e
  [  402.824698] Read of size 4 at addr ffff8881905a7940 by task hubble-fgs/4337
  [  402.824705] CPU: 1 PID: 4337 Comm: hubble-fgs Tainted: G          I       5.12.0+ #399
  [  402.824715] Call Trace:
  [  402.824719]  dump_stack+0x93/0xc2
  [  402.824727]  print_address_description.constprop.0+0x1a/0x140
  [  402.824736]  ? prog_array_map_poke_run+0xc2/0x34e
  [  402.824740]  ? prog_array_map_poke_run+0xc2/0x34e
  [  402.824744]  kasan_report.cold+0x7c/0xd8
  [  402.824752]  ? prog_array_map_poke_run+0xc2/0x34e
  [  402.824757]  prog_array_map_poke_run+0xc2/0x34e
  [  402.824765]  bpf_fd_array_map_update_elem+0x124/0x1a0
  [...]&lt;/p&gt;
&lt;p&gt;The elements concerned are walked as follows:&lt;/p&gt;
&lt;p&gt;for (i = 0; i &amp;lt; elem-&amp;gt;aux-&amp;gt;size_poke_tab; i++) {
           poke = &amp;amp;elem-&amp;gt;aux-&amp;gt;poke_tab[i];
    [...]&lt;/p&gt;
&lt;p&gt;The access to size_poke_tab is a 4 byte read, verified by checking offsets
in the KA…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/cve-2021-47303</guid>
    </item>
  </channel>
</rss>
