<?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 06:46:50 +0000</lastBuildDate>
    <item>
      <title>CVE-2026-45842 — slip: reject VJ receive packets on instances with no rstate array</title>
      <link>https://vulnerability.circl.lu/vuln/cve-2026-45842</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;slip: reject VJ receive packets on instances with no rstate array&lt;/p&gt;
&lt;p&gt;slhc_init() accepts rslots == 0 as a valid configuration, with the
documented meaning of &amp;#39;no receive compression&amp;#39;. In that case the
allocation loop in slhc_init() is skipped, so comp-&amp;gt;rstate stays
NULL and comp-&amp;gt;rslot_limit stays 0 (from the kzalloc of struct
slcompress).&lt;/p&gt;
&lt;p&gt;The receive helpers do not defend against that configuration.
slhc_uncompress() dereferences comp-&amp;gt;rstate[x] when the VJ header
carries an explicit connection ID, and slhc_remember() later assigns
cs = &amp;amp;comp-&amp;gt;rstate[...] after only comparing the packet&amp;#39;s slot number
to comp-&amp;gt;rslot_limit. Because rslot_limit is 0, slot 0 passes the
range check, and the code dereferences a NULL rstate.&lt;/p&gt;
&lt;p&gt;The configuration is reachable in-tree through PPP. PPPIOCSMAXCID
stores its argument in a signed int, and (val &amp;gt;&amp;gt; 16) uses arithmetic
shift. Passing 0xffff0000 therefore sign-extends to -1, so val2 + 1
is 0 and ppp_generic.c ends up calling slhc_init(0, 1). Because
/dev/ppp open is gated by ns_capable(CAP_NET_ADMIN), the whole path
is reachable from an unprivileged user namespace. Once the malformed
VJ state is installed, any inbound VJ-compressed or VJ-uncompressed
frame that selects slot 0 crashes the kernel in softirq context:&lt;/p&gt;
&lt;p&gt;Oops: general protection fault, probably for non-canonical
       address 0xdffffc0000000000: 0000 [#1] SMP KASAN NOPTI
 KASAN: null-ptr-deref in range [0x0000000…&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;slip: reject VJ receive packets on instances with no rstate array&lt;/p&gt;
&lt;p&gt;slhc_init() accepts rslots == 0 as a valid configuration, with the
documented meaning of &amp;#39;no receive compression&amp;#39;. In that case the
allocation loop in slhc_init() is skipped, so comp-&amp;gt;rstate stays
NULL and comp-&amp;gt;rslot_limit stays 0 (from the kzalloc of struct
slcompress).&lt;/p&gt;
&lt;p&gt;The receive helpers do not defend against that configuration.
slhc_uncompress() dereferences comp-&amp;gt;rstate[x] when the VJ header
carries an explicit connection ID, and slhc_remember() later assigns
cs = &amp;amp;comp-&amp;gt;rstate[...] after only comparing the packet&amp;#39;s slot number
to comp-&amp;gt;rslot_limit. Because rslot_limit is 0, slot 0 passes the
range check, and the code dereferences a NULL rstate.&lt;/p&gt;
&lt;p&gt;The configuration is reachable in-tree through PPP. PPPIOCSMAXCID
stores its argument in a signed int, and (val &amp;gt;&amp;gt; 16) uses arithmetic
shift. Passing 0xffff0000 therefore sign-extends to -1, so val2 + 1
is 0 and ppp_generic.c ends up calling slhc_init(0, 1). Because
/dev/ppp open is gated by ns_capable(CAP_NET_ADMIN), the whole path
is reachable from an unprivileged user namespace. Once the malformed
VJ state is installed, any inbound VJ-compressed or VJ-uncompressed
frame that selects slot 0 crashes the kernel in softirq context:&lt;/p&gt;
&lt;p&gt;Oops: general protection fault, probably for non-canonical
       address 0xdffffc0000000000: 0000 [#1] SMP KASAN NOPTI
 KASAN: null-ptr-deref in range [0x0000000…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/cve-2026-45842</guid>
    </item>
  </channel>
</rss>
