<?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://db.gcve.eu/rss/recent/all/10</id>
  <title>Most recent entries from all</title>
  <updated>2026-10-17T18:40:09.245467+00:00</updated>
  <author>
    <name>Vulnerability-Lookup</name>
    <email>info@gcve.eu</email>
  </author>
  <link href="https://db.gcve.eu" 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://db.gcve.eu/vuln/cve-2026-98299</id>
    <title>CVE-2026-98299 — tcp: do not let tcp_rmem be set below 4096</title>
    <updated>2026-10-17T18:40:09.247873+00:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml"><p><strong>Affected:</strong> Linux</p>
<p>In the Linux kernel, the following vulnerability has been resolved:</p>
<p>tcp: do not let tcp_rmem be set below 4096</p>
<p>We can hit a division by zero crash in tcp_rcvbuf_grow()
and tcp_rcv_space_adjust():</p>
<p>divide error: 0000 [#1] PREEMPT SMP
RIP: 0010:tcp_rcvbuf_grow+0x187/0x450 net/ipv4/tcp_input.c:939
...
grow = div_u64(((u64)rcvwin &lt;&lt; 1) * (newval - oldval), oldval);</p>
<p>The division uses oldval = tp-&gt;rcvq_space.space as divisor.
When tp-&gt;rcvq_space.space is zero, this leads to a divide-by-zero
exception.</p>
<p>tp-&gt;rcvq_space.space is initialized in tcp_init_buffer_space():
    tp-&gt;rcvq_space.space = min3(tp-&gt;rcv_ssthresh, tp-&gt;rcv_wnd,
                                (u32)TCP_INIT_CWND * tp-&gt;advmss);</p>
<p>If tcp_rmem[1] is configured to very small values (such as 1),
sk-&gt;sk_rcvbuf is initialized to 1. Then tcp_full_space(sk), which
computes (sk-&gt;sk_rcvbuf * scaling_ratio) &gt;&gt; 8, truncates to 0.
This sets tp-&gt;window_clamp = 0, tp-&gt;rcv_ssthresh = 0, and
tp-&gt;rcvq_space.space = 0. Later, when data arrives and DRS is invoked,
tcp_rcvbuf_grow() divides by oldval == 0.</p>
<p>Back in 2015, commit b1cb59cf2efe ("net: sysctl_net_core: check SNDBUF
and RCVBUF for min length") ensured that net.core.rmem_default and
net.core.rmem_max cannot be set below SOCK_MIN_RCVBUF. Similarly,
SO_RCVBUF setsockopt enforces max_t(int, val * 2, SOCK_MIN_RCVBUF).</p>
<p>However, net.ipv4.tcp_rmem still had .extra1 = SYSCTL_ONE, allowing
arbitrarily small values.</p>
<p>Because SOCK_MIN_RCVBUF depends on sizeof(struct sk_buff) and cachel…</p></div>
    </content>
    <link href="https://db.gcve.eu/vuln/cve-2026-98299"/>
  </entry>
</feed>
