<?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 14:44:49 +0000</lastBuildDate>
    <item>
      <title>CVE-2026-68160 — ceph: fix pre-auth out-of-bounds read on snaptrace in ceph_handle_caps()</title>
      <link>https://vulnerability.circl.lu/vuln/cve-2026-68160</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;ceph: fix pre-auth out-of-bounds read on snaptrace in ceph_handle_caps()&lt;/p&gt;
&lt;p&gt;ceph_handle_caps() reads snap_trace_len from the wire-format
ceph_mds_caps header and uses it unconditionally to build a fake
end pointer (snaptrace + snaptrace_len) that is later handed to
ceph_update_snap_trace() in the CEPH_CAP_OP_IMPORT case:&lt;/p&gt;
&lt;p&gt;snaptrace     = h + 1;
    snaptrace_len = le32_to_cpu(h-&amp;gt;snap_trace_len);
    p             = snaptrace + snaptrace_len;
    ...
    case CEPH_CAP_OP_IMPORT:
        if (snaptrace_len) {
            ...
            if (ceph_update_snap_trace(mdsc, snaptrace,
                                       snaptrace + snaptrace_len,
                                       false, &amp;amp;realm)) { ... }&lt;/p&gt;
&lt;p&gt;ceph_update_snap_trace() then decodes a struct ceph_mds_snap_realm
from snaptrace using ceph_decode_need(&amp;amp;p, e, sizeof(*ri), bad)
with the attacker-supplied fake end e == snaptrace + snaptrace_len.
With snaptrace_len == 0xFFFFFFFF the bound check is trivially
satisfied, ri = p reads sizeof(struct ceph_mds_snap_realm) past
the legitimate msg-&amp;gt;front buffer, and ri-&amp;gt;num_snaps /
ri-&amp;gt;num_prior_parent_snaps then drive further out-of-bounds
reads of the encoded snap arrays.&lt;/p&gt;
&lt;p&gt;The eleven msg_version &amp;gt;= 2 .. msg_version &amp;gt;= 12 decoder blocks
above the op switch each catch this OOB through their
ceph_decode_*_safe() / ceph_decode_need() helpers, but they sit
behind a hdr.version-gated if, so a malicious or compromise…&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;ceph: fix pre-auth out-of-bounds read on snaptrace in ceph_handle_caps()&lt;/p&gt;
&lt;p&gt;ceph_handle_caps() reads snap_trace_len from the wire-format
ceph_mds_caps header and uses it unconditionally to build a fake
end pointer (snaptrace + snaptrace_len) that is later handed to
ceph_update_snap_trace() in the CEPH_CAP_OP_IMPORT case:&lt;/p&gt;
&lt;p&gt;snaptrace     = h + 1;
    snaptrace_len = le32_to_cpu(h-&amp;gt;snap_trace_len);
    p             = snaptrace + snaptrace_len;
    ...
    case CEPH_CAP_OP_IMPORT:
        if (snaptrace_len) {
            ...
            if (ceph_update_snap_trace(mdsc, snaptrace,
                                       snaptrace + snaptrace_len,
                                       false, &amp;amp;realm)) { ... }&lt;/p&gt;
&lt;p&gt;ceph_update_snap_trace() then decodes a struct ceph_mds_snap_realm
from snaptrace using ceph_decode_need(&amp;amp;p, e, sizeof(*ri), bad)
with the attacker-supplied fake end e == snaptrace + snaptrace_len.
With snaptrace_len == 0xFFFFFFFF the bound check is trivially
satisfied, ri = p reads sizeof(struct ceph_mds_snap_realm) past
the legitimate msg-&amp;gt;front buffer, and ri-&amp;gt;num_snaps /
ri-&amp;gt;num_prior_parent_snaps then drive further out-of-bounds
reads of the encoded snap arrays.&lt;/p&gt;
&lt;p&gt;The eleven msg_version &amp;gt;= 2 .. msg_version &amp;gt;= 12 decoder blocks
above the op switch each catch this OOB through their
ceph_decode_*_safe() / ceph_decode_need() helpers, but they sit
behind a hdr.version-gated if, so a malicious or compromise…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/cve-2026-68160</guid>
    </item>
  </channel>
</rss>
