From 6b350d97d0061cdfa7feae4e1a7dea42d46866fa Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Tue, 14 Jul 2026 15:00:52 +0200 Subject: [PATCH] 6.6-stable patches added patches: coresight-ultrasoc-smb-fix-oob-write-in-smb_sync_perf_buffer.patch --- ...ix-oob-write-in-smb_sync_perf_buffer.patch | 43 +++++++++++++++++++ queue-6.6/series | 1 + 2 files changed, 44 insertions(+) create mode 100644 queue-6.6/coresight-ultrasoc-smb-fix-oob-write-in-smb_sync_perf_buffer.patch diff --git a/queue-6.6/coresight-ultrasoc-smb-fix-oob-write-in-smb_sync_perf_buffer.patch b/queue-6.6/coresight-ultrasoc-smb-fix-oob-write-in-smb_sync_perf_buffer.patch new file mode 100644 index 0000000000..655a81d773 --- /dev/null +++ b/queue-6.6/coresight-ultrasoc-smb-fix-oob-write-in-smb_sync_perf_buffer.patch @@ -0,0 +1,43 @@ +From 98495b5a4d77dd22e106f462b76e1093a55b29a7 Mon Sep 17 00:00:00 2001 +From: Junrui Luo +Date: Thu, 4 Jun 2026 15:34:25 +0800 +Subject: coresight: ultrasoc-smb: Fix OOB write in smb_sync_perf_buffer() + +From: Junrui Luo + +commit 98495b5a4d77dd22e106f462b76e1093a55b29a7 upstream. + +When the SMB sink is used as a perf AUX sink, smb_update_buffer() calls +smb_sync_perf_buffer() to copy hardware trace data into the perf AUX ring +buffer pages. It derives pg_idx = head >> PAGE_SHIFT from @head, which is +handle->head, and indexes dst_pages[pg_idx]. The pg_idx %= nr_pages +normalization is only applied after the first loop iteration. + +This leaves the initial page index underived from the buffer size, which +can result in an out-of-bounds write past dst_pages[] when head exceeds +the AUX buffer size. + +Normalize head modulo the AUX buffer size before deriving the page index +and offset, mirroring tmc_etr_sync_perf_buffer(). + +Fixes: 06f5c2926aaa ("drivers/coresight: Add UltraSoc System Memory Buffer driver") +Reported-by: Yuhao Jiang +Cc: stable@vger.kernel.org +Signed-off-by: Junrui Luo +Signed-off-by: Suzuki K Poulose +Link: https://lore.kernel.org/r/SYBPR01MB788156B3380A36835DB22290AF102@SYBPR01MB7881.ausprd01.prod.outlook.com +Signed-off-by: Greg Kroah-Hartman +--- + drivers/hwtracing/coresight/ultrasoc-smb.c | 1 + + 1 file changed, 1 insertion(+) + +--- a/drivers/hwtracing/coresight/ultrasoc-smb.c ++++ b/drivers/hwtracing/coresight/ultrasoc-smb.c +@@ -361,6 +361,7 @@ static void smb_sync_perf_buffer(struct + unsigned long to_copy; + long pg_idx, pg_offset; + ++ head %= (unsigned long)buf->nr_pages << PAGE_SHIFT; + pg_idx = head >> PAGE_SHIFT; + pg_offset = head & (PAGE_SIZE - 1); + diff --git a/queue-6.6/series b/queue-6.6/series index a5d0f09e5d..c47741cab9 100644 --- a/queue-6.6/series +++ b/queue-6.6/series @@ -178,3 +178,4 @@ fs-ntfs3-fsync-files-by-syncing-parent-inodes.patch fs-ntfs3-handle-attr_set_size-errors-when-truncating.patch fs-ntfs3-zero-fill-folios-beyond-i_valid-in-ntfs_rea.patch fs-ntfs3-fix-missing-run-load-for-vcn0-in-attr_data_.patch +coresight-ultrasoc-smb-fix-oob-write-in-smb_sync_perf_buffer.patch -- 2.47.3