Hi Yoann,

This CVE fix already included in libarchive version 3.8.6 on the master
branch.

https://github.com/libarchive/libarchive/releases/tag/v3.8.6 .

I will cherry-pick libarchive-3.8.6 from master and submit the patch to
Whinlatter branch.

Thanks & Regards,
Vijay

On Sat, Apr 4, 2026 at 3:37 AM Yoann Congal <[email protected]> wrote:

> On Thu Mar 26, 2026 at 8:58 AM CET, Vijay Anusuri via
> lists.openembedded.org wrote:
> > From: Vijay Anusuri <[email protected]>
> >
> > Pick patch according to [1]
> >
> > [1] https://security-tracker.debian.org/tracker/CVE-2026-4111
> > [2] https://github.com/libarchive/libarchive/pull/2877
> > [3] https://access.redhat.com/errata/RHSA-2026:5080
> >
> > Signed-off-by: Vijay Anusuri <[email protected]>
> > ---
>
> Hello,
>
> As far as I can tell, this CVE applies to whinlatter and master.
> Since this is the end of kirkstone soon, I'll take it into the reviews
> series but can only merge it if there is a patch sent for this CVE in
> those branches.
>
> Regards,
>
> >  .../libarchive/CVE-2026-4111-1.patch          |  32 ++
> >  .../libarchive/CVE-2026-4111-2.patch          | 308 ++++++++++++++++++
> >  .../libarchive/libarchive_3.6.2.bb            |   2 +
> >  3 files changed, 342 insertions(+)
> >  create mode 100644
> meta/recipes-extended/libarchive/libarchive/CVE-2026-4111-1.patch
> >  create mode 100644
> meta/recipes-extended/libarchive/libarchive/CVE-2026-4111-2.patch
> >
> > diff --git
> a/meta/recipes-extended/libarchive/libarchive/CVE-2026-4111-1.patch
> b/meta/recipes-extended/libarchive/libarchive/CVE-2026-4111-1.patch
> > new file mode 100644
> > index 0000000000..1f065b1364
> > --- /dev/null
> > +++ b/meta/recipes-extended/libarchive/libarchive/CVE-2026-4111-1.patch
> > @@ -0,0 +1,32 @@
> > +From 7273d04803a1e5a482f26d8d0fbaf2b204a72168 Mon Sep 17 00:00:00 2001
> > +From: Tim Kientzle <[email protected]>
> > +Date: Sun, 1 Mar 2026 20:24:56 -0800
> > +Subject: [PATCH] Reject filters when the block length is nonsensical
> > +
> > +Credit: Grzegorz Antoniak @antekone
> > +
> > +Upstream-Status: Backport [
> https://github.com/libarchive/libarchive/commit/7273d04803a1e5a482f26d8d0fbaf2b204a72168
> ]
> > +CVE: CVE-2026-4111
> > +Signed-off-by: Vijay Anusuri <[email protected]>
> > +---
> > + libarchive/archive_read_support_format_rar5.c | 4 +++-
> > + 1 file changed, 3 insertions(+), 1 deletion(-)
> > +
> > +diff --git a/libarchive/archive_read_support_format_rar5.c
> b/libarchive/archive_read_support_format_rar5.c
> > +index 38979cb..867f0a8 100644
> > +--- a/libarchive/archive_read_support_format_rar5.c
> > ++++ b/libarchive/archive_read_support_format_rar5.c
> > +@@ -2914,7 +2914,9 @@ static int parse_filter(struct archive_read* ar,
> const uint8_t* p) {
> > +     if(block_length < 4 ||
> > +         block_length > 0x400000 ||
> > +         filter_type > FILTER_ARM ||
> > +-        !is_valid_filter_block_start(rar, block_start))
> > ++        !is_valid_filter_block_start(rar, block_start) ||
> > ++        (rar->cstate.window_size > 0 &&
> > ++         (ssize_t)block_length > rar->cstate.window_size >> 1))
> > +     {
> > +             archive_set_error(&ar->archive, ARCHIVE_ERRNO_FILE_FORMAT,
> > +                 "Invalid filter encountered");
> > +--
> > +2.25.1
> > +
> > diff --git
> a/meta/recipes-extended/libarchive/libarchive/CVE-2026-4111-2.patch
> b/meta/recipes-extended/libarchive/libarchive/CVE-2026-4111-2.patch
> > new file mode 100644
> > index 0000000000..243a03a8e5
> > --- /dev/null
> > +++ b/meta/recipes-extended/libarchive/libarchive/CVE-2026-4111-2.patch
> > @@ -0,0 +1,308 @@
> > +From ef53e2023d75a205cf7cbddb5d01c4cc592e9ce4 Mon Sep 17 00:00:00 2001
> > +From: Tim Kientzle <[email protected]>
> > +Date: Sun, 1 Mar 2026 10:04:01 -0800
> > +Subject: [PATCH] Infinite loop in Rar5 decompression
> > +
> > +Found by: Elhanan Haenel
> > +
> > +Upstream-Status: Backport [
> https://github.com/libarchive/libarchive/commit/ef53e2023d75a205cf7cbddb5d01c4cc592e9ce4
> ]
> > +CVE: CVE-2026-4111
> > +Signed-off-by: Vijay Anusuri <[email protected]>
> > +---
> > + Makefile.am                                   |   2 +
> > + libarchive/test/CMakeLists.txt                |   1 +
> > + .../test/test_read_format_rar5_loop_bug.c     |  53 +++++
> > + .../test_read_format_rar5_loop_bug.rar.uu     | 189 ++++++++++++++++++
> > + 4 files changed, 245 insertions(+)
> > + create mode 100644 libarchive/test/test_read_format_rar5_loop_bug.c
> > + create mode 100644
> libarchive/test/test_read_format_rar5_loop_bug.rar.uu
> > +
> > +diff --git a/Makefile.am b/Makefile.am
> > +index dd1620d..14edb2a 100644
> > +--- a/Makefile.am
> > ++++ b/Makefile.am
> > +@@ -507,6 +507,7 @@ libarchive_test_SOURCES= \
> > +     libarchive/test/test_read_format_rar_invalid1.c \
> > +     libarchive/test/test_read_format_rar_overflow.c \
> > +     libarchive/test/test_read_format_rar5.c \
> > ++    libarchive/test/test_read_format_rar5_loop_bug.c \
> > +     libarchive/test/test_read_format_raw.c \
> > +     libarchive/test/test_read_format_tar.c \
> > +     libarchive/test/test_read_format_tar_concatenated.c \
> > +@@ -869,6 +870,7 @@ libarchive_test_EXTRA_DIST=\
> > +
>  libarchive/test/test_read_format_rar5_invalid_dict_reference.rar.uu \
> > +     libarchive/test/test_read_format_rar5_leftshift1.rar.uu \
> > +     libarchive/test/test_read_format_rar5_leftshift2.rar.uu \
> > ++    libarchive/test/test_read_format_rar5_loop_bug.rar.uu \
> > +     libarchive/test/test_read_format_rar5_multiarchive.part01.rar.uu \
> > +     libarchive/test/test_read_format_rar5_multiarchive.part02.rar.uu \
> > +     libarchive/test/test_read_format_rar5_multiarchive.part03.rar.uu \
> > +diff --git a/libarchive/test/CMakeLists.txt
> b/libarchive/test/CMakeLists.txt
> > +index 05c6fd7..c8f2e90 100644
> > +--- a/libarchive/test/CMakeLists.txt
> > ++++ b/libarchive/test/CMakeLists.txt
> > +@@ -156,6 +156,7 @@ IF(ENABLE_TEST)
> > +     test_read_format_rar_filter.c
> > +     test_read_format_rar_overflow.c
> > +     test_read_format_rar5.c
> > ++    test_read_format_rar5_loop_bug.c
> > +     test_read_format_raw.c
> > +     test_read_format_tar.c
> > +     test_read_format_tar_concatenated.c
> > +diff --git a/libarchive/test/test_read_format_rar5_loop_bug.c
> b/libarchive/test/test_read_format_rar5_loop_bug.c
> > +new file mode 100644
> > +index 0000000..77dd78c
> > +--- /dev/null
> > ++++ b/libarchive/test/test_read_format_rar5_loop_bug.c
> > +@@ -0,0 +1,53 @@
> > ++/*-
> > ++ * Copyright (c) 2026 Tim Kientzle
> > ++ * All rights reserved.
> > ++ *
> > ++ * Redistribution and use in source and binary forms, with or without
> > ++ * modification, are permitted provided that the following conditions
> > ++ * are met:
> > ++ * 1. Redistributions of source code must retain the above copyright
> > ++ *    notice, this list of conditions and the following disclaimer.
> > ++ * 2. Redistributions in binary form must reproduce the above copyright
> > ++ *    notice, this list of conditions and the following disclaimer in
> the
> > ++ *    documentation and/or other materials provided with the
> distribution.
> > ++ *
> > ++ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY
> EXPRESS OR
> > ++ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
> WARRANTIES
> > ++ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
> DISCLAIMED.
> > ++ * IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT,
> > ++ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
> (INCLUDING, BUT
> > ++ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
> OF USE,
> > ++ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
> ANY
> > ++ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
> > ++ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
> USE OF
> > ++ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
> > ++ */
> > ++#include "test.h"
> > ++
> > ++DEFINE_TEST(test_read_format_rar5_loop_bug)
> > ++{
> > ++  const char *reffile = "test_read_format_rar5_loop_bug.rar";
> > ++  struct archive_entry *ae;
> > ++  struct archive *a;
> > ++  const void *buf;
> > ++  size_t size;
> > ++  la_int64_t offset;
> > ++
> > ++  extract_reference_file(reffile);
> > ++  assert((a = archive_read_new()) != NULL);
> > ++  assertEqualIntA(a, ARCHIVE_OK, archive_read_support_filter_all(a));
> > ++  assertEqualIntA(a, ARCHIVE_OK, archive_read_support_format_all(a));
> > ++  assertEqualIntA(a, ARCHIVE_OK, archive_read_open_filename(a,
> reffile, 10240));
> > ++
> > ++  // This has just one entry
> > ++  assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
> > ++
> > ++  // Read blocks until the end of the entry
> > ++  while (ARCHIVE_OK == archive_read_data_block(a, &buf, &size,
> &offset)) {
> > ++  }
> > ++
> > ++  assertEqualIntA(a, ARCHIVE_EOF, archive_read_next_header(a, &ae));
> > ++
> > ++  assertEqualIntA(a, ARCHIVE_OK, archive_read_close(a));
> > ++  assertEqualInt(ARCHIVE_OK, archive_free(a));
> > ++}
> > +diff --git a/libarchive/test/test_read_format_rar5_loop_bug.rar.uu
> b/libarchive/test/test_read_format_rar5_loop_bug.rar.uu
> > +new file mode 100644
> > +index 0000000..3e47004
> > +--- /dev/null
> > ++++ b/libarchive/test/test_read_format_rar5_loop_bug.rar.uu
> > +@@ -0,0 +1,189 @@
> > ++begin 644 test_read_format_rar5_loop_bug.rar
> > ++M4F%R(1H'`0#%&C,R`P$``)T-9%L.`@+P0`"`@`P`@`,``6'(WFP@`?\7_U/^
> > ++M8@!.`B`H````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++M````````````````````````````````````````````````````````````
> > ++5```````````````````Y^;*!`@4`
> > ++`
> > ++end
> > +--
> > +2.25.1
> > +
> > diff --git a/meta/recipes-extended/libarchive/libarchive_3.6.2.bb
> b/meta/recipes-extended/libarchive/libarchive_3.6.2.bb
> > index e74326b40f..85fe6e5baa 100644
> > --- a/meta/recipes-extended/libarchive/libarchive_3.6.2.bb
> > +++ b/meta/recipes-extended/libarchive/libarchive_3.6.2.bb
> > @@ -50,6 +50,8 @@ SRC_URI = "
> http://libarchive.org/downloads/libarchive-${PV}.tar.gz \
> >
>  file://0001-Merge-pull-request-2768-from-Commandoss-master.patch \
> >             file://CVE-2025-60753-01.patch \
> >             file://CVE-2025-60753-02.patch \
> > +           file://CVE-2026-4111-1.patch \
> > +           file://CVE-2026-4111-2.patch \
> >             "
> >  UPSTREAM_CHECK_URI = "http://libarchive.org/";
> >
>
>
> --
> Yoann Congal
> Smile ECS
>
>
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#234611): 
https://lists.openembedded.org/g/openembedded-core/message/234611
Mute This Topic: https://lists.openembedded.org/mt/118514709/21656
Group Owner: [email protected]
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to