Paper/Archive/CVE-2026-89630

CVE-2026-89630

Linux Linux — smb: client: restore the data_offset bound in is_valid_oplock_break()

Description · from the CVE record

In the Linux kernel, the following vulnerability has been resolved: smb: client: restore the data_offset bound in is_valid_oplock_break() Commit 83bfbd0bb902 ("cifs: Remove the RFC1002 header from smb_hdr") changed the quantity this bound is measured against. It used to be srv->total_read minus the 4-byte RFC1002 preamble that total_read then included, so it was the SMB message length. The same commit stopped counting the preamble, and the mechanical substitution to srv->total_read - srv->pdu_size left an expression that is identically zero: standard_receive3() reads MID_HEADER_SIZE() bytes and then exactly pdu_length - MID_HEADER_SIZE() more, adding both to total_read. len is therefore 0, the subtraction below it wraps, and no __u32 DataOffset can exceed the result, so the check from commit 097f5863b1a0 ("cifs: read overflow in is_valid_oplock_break()") no longer rejects anything. Use total_read, which is now the message length on its own.

Affected

ProductAffectedFixed inSource
Linux83bfbd0bb9025f98fa62b44f93bd67466773d1db – < 5b16a1967a01ad4496a7206a87c3eb16f1df2b055b16a1967a01ad4496a7206a87c3eb16f1df2b05CNA
Linux83bfbd0bb9025f98fa62b44f93bd67466773d1db – < ba22f575de9deeae4ae0859ca4315a7698226237ba22f575de9deeae4ae0859ca4315a7698226237CNA
Linux78e718c5aa146063cd70d2cc68297c3ac41f31ee–CNA
Linux6.18.56 – < 6.196.19CNA
Linux6.19–CNA

Scores by source

Linux (CNA)9.1CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:H

References

refgit.kernel.org/stable/c/5b16a1967a01ad4496a7206a87c3eb16f1df2b05refgit.kernel.org/stable/c/ba22f575de9deeae4ae0859ca4315a7698226237