{"id":28995,"date":"2026-09-25T20:31:40","date_gmt":"2026-09-25T12:31:40","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-97563"},"modified":"2026-09-25T20:31:40","modified_gmt":"2026-09-25T12:31:40","slug":"cve-2026-97563","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-97563","title":{"rendered":"CVE-2026-97563 &#8211; In the Linux kernel, the following vulnerability has been resolved:\n\nsmb: client: reject o"},"content":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>smb: client: reject out-of-bounds DataOffset in CIFSSMBRead()<\/p>\n<p>The SMB1 synchronous read helper CIFSSMBRead() validates the server&#8217;s<br \/>\nDataLength against CIFSMaxBufSize and the caller&#8217;s count, but never<br \/>\nvalidates DataOffset. The copy source is formed as<\/p>\n<p>\t&amp;pSMBr-&gt;hdr.Protocol + le16_to_cpu(pSMBr-&gt;DataOffset)<\/p>\n<p>and memcpy()&#8217;d for DataLength bytes with no check that the<br \/>\n[DataOffset, DataOffset + DataLength) range lies within the response<br \/>\nactually received from the server.<\/p>\n<p>A malicious or compromised SMB1 server can return a response carrying<br \/>\nan in-range DataLength and a large DataOffset, driving the source<br \/>\npointer past the end of the response buffer. The memcpy() then copies<br \/>\nadjacent kernel heap into the caller&#8217;s read buffer (information<br \/>\ndisclosure), or reads unmapped memory and oopses (denial of service).<br \/>\nSMB1 is not negotiated by default; reaching this code requires an<br \/>\nexplicit vers=1.0 mount.<\/p>\n<p>Both DataOffset and the received response length recorded in<br \/>\nrsp_iov.iov_len are relative to the start of the SMB header, so reject<br \/>\nthe response unless DataOffset + DataLength fits within that length,<br \/>\nusing overflow-safe arithmetic, before forming the source pointer.<br \/>\nThe response length has been validated by the previous patch, so the<br \/>\nDataOffset and DataLength fields can be read safely here.<\/p>\n<p>While here, make data_length unsigned. It holds a length derived from<br \/>\nunsigned on-the-wire fields and is only ever compared against unsigned<br \/>\nquantities; print it with %u accordingly, and add __func__ to the<br \/>\ncifs_dbg() calls in this function.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>smb: client: reject out-of-bounds DataOffset in CIFSSMBRead()<\/p>\n<p>The SMB1 synchronous read helper CIFSSMBRead() validates the server&#8217;<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-28995","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/28995","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln"}],"about":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/types\/vuln"}],"wp:attachment":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=28995"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=28995"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=28995"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}