Description
In the Linux kernel, the following vulnerability has been resolved: ksmbd: fix signededness bug in smb_direct_prepare_negotiation() smb_direct_prepare_negotiation() casts an unsigned __u32 value from sp->max_recv_size and req->preferred_send_size to a signed int before computing min_t(int, ...). A maliciously provided preferred_send_size of 0x80000000 will return as smaller than max_recv_size, and then be used to set the maximum allowed alowed receive size for the next message. By sending a second message with a large value (>1420 bytes) the attacker can then achieve a heap buffer overflow. This fix replaces min_t(int, ...) with min_t(u32)
Product status
0626e6641f6b467447c81dd7678a69c66f7746cf (git) before ceae058eb707ddd0d68f0872f9d9f23b7c30c37b
0626e6641f6b467447c81dd7678a69c66f7746cf (git) before 55abc475d096da4a5356b6efb0cfdc6156bc1550
0626e6641f6b467447c81dd7678a69c66f7746cf (git) before 6b4f875aac344cdd52a1f34cc70ed2f874a65757
5.15
Any version before 5.15
6.18.16 (semver)
6.19.6 (semver)
7.0 (original_commit_for_fix)
References
git.kernel.org/...c/ceae058eb707ddd0d68f0872f9d9f23b7c30c37b
git.kernel.org/...c/55abc475d096da4a5356b6efb0cfdc6156bc1550
git.kernel.org/...c/6b4f875aac344cdd52a1f34cc70ed2f874a65757