<?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://vulnerability.circl.lu</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>Tue, 29 Sep 2026 21:22:40 +0000</lastBuildDate>
    <item>
      <title>CVE-2024-58098 — bpf: track changes_pkt_data property for global functions</title>
      <link>https://vulnerability.circl.lu/vuln/cve-2024-58098</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 changes_pkt_data property for global functions&lt;/p&gt;
&lt;p&gt;When processing calls to certain helpers, verifier invalidates all
packet pointers in a current state. For example, consider the
following program:&lt;/p&gt;
&lt;p&gt;__attribute__((__noinline__))
    long skb_pull_data(struct __sk_buff *sk, __u32 len)
    {
        return bpf_skb_pull_data(sk, len);
    }&lt;/p&gt;
&lt;p&gt;SEC(&amp;#34;tc&amp;#34;)
    int test_invalidate_checks(struct __sk_buff *sk)
    {
        int *p = (void *)(long)sk-&amp;gt;data;
        if ((void *)(p + 1) &amp;gt; (void *)(long)sk-&amp;gt;data_end) return TCX_DROP;
        skb_pull_data(sk, 0);
        *p = 42;
        return TCX_PASS;
    }&lt;/p&gt;
&lt;p&gt;After a call to bpf_skb_pull_data() the pointer &amp;#39;p&amp;#39; can&amp;#39;t be used
safely. See function filter.c:bpf_helper_changes_pkt_data() for a list
of such helpers.&lt;/p&gt;
&lt;p&gt;At the moment verifier invalidates packet pointers when processing
helper function calls, and does not traverse global sub-programs when
processing calls to global sub-programs. This means that calls to
helpers done from global sub-programs do not invalidate pointers in
the caller state. E.g. the program above is unsafe, but is not
rejected by verifier.&lt;/p&gt;
&lt;p&gt;This commit fixes the omission by computing field
bpf_subprog_info-&amp;gt;changes_pkt_data for each sub-program before main
verification pass.
changes_pkt_data should be set if:
- subprogram calls helper for which bpf_helper_changes_pkt_data
  returns true;
- subprogram calls a global function,
  for…&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 changes_pkt_data property for global functions&lt;/p&gt;
&lt;p&gt;When processing calls to certain helpers, verifier invalidates all
packet pointers in a current state. For example, consider the
following program:&lt;/p&gt;
&lt;p&gt;__attribute__((__noinline__))
    long skb_pull_data(struct __sk_buff *sk, __u32 len)
    {
        return bpf_skb_pull_data(sk, len);
    }&lt;/p&gt;
&lt;p&gt;SEC(&amp;#34;tc&amp;#34;)
    int test_invalidate_checks(struct __sk_buff *sk)
    {
        int *p = (void *)(long)sk-&amp;gt;data;
        if ((void *)(p + 1) &amp;gt; (void *)(long)sk-&amp;gt;data_end) return TCX_DROP;
        skb_pull_data(sk, 0);
        *p = 42;
        return TCX_PASS;
    }&lt;/p&gt;
&lt;p&gt;After a call to bpf_skb_pull_data() the pointer &amp;#39;p&amp;#39; can&amp;#39;t be used
safely. See function filter.c:bpf_helper_changes_pkt_data() for a list
of such helpers.&lt;/p&gt;
&lt;p&gt;At the moment verifier invalidates packet pointers when processing
helper function calls, and does not traverse global sub-programs when
processing calls to global sub-programs. This means that calls to
helpers done from global sub-programs do not invalidate pointers in
the caller state. E.g. the program above is unsafe, but is not
rejected by verifier.&lt;/p&gt;
&lt;p&gt;This commit fixes the omission by computing field
bpf_subprog_info-&amp;gt;changes_pkt_data for each sub-program before main
verification pass.
changes_pkt_data should be set if:
- subprogram calls helper for which bpf_helper_changes_pkt_data
  returns true;
- subprogram calls a global function,
  for…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/cve-2024-58098</guid>
    </item>
  </channel>
</rss>
