diff options
| author | Frank Sorenson <sorenson@redhat.com> | 2026-09-16 16:33:54 -0500 |
|---|---|---|
| committer | Paulo Alcantara <pc@manguebit.org> | 2026-09-17 15:03:53 -0300 |
| commit | f73726b83e4756fdaa099e1bc1143293bd57ad79 (patch) | |
| tree | e8f688bef4c26a8a61ce3c64d2e9480c3abcb339 /tools/perf/scripts/python/bin/stackcollapse-record | |
| parent | b4694f269e66dfcd66991446375285723b6957bd (diff) | |
| download | linux-next-f73726b83e4756fdaa099e1bc1143293bd57ad79.tar.gz linux-next-f73726b83e4756fdaa099e1bc1143293bd57ad79.zip | |
smb: client: fix server->total_read for compound encrypted PDUs
In receive_encrypted_standard(), server->total_read is left at the
full decrypted frame size when walking sub-PDUs of a compound encrypted
frame. As a result, cifs_handle_standard() passes this full size
to smb2_check_message(), causing the PDU length guards to incorrectly
validate the entire compound frame instead of the current sub-PDU.
This allows truncated non-last sub-PDUs to bypass length validation,
leading to out-of-bounds reads in smb2_get_data_area_len().
Fix this by setting server->total_read to the true length of the
current sub-PDU: next_cmd for non-last sub-PDUs, and the remaining
pdu_length for the last one.
Fixes: b24df3e30cbf ("cifs: update receive_encrypted_standard to handle compounded responses")
Cc: stable@vger.kernel.org
Signed-off-by: Frank Sorenson <sorenson@redhat.com>
Reviewed-by: David Howells <dhowells@redhat.com>
Signed-off-by: Paulo Alcantara <pc@manguebit.org>
Diffstat (limited to 'tools/perf/scripts/python/bin/stackcollapse-record')
0 files changed, 0 insertions, 0 deletions
