<?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://db.gcve.eu</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, 03 Nov 2026 07:23:21 +0000</lastBuildDate>
    <item>
      <title>CVE-2026-98829 — wifi: mac80211: drop oversized fragments to avoid extra_len overflow</title>
      <link>https://db.gcve.eu/vuln/cve-2026-98829</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;wifi: mac80211: drop oversized fragments to avoid extra_len overflow&lt;/p&gt;
&lt;p&gt;In ieee80211_rx_h_defragment(), fragment payloads are accumulated into
entry-&amp;gt;extra_len as subsequent fragments arrive:&lt;/p&gt;
&lt;p&gt;entry-&amp;gt;extra_len += rx-&amp;gt;skb-&amp;gt;len;&lt;/p&gt;
&lt;p&gt;When the final fragment arrives, the head fragment is dequeued, and
pskb_expand_head() is called with entry-&amp;gt;extra_len to ensure sufficient
tailroom for all queued fragments before copying:&lt;/p&gt;
&lt;p&gt;if (skb_tailroom(rx-&amp;gt;skb) &amp;lt; entry-&amp;gt;extra_len) {
                if (unlikely(pskb_expand_head(rx-&amp;gt;skb, 0, entry-&amp;gt;extra_len,
                                              GFP_ATOMIC))) {
                        ...
                }
        }
        while ((skb = __skb_dequeue(&amp;amp;entry-&amp;gt;skb_list))) {
                skb_put_data(rx-&amp;gt;skb, skb-&amp;gt;data, skb-&amp;gt;len);
                dev_kfree_skb(skb);
        }&lt;/p&gt;
&lt;p&gt;In commit 69f132236827 (&amp;#34;mac80211: shrink struct
ieee80211_fragment_entry&amp;#34;), entry-&amp;gt;extra_len was narrowed from unsigned
int to u16 in order to reduce structure memory footprint.&lt;/p&gt;
&lt;p&gt;However, an IEEE 802.11 frame sequence can contain up to 16 fragments
(frag numbers 0..15). If a sequence of large fragments arrives (e.g. from
a malicious peer or rogue AP), the sum of fragment lengths can exceed
65535 bytes (for example, 15 fragments of 4400 bytes total 66000 bytes).
Because extra_len is a u16, this addition overflows and wraps around
modulo 65536 (e.g. 66000 wraps to 464).&lt;/p&gt;
&lt;p&gt;Consequently,…&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;wifi: mac80211: drop oversized fragments to avoid extra_len overflow&lt;/p&gt;
&lt;p&gt;In ieee80211_rx_h_defragment(), fragment payloads are accumulated into
entry-&amp;gt;extra_len as subsequent fragments arrive:&lt;/p&gt;
&lt;p&gt;entry-&amp;gt;extra_len += rx-&amp;gt;skb-&amp;gt;len;&lt;/p&gt;
&lt;p&gt;When the final fragment arrives, the head fragment is dequeued, and
pskb_expand_head() is called with entry-&amp;gt;extra_len to ensure sufficient
tailroom for all queued fragments before copying:&lt;/p&gt;
&lt;p&gt;if (skb_tailroom(rx-&amp;gt;skb) &amp;lt; entry-&amp;gt;extra_len) {
                if (unlikely(pskb_expand_head(rx-&amp;gt;skb, 0, entry-&amp;gt;extra_len,
                                              GFP_ATOMIC))) {
                        ...
                }
        }
        while ((skb = __skb_dequeue(&amp;amp;entry-&amp;gt;skb_list))) {
                skb_put_data(rx-&amp;gt;skb, skb-&amp;gt;data, skb-&amp;gt;len);
                dev_kfree_skb(skb);
        }&lt;/p&gt;
&lt;p&gt;In commit 69f132236827 (&amp;#34;mac80211: shrink struct
ieee80211_fragment_entry&amp;#34;), entry-&amp;gt;extra_len was narrowed from unsigned
int to u16 in order to reduce structure memory footprint.&lt;/p&gt;
&lt;p&gt;However, an IEEE 802.11 frame sequence can contain up to 16 fragments
(frag numbers 0..15). If a sequence of large fragments arrives (e.g. from
a malicious peer or rogue AP), the sum of fragment lengths can exceed
65535 bytes (for example, 15 fragments of 4400 bytes total 66000 bytes).
Because extra_len is a u16, this addition overflows and wraps around
modulo 65536 (e.g. 66000 wraps to 464).&lt;/p&gt;
&lt;p&gt;Consequently,…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://db.gcve.eu/vuln/cve-2026-98829</guid>
    </item>
  </channel>
</rss>
