Description
In the Linux kernel, the following vulnerability has been resolved: ksmbd: fix infinite loop caused by next_smb2_rcv_hdr_off reset in error paths The problem occurs when a signed request fails smb2 signature verification check. In __process_request(), if check_sign_req() returns an error, set_smb2_rsp_status(work, STATUS_ACCESS_DENIED) is called. set_smb2_rsp_status() set work->next_smb2_rcv_hdr_off as zero. By resetting next_smb2_rcv_hdr_off to zero, the pointer to the next command in the chain is lost. Consequently, is_chained_smb2_message() continues to point to the same request header instead of advancing. If the header's NextCommand field is non-zero, the function returns true, causing __handle_ksmbd_work() to repeatedly process the same failed request in an infinite loop. This results in the kernel log being flooded with "bad smb2 signature" messages and high CPU usage. This patch fixes the issue by changing the return value from SERVER_HANDLER_CONTINUE to SERVER_HANDLER_ABORT. This ensures that the processing loop terminates immediately rather than attempting to continue from an invalidated offset.
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
Linux Linux
Default version status: unaffected
4b9b7ea1ffb1e34f01fa5726d0c184931b9ba565 to < 544adb0a6658ea1bff4064723761dbf05f95b1e2affected943cebf9ea3415ddefcd670d24d8883e97ba3d60 to < fb3b66bd72deb5543addaefa67963b34fb163a7baffectedbe0f89d4419dc5413a1cf06db3671c9949be0d52 to < 5accdc5b7f28a81bbc5880ac0b8886e60c86e8c8affectedbe0f89d4419dc5413a1cf06db3671c9949be0d52 to < f7b1c2f5642bbd60b1beef1f3298cbac81eb232caffectedbe0f89d4419dc5413a1cf06db3671c9949be0d52 to < 71b5e7c528315ca360a1825a4ad2f8ae48c5dc16affectedbe0f89d4419dc5413a1cf06db3671c9949be0d52 to < 9135e791ec2709bcf0cda0335535c74762489498affectedbe0f89d4419dc5413a1cf06db3671c9949be0d52 to < 010eb01ce23b34b50531448b0da391c7f05a72afaffected5.15.145 to < 5.15.203affected6.1.71 to < 6.1.164affected
Linux Linux
Default version status: affected
6.6affected0 to < 6.6unaffected5.15.203 to ≤ 5.15.*unaffected6.1.164 to ≤ 6.1.*unaffected6.6.125 to ≤ 6.6.*unaffected6.12.72 to ≤ 6.12.*unaffected6.18.11 to ≤ 6.18.*unaffected6.19.1 to ≤ 6.19.*unaffected7.0 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/544adb0a6658ea1bff4064723761dbf05f95b1e2 ↗
- https://git.kernel.org/stable/c/fb3b66bd72deb5543addaefa67963b34fb163a7b ↗
- https://git.kernel.org/stable/c/5accdc5b7f28a81bbc5880ac0b8886e60c86e8c8 ↗
- https://git.kernel.org/stable/c/f7b1c2f5642bbd60b1beef1f3298cbac81eb232c ↗
- https://git.kernel.org/stable/c/71b5e7c528315ca360a1825a4ad2f8ae48c5dc16 ↗
- https://git.kernel.org/stable/c/9135e791ec2709bcf0cda0335535c74762489498 ↗
- https://git.kernel.org/stable/c/010eb01ce23b34b50531448b0da391c7f05a72af ↗
- https://cert-portal.siemens.com/productcert/html/ssa-253495.html ↗