From: Griffin Kroah-Hartman <griffin@kroah.com>
To: Miquel Raynal <miquel.raynal@bootlin.com>,
Richard Weinberger <richard@nod.at>,
Vignesh Raghavendra <vigneshr@ti.com>
Cc: linux-mtd@lists.infradead.org, linux-kernel@vger.kernel.org,
Griffin Kroah-Hartman <griffin@kroah.com>
Subject: [PATCH] mtd: parsers: afs: add size check to v2 partition
Date: Mon, 24 Aug 2026 15:50:27 +0200 [thread overview]
Message-ID: <20260824-mtd_break_looper-v1-1-e46d7f02faab@kroah.com> (raw)
Add a size check to the loop in afs_parse_v2_partition(), avoiding
walking out of the imginfo[] array bounds if a malicious packet fakes a
large region count.
Assisted-by: gkh_clanker_t1000
Signed-off-by: Griffin Kroah-Hartman <griffin@kroah.com>
---
drivers/mtd/parsers/afs.c | 12 +++++++++---
1 file changed, 9 insertions(+), 3 deletions(-)
diff --git a/drivers/mtd/parsers/afs.c b/drivers/mtd/parsers/afs.c
index 26116694c821..2c6f8768312c 100644
--- a/drivers/mtd/parsers/afs.c
+++ b/drivers/mtd/parsers/afs.c
@@ -287,12 +287,18 @@ static int afs_parse_v2_partition(struct mtd_info *mtd,
block_start, block_end);
for (i = 0; i < region_count; i++) {
- u32 region_load_addr = imginfo[pad + 3 + i*4];
- u32 region_size = imginfo[pad + 4 + i*4];
- u32 region_offset = imginfo[pad + 5 + i*4];
+ u32 region_load_addr;
+ u32 region_size;
+ u32 region_offset;
u32 region_start;
u32 region_end;
+ if (pad + 5 + i*4 >= ARRAY_SIZE(imginfo))
+ break;
+ region_load_addr = imginfo[pad + 3 + i*4];
+ region_size = imginfo[pad + 4 + i*4];
+ region_offset = imginfo[pad + 5 + i*4];
+
pr_debug(" region %d: address: %08x, size: %08x, "
"offset: %08x\n",
i,
---
base-commit: 8d3ae59288f1e7d58d76558a6ee96d533bc5019f
change-id: 20260824-mtd_break_looper-429d7cf5a7c0
Best regards,
--
Griffin Kroah-Hartman <griffin@kroah.com>
WARNING: multiple messages have this Message-ID (diff)
From: Griffin Kroah-Hartman <griffin@kroah.com>
To: Miquel Raynal <miquel.raynal@bootlin.com>,
Richard Weinberger <richard@nod.at>,
Vignesh Raghavendra <vigneshr@ti.com>
Cc: linux-mtd@lists.infradead.org, linux-kernel@vger.kernel.org,
Griffin Kroah-Hartman <griffin@kroah.com>
Subject: [PATCH] mtd: parsers: afs: add size check to v2 partition
Date: Mon, 24 Aug 2026 15:50:27 +0200 [thread overview]
Message-ID: <20260824-mtd_break_looper-v1-1-e46d7f02faab@kroah.com> (raw)
Add a size check to the loop in afs_parse_v2_partition(), avoiding
walking out of the imginfo[] array bounds if a malicious packet fakes a
large region count.
Assisted-by: gkh_clanker_t1000
Signed-off-by: Griffin Kroah-Hartman <griffin@kroah.com>
---
drivers/mtd/parsers/afs.c | 12 +++++++++---
1 file changed, 9 insertions(+), 3 deletions(-)
diff --git a/drivers/mtd/parsers/afs.c b/drivers/mtd/parsers/afs.c
index 26116694c821..2c6f8768312c 100644
--- a/drivers/mtd/parsers/afs.c
+++ b/drivers/mtd/parsers/afs.c
@@ -287,12 +287,18 @@ static int afs_parse_v2_partition(struct mtd_info *mtd,
block_start, block_end);
for (i = 0; i < region_count; i++) {
- u32 region_load_addr = imginfo[pad + 3 + i*4];
- u32 region_size = imginfo[pad + 4 + i*4];
- u32 region_offset = imginfo[pad + 5 + i*4];
+ u32 region_load_addr;
+ u32 region_size;
+ u32 region_offset;
u32 region_start;
u32 region_end;
+ if (pad + 5 + i*4 >= ARRAY_SIZE(imginfo))
+ break;
+ region_load_addr = imginfo[pad + 3 + i*4];
+ region_size = imginfo[pad + 4 + i*4];
+ region_offset = imginfo[pad + 5 + i*4];
+
pr_debug(" region %d: address: %08x, size: %08x, "
"offset: %08x\n",
i,
---
base-commit: 8d3ae59288f1e7d58d76558a6ee96d533bc5019f
change-id: 20260824-mtd_break_looper-429d7cf5a7c0
Best regards,
--
Griffin Kroah-Hartman <griffin@kroah.com>
______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/
next reply other threads:[~2026-08-24 13:50 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-08-24 13:50 Griffin Kroah-Hartman [this message]
2026-08-24 13:50 ` [PATCH] mtd: parsers: afs: add size check to v2 partition Griffin Kroah-Hartman
2026-08-25 13:42 ` Miquel Raynal
2026-08-25 13:42 ` Miquel Raynal
2026-08-25 14:05 ` Griffin Kroah-Hartman
2026-08-25 14:05 ` Griffin Kroah-Hartman
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260824-mtd_break_looper-v1-1-e46d7f02faab@kroah.com \
--to=griffin@kroah.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mtd@lists.infradead.org \
--cc=miquel.raynal@bootlin.com \
--cc=richard@nod.at \
--cc=vigneshr@ti.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.