On Tue, 2025-09-30 at 20:48 -0700, Vagrant Cascadian wrote: > On 2025-10-01, Daniel Leidert wrote: [..] > > > [ Checklist ] > > [x] *all* changes are documented in the d/changelog > > There was an added gbp.conf file that is undocumented, and not used in > the other Debian packaging branches, and I do not think it is > appropriate to add it to the bookworm branches now. Please remove it. > (and I guess re-upload if necessary?) Attached the debdiff without the gbp config as requested. Regards, Daniel
diff -Nru u-boot-2023.01+dfsg/debian/changelog u-boot-2023.01+dfsg/debian/changelog --- u-boot-2023.01+dfsg/debian/changelog 2024-04-19 00:00:21.000000000 +0200 +++ u-boot-2023.01+dfsg/debian/changelog 2025-10-01 02:06:28.000000000 +0200 @@ -1,3 +1,24 @@ +u-boot (2023.01+dfsg-2+deb12u2) bookworm; urgency=medium + + * Non-maintainer upload by the Debian LTS team. + * d/patches/CVE-2024-57254.patch: Add patch to fix CVE-2024-57254. + - Fix an integer overflow in sqfs_inode_size (closes: 1098254). + * d/patches/CVE-2024-57255.patch: Add patch to fix CVE-2024-57255. + - Fix an integer overflow in sqfs_resolve_symlink (closes: #1098254). + * d/patches/CVE-2024-57256.patch: Add patch to fix CVE-2024-57256. + - Fix an integer overflow in ext4fs_read_symlink (closes: #1098254). + * d/patches/CVE-2024-57257.patch: Add patch to fix CVE-2024-57257. + - Fix a stack consumption issue in sqfs_size possible with deep symlink + nesting (closes: #1098254). + * d/patches/CVE-2024-57258-1.patch, d/patches/CVE-2024-57258-2.patch, + d/patches/CVE-2024-57258-3.patch: Add patches to fx CVE-2024-57258. + - Fix multiple integer overflows (closes: #1098254). + * d/patches/CVE-2024-57259.patch: Add patch to fix CVE-2024-57259. + - Fix an off-by-one error resulting in a heap memory corruption in + sqfs_search_dir (closes: #1098254). + + -- Daniel Leidert <dleidert@debian.org> Wed, 01 Oct 2025 02:06:28 +0200 + u-boot (2023.01+dfsg-2+deb12u1) bookworm; urgency=medium * debian/patches: Apply fix from upstream for orion-timer, affecting diff -Nru u-boot-2023.01+dfsg/debian/patches/CVE-2024-57254.patch u-boot-2023.01+dfsg/debian/patches/CVE-2024-57254.patch --- u-boot-2023.01+dfsg/debian/patches/CVE-2024-57254.patch 1970-01-01 01:00:00.000000000 +0100 +++ u-boot-2023.01+dfsg/debian/patches/CVE-2024-57254.patch 2025-10-01 02:06:28.000000000 +0200 @@ -0,0 +1,46 @@ +From: Richard Weinberger <richard@nod.at> +Date: Fri, 2 Aug 2024 18:36:45 +0200 +Subject: squashfs: Fix integer overflow in sqfs_inode_size() + +A carefully crafted squashfs filesystem can exhibit an extremly large +inode size and overflow the calculation in sqfs_inode_size(). +As a consequence, the squashfs driver will read from wrong locations. + +Fix by using __builtin_add_overflow() to detect the overflow. + +Signed-off-by: Richard Weinberger <richard@nod.at> +Reviewed-by: Miquel Raynal <miquel.raynal@bootlin.com> + +Reviewed-By: Daniel Leidert <dleidert@debian.org> +Origin: https://source.denx.de/u-boot/u-boot/-/commit/c8e929e5758999933f9e905049ef2bf3fe6b140d +Bug: https://www.openwall.com/lists/oss-security/2025/02/17/2 +Bug-Debian: https://bugs.debian.org/1098254 +Bug-Debian-Security: https://security-tracker.debian.org/tracker/CVE-2024-57254 +Bug-Freexian-Security: https://deb.freexian.com/extended-lts/tracker/CVE-2024-57254 +--- + fs/squashfs/sqfs_inode.c | 9 +++++++-- + 1 file changed, 7 insertions(+), 2 deletions(-) + +diff --git a/fs/squashfs/sqfs_inode.c b/fs/squashfs/sqfs_inode.c +index d25cfb5..bb3ccd3 100644 +--- a/fs/squashfs/sqfs_inode.c ++++ b/fs/squashfs/sqfs_inode.c +@@ -78,11 +78,16 @@ int sqfs_inode_size(struct squashfs_base_inode *inode, u32 blk_size) + + case SQFS_SYMLINK_TYPE: + case SQFS_LSYMLINK_TYPE: { ++ int size; ++ + struct squashfs_symlink_inode *symlink = + (struct squashfs_symlink_inode *)inode; + +- return sizeof(*symlink) + +- get_unaligned_le32(&symlink->symlink_size); ++ if (__builtin_add_overflow(sizeof(*symlink), ++ get_unaligned_le32(&symlink->symlink_size), &size)) ++ return -EINVAL; ++ ++ return size; + } + + case SQFS_BLKDEV_TYPE: diff -Nru u-boot-2023.01+dfsg/debian/patches/CVE-2024-57255.patch u-boot-2023.01+dfsg/debian/patches/CVE-2024-57255.patch --- u-boot-2023.01+dfsg/debian/patches/CVE-2024-57255.patch 1970-01-01 01:00:00.000000000 +0100 +++ u-boot-2023.01+dfsg/debian/patches/CVE-2024-57255.patch 2025-10-01 02:06:28.000000000 +0200 @@ -0,0 +1,52 @@ +From: Richard Weinberger <richard@nod.at> +Date: Fri, 2 Aug 2024 18:36:44 +0200 +Subject: squashfs: Fix integer overflow in sqfs_resolve_symlink() + +A carefully crafted squashfs filesystem can exhibit an inode size of 0xffffffff, +as a consequence malloc() will do a zero allocation. +Later in the function the inode size is again used for copying data. +So an attacker can overwrite memory. +Avoid the overflow by using the __builtin_add_overflow() helper. + +Signed-off-by: Richard Weinberger <richard@nod.at> +Reviewed-by: Miquel Raynal <miquel.raynal@bootlin.com> + +Reviewed-By: Daniel Leidert <dleidert@debian.org> +Origin: https://source.denx.de/u-boot/u-boot/-/commit/233945eba63e24061dffeeaeb7cd6fe985278356 +Bug: https://www.openwall.com/lists/oss-security/2025/02/17/2 +Bug-Debian: https://bugs.debian.org/1098254 +Bug-Debian-Security: https://security-tracker.debian.org/tracker/CVE-2024-57255 +Bug-Freexian-Security: https://deb.freexian.com/extended-lts/tracker/CVE-2024-57255 +--- + fs/squashfs/sqfs.c | 10 ++++++---- + 1 file changed, 6 insertions(+), 4 deletions(-) + +diff --git a/fs/squashfs/sqfs.c b/fs/squashfs/sqfs.c +index 74ca70c..3c68d96 100644 +--- a/fs/squashfs/sqfs.c ++++ b/fs/squashfs/sqfs.c +@@ -416,8 +416,10 @@ static char *sqfs_resolve_symlink(struct squashfs_symlink_inode *sym, + char *resolved, *target; + u32 sz; + +- sz = get_unaligned_le32(&sym->symlink_size); +- target = malloc(sz + 1); ++ if (__builtin_add_overflow(get_unaligned_le32(&sym->symlink_size), 1, &sz)) ++ return NULL; ++ ++ target = malloc(sz); + if (!target) + return NULL; + +@@ -425,9 +427,9 @@ static char *sqfs_resolve_symlink(struct squashfs_symlink_inode *sym, + * There is no trailling null byte in the symlink's target path, so a + * copy is made and a '\0' is added at its end. + */ +- target[sz] = '\0'; ++ target[sz - 1] = '\0'; + /* Get target name (relative path) */ +- strncpy(target, sym->symlink, sz); ++ strncpy(target, sym->symlink, sz - 1); + + /* Relative -> absolute path conversion */ + resolved = sqfs_get_abs_path(base_path, target); diff -Nru u-boot-2023.01+dfsg/debian/patches/CVE-2024-57256.patch u-boot-2023.01+dfsg/debian/patches/CVE-2024-57256.patch --- u-boot-2023.01+dfsg/debian/patches/CVE-2024-57256.patch 1970-01-01 01:00:00.000000000 +0100 +++ u-boot-2023.01+dfsg/debian/patches/CVE-2024-57256.patch 2025-10-01 02:06:28.000000000 +0200 @@ -0,0 +1,50 @@ +From: Richard Weinberger <richard@nod.at> +Date: Fri, 9 Aug 2024 11:54:28 +0200 +Subject: ext4: Fix integer overflow in ext4fs_read_symlink() + +While zalloc() takes a size_t type, adding 1 to the le32 variable +will overflow. +A carefully crafted ext4 filesystem can exhibit an inode size of 0xffffffff +and as consequence zalloc() will do a zero allocation. + +Later in the function the inode size is again used for copying data. +So an attacker can overwrite memory. + +Avoid the overflow by using the __builtin_add_overflow() helper. + +Signed-off-by: Richard Weinberger <richard@nod.at> + +Reviewed-By: Daniel Leidert <dleidert@debian.org> +Origin: https://source.denx.de/u-boot/u-boot/-/commit/35f75d2a46e5859138c83a75cd2f4141c5479ab9 +Bug: https://www.openwall.com/lists/oss-security/2025/02/17/2 +Bug-Debian: https://bugs.debian.org/1098254 +Bug-Debian-Security: https://security-tracker.debian.org/tracker/CVE-2024-57256 +Bug-Freexian-Security: https://deb.freexian.com/extended-lts/tracker/CVE-2024-57256 +--- + fs/ext4/ext4_common.c | 7 ++++++- + 1 file changed, 6 insertions(+), 1 deletion(-) + +diff --git a/fs/ext4/ext4_common.c b/fs/ext4/ext4_common.c +index 1185cb2..e940d39 100644 +--- a/fs/ext4/ext4_common.c ++++ b/fs/ext4/ext4_common.c +@@ -2183,13 +2183,18 @@ static char *ext4fs_read_symlink(struct ext2fs_node *node) + struct ext2fs_node *diro = node; + int status; + loff_t actread; ++ size_t alloc_size; + + if (!diro->inode_read) { + status = ext4fs_read_inode(diro->data, diro->ino, &diro->inode); + if (status == 0) + return NULL; + } +- symlink = zalloc(le32_to_cpu(diro->inode.size) + 1); ++ ++ if (__builtin_add_overflow(le32_to_cpu(diro->inode.size), 1, &alloc_size)) ++ return NULL; ++ ++ symlink = zalloc(alloc_size); + if (!symlink) + return NULL; + diff -Nru u-boot-2023.01+dfsg/debian/patches/CVE-2024-57257.patch u-boot-2023.01+dfsg/debian/patches/CVE-2024-57257.patch --- u-boot-2023.01+dfsg/debian/patches/CVE-2024-57257.patch 1970-01-01 01:00:00.000000000 +0100 +++ u-boot-2023.01+dfsg/debian/patches/CVE-2024-57257.patch 2025-10-01 02:06:28.000000000 +0200 @@ -0,0 +1,226 @@ +From: Richard Weinberger <richard@nod.at> +Date: Fri, 2 Aug 2024 18:36:47 +0200 +Subject: squashfs: Fix stack overflow while symlink resolving + +The squashfs driver blindly follows symlinks, and calls sqfs_size() +recursively. So an attacker can create a crafted filesystem and with +a deep enough nesting level a stack overflow can be achieved. + +Fix by limiting the nesting level to 8. + +Signed-off-by: Richard Weinberger <richard@nod.at> +Reviewed-by: Miquel Raynal <miquel.raynal@bootlin.com> + +Reviewed-By: Daniel Leidert <dleidert@debian.org> +Origin: https://source.denx.de/u-boot/u-boot/-/commit/4f5cc096bfd0a591f8a11e86999e3d90a9484c34 +Bug: https://www.openwall.com/lists/oss-security/2025/02/17/2 +Bug-Debian: https://bugs.debian.org/1098254 +Bug-Debian-Security: https://security-tracker.debian.org/tracker/CVE-2024-57257 +Bug-Freexian-Security: https://deb.freexian.com/extended-lts/tracker/CVE-2024-57257 +--- + fs/squashfs/sqfs.c | 76 +++++++++++++++++++++++++++++++++++++++++++----------- + 1 file changed, 61 insertions(+), 15 deletions(-) + +diff --git a/fs/squashfs/sqfs.c b/fs/squashfs/sqfs.c +index 3c68d96..5983284 100644 +--- a/fs/squashfs/sqfs.c ++++ b/fs/squashfs/sqfs.c +@@ -24,7 +24,12 @@ + #include "sqfs_filesystem.h" + #include "sqfs_utils.h" + ++#define MAX_SYMLINK_NEST 8 ++ + static struct squashfs_ctxt ctxt; ++static int symlinknest; ++ ++static int sqfs_readdir_nest(struct fs_dir_stream *fs_dirs, struct fs_dirent **dentp); + + static int sqfs_disk_read(__u32 block, __u32 nr_blocks, void *buf) + { +@@ -502,7 +507,7 @@ static int sqfs_search_dir(struct squashfs_dir_stream *dirs, char **token_list, + goto out; + } + +- while (!sqfs_readdir(dirsp, &dent)) { ++ while (!sqfs_readdir_nest(dirsp, &dent)) { + ret = strcmp(dent->name, token_list[j]); + if (!ret) + break; +@@ -527,6 +532,11 @@ static int sqfs_search_dir(struct squashfs_dir_stream *dirs, char **token_list, + + /* Check for symbolic link and inode type sanity */ + if (get_unaligned_le16(&dir->inode_type) == SQFS_SYMLINK_TYPE) { ++ if (++symlinknest == MAX_SYMLINK_NEST) { ++ ret = -ELOOP; ++ goto out; ++ } ++ + sym = (struct squashfs_symlink_inode *)table; + /* Get first j + 1 tokens */ + path = sqfs_concat_tokens(token_list, j + 1); +@@ -874,7 +884,7 @@ out: + return metablks_count; + } + +-int sqfs_opendir(const char *filename, struct fs_dir_stream **dirsp) ++static int sqfs_opendir_nest(const char *filename, struct fs_dir_stream **dirsp) + { + unsigned char *inode_table = NULL, *dir_table = NULL; + int j, token_count = 0, ret = 0, metablks_count; +@@ -969,7 +979,19 @@ out: + return ret; + } + ++int sqfs_opendir(const char *filename, struct fs_dir_stream **dirsp) ++{ ++ symlinknest = 0; ++ return sqfs_opendir_nest(filename, dirsp); ++} ++ + int sqfs_readdir(struct fs_dir_stream *fs_dirs, struct fs_dirent **dentp) ++{ ++ symlinknest = 0; ++ return sqfs_readdir_nest(fs_dirs, dentp); ++} ++ ++static int sqfs_readdir_nest(struct fs_dir_stream *fs_dirs, struct fs_dirent **dentp) + { + struct squashfs_super_block *sblk = ctxt.sblk; + struct squashfs_dir_stream *dirs; +@@ -1313,8 +1335,8 @@ static int sqfs_get_lregfile_info(struct squashfs_lreg_inode *lreg, + return datablk_count; + } + +-int sqfs_read(const char *filename, void *buf, loff_t offset, loff_t len, +- loff_t *actread) ++static int sqfs_read_nest(const char *filename, void *buf, loff_t offset, ++ loff_t len, loff_t *actread) + { + char *dir = NULL, *fragment_block, *datablock = NULL; + char *fragment = NULL, *file = NULL, *resolved, *data; +@@ -1344,11 +1366,11 @@ int sqfs_read(const char *filename, void *buf, loff_t offset, loff_t len, + } + + /* +- * sqfs_opendir will uncompress inode and directory tables, and will ++ * sqfs_opendir_nest will uncompress inode and directory tables, and will + * return a pointer to the directory that contains the requested file. + */ + sqfs_split_path(&file, &dir, filename); +- ret = sqfs_opendir(dir, &dirsp); ++ ret = sqfs_opendir_nest(dir, &dirsp); + if (ret) { + goto out; + } +@@ -1356,7 +1378,7 @@ int sqfs_read(const char *filename, void *buf, loff_t offset, loff_t len, + dirs = (struct squashfs_dir_stream *)dirsp; + + /* For now, only regular files are able to be loaded */ +- while (!sqfs_readdir(dirsp, &dent)) { ++ while (!sqfs_readdir_nest(dirsp, &dent)) { + ret = strcmp(dent->name, file); + if (!ret) + break; +@@ -1405,9 +1427,14 @@ int sqfs_read(const char *filename, void *buf, loff_t offset, loff_t len, + break; + case SQFS_SYMLINK_TYPE: + case SQFS_LSYMLINK_TYPE: ++ if (++symlinknest == MAX_SYMLINK_NEST) { ++ ret = -ELOOP; ++ goto out; ++ } ++ + symlink = (struct squashfs_symlink_inode *)ipos; + resolved = sqfs_resolve_symlink(symlink, filename); +- ret = sqfs_read(resolved, buf, offset, len, actread); ++ ret = sqfs_read_nest(resolved, buf, offset, len, actread); + free(resolved); + goto out; + case SQFS_BLKDEV_TYPE: +@@ -1578,7 +1605,14 @@ out: + return ret; + } + +-int sqfs_size(const char *filename, loff_t *size) ++int sqfs_read(const char *filename, void *buf, loff_t offset, loff_t len, ++ loff_t *actread) ++{ ++ symlinknest = 0; ++ return sqfs_read_nest(filename, buf, offset, len, actread); ++} ++ ++static int sqfs_size_nest(const char *filename, loff_t *size) + { + struct squashfs_super_block *sblk = ctxt.sblk; + struct squashfs_symlink_inode *symlink; +@@ -1594,10 +1628,10 @@ int sqfs_size(const char *filename, loff_t *size) + + sqfs_split_path(&file, &dir, filename); + /* +- * sqfs_opendir will uncompress inode and directory tables, and will ++ * sqfs_opendir_nest will uncompress inode and directory tables, and will + * return a pointer to the directory that contains the requested file. + */ +- ret = sqfs_opendir(dir, &dirsp); ++ ret = sqfs_opendir_nest(dir, &dirsp); + if (ret) { + ret = -EINVAL; + goto free_strings; +@@ -1605,7 +1639,7 @@ int sqfs_size(const char *filename, loff_t *size) + + dirs = (struct squashfs_dir_stream *)dirsp; + +- while (!sqfs_readdir(dirsp, &dent)) { ++ while (!sqfs_readdir_nest(dirsp, &dent)) { + ret = strcmp(dent->name, file); + if (!ret) + break; +@@ -1638,6 +1672,11 @@ int sqfs_size(const char *filename, loff_t *size) + break; + case SQFS_SYMLINK_TYPE: + case SQFS_LSYMLINK_TYPE: ++ if (++symlinknest == MAX_SYMLINK_NEST) { ++ *size = 0; ++ return -ELOOP; ++ } ++ + symlink = (struct squashfs_symlink_inode *)ipos; + resolved = sqfs_resolve_symlink(symlink, filename); + ret = sqfs_size(resolved, size); +@@ -1677,10 +1716,11 @@ int sqfs_exists(const char *filename) + + sqfs_split_path(&file, &dir, filename); + /* +- * sqfs_opendir will uncompress inode and directory tables, and will ++ * sqfs_opendir_nest will uncompress inode and directory tables, and will + * return a pointer to the directory that contains the requested file. + */ +- ret = sqfs_opendir(dir, &dirsp); ++ symlinknest = 0; ++ ret = sqfs_opendir_nest(dir, &dirsp); + if (ret) { + ret = -EINVAL; + goto free_strings; +@@ -1688,7 +1728,7 @@ int sqfs_exists(const char *filename) + + dirs = (struct squashfs_dir_stream *)dirsp; + +- while (!sqfs_readdir(dirsp, &dent)) { ++ while (!sqfs_readdir_nest(dirsp, &dent)) { + ret = strcmp(dent->name, file); + if (!ret) + break; +@@ -1705,6 +1745,12 @@ free_strings: + return ret == 0; + } + ++int sqfs_size(const char *filename, loff_t *size) ++{ ++ symlinknest = 0; ++ return sqfs_size_nest(filename, size); ++} ++ + void sqfs_close(void) + { + sqfs_decompressor_cleanup(&ctxt); diff -Nru u-boot-2023.01+dfsg/debian/patches/CVE-2024-57258-1.patch u-boot-2023.01+dfsg/debian/patches/CVE-2024-57258-1.patch --- u-boot-2023.01+dfsg/debian/patches/CVE-2024-57258-1.patch 1970-01-01 01:00:00.000000000 +0100 +++ u-boot-2023.01+dfsg/debian/patches/CVE-2024-57258-1.patch 2025-10-01 02:06:28.000000000 +0200 @@ -0,0 +1,46 @@ +From: Richard Weinberger <richard@nod.at> +Date: Fri, 2 Aug 2024 12:08:45 +0200 +Subject: dlmalloc: Fix integer overflow in sbrk() + +Make sure that the new break is within mem_malloc_start +and mem_malloc_end before making progress. +ulong new = old + increment; can overflow for extremely large +increment values and memset() can get wrongly called. + +Signed-off-by: Richard Weinberger <richard@nod.at> +Reviewed-by: Simon Glass <sjg@chromium.org> + +Reviewed-By: Daniel Leidert <dleidert@debian.org> +Origin: https://source.denx.de/u-boot/u-boot/-/commit/0a10b49206a29b4aa2f80233a3e53ca0466bb0b3 +Bug: https://www.openwall.com/lists/oss-security/2025/02/17/2 +Bug-Debian: https://bugs.debian.org/1098254 +Bug-Debian-Security: https://security-tracker.debian.org/tracker/CVE-2024-57258 +Bug-Freexian-Security: https://deb.freexian.com/extended-lts/tracker/CVE-2024-57258 +--- + common/dlmalloc.c | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/common/dlmalloc.c b/common/dlmalloc.c +index 41c7230..ce4e56d 100644 +--- a/common/dlmalloc.c ++++ b/common/dlmalloc.c +@@ -604,6 +604,9 @@ void *sbrk(ptrdiff_t increment) + ulong old = mem_malloc_brk; + ulong new = old + increment; + ++ if ((new < mem_malloc_start) || (new > mem_malloc_end)) ++ return (void *)MORECORE_FAILURE; ++ + /* + * if we are giving memory back make sure we clear it out since + * we set MORECORE_CLEARS to 1 +@@ -611,9 +614,6 @@ void *sbrk(ptrdiff_t increment) + if (increment < 0) + memset((void *)new, 0, -increment); + +- if ((new < mem_malloc_start) || (new > mem_malloc_end)) +- return (void *)MORECORE_FAILURE; +- + mem_malloc_brk = new; + + return (void *)old; diff -Nru u-boot-2023.01+dfsg/debian/patches/CVE-2024-57258-2.patch u-boot-2023.01+dfsg/debian/patches/CVE-2024-57258-2.patch --- u-boot-2023.01+dfsg/debian/patches/CVE-2024-57258-2.patch 1970-01-01 01:00:00.000000000 +0100 +++ u-boot-2023.01+dfsg/debian/patches/CVE-2024-57258-2.patch 2025-10-01 02:06:28.000000000 +0200 @@ -0,0 +1,42 @@ +From: Richard Weinberger <richard@nod.at> +Date: Fri, 2 Aug 2024 12:08:44 +0200 +Subject: dlmalloc: Fix integer overflow in request2size() + +req is of type size_t, casting it to long opens the door +for an integer overflow. +Values between LONG_MAX - (SIZE_SZ + MALLOC_ALIGN_MASK) - 1 and LONG_MAX +cause and overflow such that request2size() returns MINSIZE. + +Fix by removing the cast. +The origin of the cast is unclear, it's in u-boot and ppcboot since ever +and predates the CVS history. +Doug Lea's original dlmalloc implementation also doesn't have it. + +Signed-off-by: Richard Weinberger <richard@nod.at> +Reviewed-by: Simon Glass <sjg@chromium.org> + +Reviewed-By: Daniel Leidert <dleidert@debian.org> +Origin: https://source.denx.de/u-boot/u-boot/-/commit/8642b2178d2c4002c99a0b69a845a48f2ae2706f +Bug: https://www.openwall.com/lists/oss-security/2025/02/17/2 +Bug-Debian: https://bugs.debian.org/1098254 +Bug-Debian-Security: https://security-tracker.debian.org/tracker/CVE-2024-57258 +Bug-Freexian-Security: https://deb.freexian.com/extended-lts/tracker/CVE-2024-57258 +--- + common/dlmalloc.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/common/dlmalloc.c b/common/dlmalloc.c +index ce4e56d..6293500 100644 +--- a/common/dlmalloc.c ++++ b/common/dlmalloc.c +@@ -379,8 +379,8 @@ nextchunk-> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + /* pad request bytes into a usable size */ + + #define request2size(req) \ +- (((long)((req) + (SIZE_SZ + MALLOC_ALIGN_MASK)) < \ +- (long)(MINSIZE + MALLOC_ALIGN_MASK)) ? MINSIZE : \ ++ ((((req) + (SIZE_SZ + MALLOC_ALIGN_MASK)) < \ ++ (MINSIZE + MALLOC_ALIGN_MASK)) ? MINSIZE : \ + (((req) + (SIZE_SZ + MALLOC_ALIGN_MASK)) & ~(MALLOC_ALIGN_MASK))) + + /* Check if m has acceptable alignment */ diff -Nru u-boot-2023.01+dfsg/debian/patches/CVE-2024-57258-3.patch u-boot-2023.01+dfsg/debian/patches/CVE-2024-57258-3.patch --- u-boot-2023.01+dfsg/debian/patches/CVE-2024-57258-3.patch 1970-01-01 01:00:00.000000000 +0100 +++ u-boot-2023.01+dfsg/debian/patches/CVE-2024-57258-3.patch 2025-10-01 02:06:28.000000000 +0200 @@ -0,0 +1,39 @@ +From: Richard Weinberger <richard@nod.at> +Date: Fri, 2 Aug 2024 12:08:43 +0200 +Subject: x86: Fix ptrdiff_t for x86_64 + +sbrk() assumes ptrdiff_t is large enough to enlarge/shrink the heap +by LONG_MIN/LONG_MAX. +So, use the long type, also to match the rest of the Linux ecosystem. + +Signed-off-by: Richard Weinberger <richard@nod.at> +Reviewed-by: Simon Glass <sjg@chromium.org> + +Reviewed-By: Daniel Leidert <dleidert@debian.org> +Origin: https://source.denx.de/u-boot/u-boot/-/commit/c17b2a05dd50a3ba437e6373093a0d6a359cdee0 +Bug: https://www.openwall.com/lists/oss-security/2025/02/17/2 +Bug-Debian: https://bugs.debian.org/1098254 +Bug-Debian-Security: https://security-tracker.debian.org/tracker/CVE-2024-57258 +Bug-Freexian-Security: https://deb.freexian.com/extended-lts/tracker/CVE-2024-57258 +--- + arch/x86/include/asm/posix_types.h | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/arch/x86/include/asm/posix_types.h b/arch/x86/include/asm/posix_types.h +index dbcea7f..e1ed9bc 100644 +--- a/arch/x86/include/asm/posix_types.h ++++ b/arch/x86/include/asm/posix_types.h +@@ -20,11 +20,12 @@ typedef unsigned short __kernel_gid_t; + #if defined(__x86_64__) + typedef unsigned long __kernel_size_t; + typedef long __kernel_ssize_t; ++typedef long __kernel_ptrdiff_t; + #else + typedef unsigned int __kernel_size_t; + typedef int __kernel_ssize_t; +-#endif + typedef int __kernel_ptrdiff_t; ++#endif + typedef long __kernel_time_t; + typedef long __kernel_suseconds_t; + typedef long __kernel_clock_t; diff -Nru u-boot-2023.01+dfsg/debian/patches/CVE-2024-57259.patch u-boot-2023.01+dfsg/debian/patches/CVE-2024-57259.patch --- u-boot-2023.01+dfsg/debian/patches/CVE-2024-57259.patch 1970-01-01 01:00:00.000000000 +0100 +++ u-boot-2023.01+dfsg/debian/patches/CVE-2024-57259.patch 2025-10-01 02:06:28.000000000 +0200 @@ -0,0 +1,40 @@ +From: Richard Weinberger <richard@nod.at> +Date: Fri, 2 Aug 2024 22:05:09 +0200 +Subject: squashfs: Fix heap corruption in sqfs_search_dir() + +res needs to be large enough to store both strings rem and target, +plus the path separator and the terminator. +Currently the space for the path separator is not accounted, so +the heap is corrupted by one byte. + +Signed-off-by: Richard Weinberger <richard@nod.at> +Reviewed-by: Miquel Raynal <miquel.raynal@bootlin.com> + +Reviewed-By: Daniel Leidert <dleidert@debian.org> +Origin: https://source.denx.de/u-boot/u-boot/-/commit/048d795bb5b3d9c5701b4855f5e74bcf6849bf5e +Bug: https://www.openwall.com/lists/oss-security/2025/02/17/2 +Bug-Debian: https://bugs.debian.org/1098254 +Bug-Debian-Security: https://security-tracker.debian.org/tracker/CVE-2024-57259 +Bug-Freexian-Security: https://deb.freexian.com/extended-lts/tracker/CVE-2024-57259 +--- + fs/squashfs/sqfs.c | 7 +++++-- + 1 file changed, 5 insertions(+), 2 deletions(-) + +diff --git a/fs/squashfs/sqfs.c b/fs/squashfs/sqfs.c +index 5983284..218ff8d 100644 +--- a/fs/squashfs/sqfs.c ++++ b/fs/squashfs/sqfs.c +@@ -557,8 +557,11 @@ static int sqfs_search_dir(struct squashfs_dir_stream *dirs, char **token_list, + ret = -ENOMEM; + goto out; + } +- /* Concatenate remaining tokens and symlink's target */ +- res = malloc(strlen(rem) + strlen(target) + 1); ++ /* ++ * Concatenate remaining tokens and symlink's target. ++ * Allocate enough space for rem, target, '/' and '\0'. ++ */ ++ res = malloc(strlen(rem) + strlen(target) + 2); + if (!res) { + ret = -ENOMEM; + goto out; diff -Nru u-boot-2023.01+dfsg/debian/patches/series u-boot-2023.01+dfsg/debian/patches/series --- u-boot-2023.01+dfsg/debian/patches/series 2024-04-18 23:28:30.000000000 +0200 +++ u-boot-2023.01+dfsg/debian/patches/series 2025-10-01 02:06:28.000000000 +0200 @@ -1,25 +1,22 @@ mx53loco - arndale/board-spl-rule.diff - test-imagetools-test-fixes - exynos/0001-arm-config-fix-default-console-only-to-specify-the-d.patch - riscv64/unmatched-prevent-relocating-initrd-and-fdt.patch - disable-fit-image-tests - rockchip/rockchip-inno-usb.patch rockchip/rockchip-roc-pc-rk3399-Enable-rockchip-efuse-support.patch - qemu/efi-secure-boot.patch - fix-qemu-ppce500-with-binutils-2.38.patch Makefile-Use-relative-paths-for-debugging-symbols.patch - tools-disable-video-logo - riscv64/vbe-Allow-probing-the-VBE-bootmeth-to-fail-in-OS-fixup.patch - upstream/0001-timer-orion-timer-Fix-problem-in-early_init_done.patch +CVE-2024-57254.patch +CVE-2024-57255.patch +CVE-2024-57256.patch +CVE-2024-57257.patch +CVE-2024-57258-1.patch +CVE-2024-57258-2.patch +CVE-2024-57258-3.patch +CVE-2024-57259.patch
Attachment:
signature.asc
Description: This is a digitally signed message part