Compare commits

...
56 Commits
Author SHA1 Message Date
Chen Wang ab30db03f0 Description for quiz
Signed-off-by: Chen Wang <unicorn_wang@outlook.com>
2026-04-02 15:44:42 +08:00
Chen Wang 0c0af2cdac Add python3
Include python3 curses module due to the snake.py need it.

Signed-off-by: Chen Wang <unicorn_wang@outlook.com>
2026-04-01 13:52:31 +08:00
Chen Wang adc0b6483f Increase image size to 128M
We will add more packages such as python3, 60M is too small.

Signed-off-by: Chen Wang <unicorn_wang@outlook.com>
2026-04-01 13:50:14 +08:00
Chen Wang ec3b4253d5 Enable bash and use it as default shell
Signed-off-by: Chen Wang <unicorn_wang@outlook.com>
2026-04-01 13:47:32 +08:00
Chen Wang 86dfc8acea Add vim
Signed-off-by: Chen Wang <unicorn_wang@outlook.com>
2026-04-01 13:45:53 +08:00
Chen Wang 1e05d3ffa7 Use coreutils
Signed-off-by: Chen Wang <unicorn_wang@outlook.com>
2026-04-01 13:42:46 +08:00
Chen Wang 0b5ad28c8a Use sysV as init system
Signed-off-by: Chen Wang <unicorn_wang@outlook.com>
2026-04-01 13:41:07 +08:00
Chen Wang 548fcdaf53 Don't build host-qemu
Use system pre-installed qemu-system-riscv64 (
version 8.2.2 and above are recommended).

Run by "start-qemu.sh --use-system-qemu".

Signed-off-by: Chen Wang <unicorn_wang@outlook.com>
2026-04-01 13:30:30 +08:00
Chen Wang b1c5c5342b Use external buildroot toolchain
Signed-off-by: Chen Wang <unicorn_wang@outlook.com>
2026-04-01 13:20:44 +08:00
Chen Wang 28171e2caf Use latest kernel version
Signed-off-by: Chen Wang <unicorn_wang@outlook.com>
2026-04-01 10:35:15 +08:00
Chen Wang c951648d5f Use mainland mirrors to accelerate downloading.
Signed-off-by: Chen Wang <unicorn_wang@outlook.com>
2026-04-01 10:11:13 +08:00
Peter Korsgaard 52ee2f5644 Update for 2026.02
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2026-03-04 09:11:17 +01:00
James Hilliard 346d6667fe package/ruby: disable zjit for all builds
The zjit option introduces a rust dependency and due to that not
being handled appropriately it can cause build failures if this
feature gets incorrectly autodetected as being available.

This feature was introduced when ruby was bumped to version 4.0.0
in f594f86f9d.

Signed-off-by: James Hilliard <james.hilliard1@gmail.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2026-03-03 22:48:19 +01:00
Neal Frager 64083817de board/xilinx/arm-trusted-firmware.hash: add license file hashes
Now that custom arm-trusted-firmware versions can specify license files, add
license file hashes for the Xilinx custom arm-trusted-firmware version.

Signed-off-by: Neal Frager <neal.frager@amd.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2026-03-03 22:05:43 +01:00
Neal Frager 38486b310d board/xilinx/linux.hash: add license file hashes
Now that custom Linux versions can specify license files, add license file
hashes for the Xilinx custom Linux version.

Signed-off-by: Neal Frager <neal.frager@amd.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2026-03-03 22:05:36 +01:00
William Sherrer 166ef8a12c package/ruby: fix extension dependency after bump to 4.0.1
Commit 127f36b406 ("package/ruby: bump to version 4.0.1") adjusted
RUBY_VERSION_EXT, but ruby 4.0.1 still installs its extensions into the
4.0.0 subdir:

ls target/usr/lib/ruby/
4.0.0  site_ruby  vendor_ruby

So revert the RUBY_VERSION_EXT change to ensure the unneeded extensions are
correctly removed.

Signed-off-by: William Sherrer <william@sherrer.com>
[Peter: significantly extend commit message]
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2026-03-03 21:46:12 +01:00
Thomas Perale 6f9f9caa45 package/graphicsmagick: add patch for CVE-2025-27796
Fixes the following vulnerability:

- CVE-2025-27796:
    ReadWPGImage in WPG in GraphicsMagick before 1.3.46 mishandles palette
    buffer allocation, resulting in out-of-bounds access to heap memory in
    ReadBlob.

For more information, see
  - https://www.cve.org/CVERecord?id=CVE-2025-27796
  - https://foss.heptapod.net/graphicsmagick/graphicsmagick/-/commit/883ebf8cae6dfa5873d975fe3476b1a188ef3

Signed-off-by: Thomas Perale <thomas.perale@mind.be>
Signed-off-by: Julien Olivain <ju.o@free.fr>
2026-03-03 18:30:15 +01:00
Thomas Perale 5c03ddb286 package/graphicsmagick: add CVE-2007-0770 to IGNORE_CVES
This vulnerability match on every version of graphicsmagick [1].
It was issued because of an incomplete patch for CVE-2006-5456 and has
been since remediated [2].

Since it's really old it's unlikely it will be updated and is thus added
to IGNORE_CVES.

[1] https://nvd.nist.gov//vuln/detail/CVE-2007-0770
[2] https://bugzilla.redhat.com/show_bug.cgi?id=210921#c5

Signed-off-by: Thomas Perale <thomas.perale@mind.be>
Signed-off-by: Julien Olivain <ju.o@free.fr>
2026-03-03 18:30:15 +01:00
Thomas Perale b55fd37919 package/graphicsmagick: add CVE-2008-6621 to IGNORE_CVES
This vulnerability match on every version of graphicsmagick. Since it's
really old it's unlikely it will be updated and is thus added to
IGNORE_CVES. See [1].

[1] https://nvd.nist.gov//vuln/detail/CVE-2008-6621

Signed-off-by: Thomas Perale <thomas.perale@mind.be>
Signed-off-by: Julien Olivain <ju.o@free.fr>
2026-03-03 18:30:15 +01:00
Thomas Perale 8d184e5504 package/freerdp: patch various vulnerabilities
Patches mostly backported with the basis of the work of Ubuntu Security
team. See [1].

Fix the following vulnerabilities:

- CVE-2024-32661:
    FreeRDP is a free implementation of the Remote Desktop Protocol.
    FreeRDP based clients prior to version 3.5.1 are vulnerable to a
    possible `NULL` access and crash. Version 3.5.1 contains a patch for
    the issue. No known workarounds are available.

For more information, see:
  - https://www.cve.org/CVERecord?id=CVE-2024-32661

- CVE-2026-23530:
    FreeRDP is a free implementation of the Remote Desktop Protocol. Prior
    to version 3.21.0,`freerdp_bitmap_decompress_planar` does not validate
    `nSrcWidth`/`nSrcHeight` against `planar->maxWidth`/`maxHeight` before
    RLE decode. A malicious server can trigger a client‑side heap buffer
    overflow, causing a crash (DoS) and potential heap corruption with
    code‑execution risk depending on allocator behavior and surrounding
    heap layout. Version 3.21.0 contains a patch for the issue.

For more information, see:
  - https://www.cve.org/CVERecord?id=CVE-2026-23530

- CVE-2026-23531:
    FreeRDP is a free implementation of the Remote Desktop Protocol. Prior
    to version 3.21.0, in ClearCodec, when `glyphData` is present,
    `clear_decompress` calls `freerdp_image_copy_no_overlap` without
    validating the destination rectangle, allowing an out-of-bounds
    read/write via crafted RDPGFX surface updates. A malicious server can
    trigger a client‑side heap buffer overflow, causing a crash (DoS) and
    potential heap corruption with code‑execution risk depending on
    allocator behavior and surrounding heap layout. Version 3.21.0
    contains a patch for the issue.

For more information, see:
  - https://www.cve.org/CVERecord?id=CVE-2026-23531

- CVE-2026-23532:
    FreeRDP is a free implementation of the Remote Desktop Protocol. Prior
    to version 3.21.0, a client-side heap buffer overflow occurs in the
    FreeRDP client’s `gdi_SurfaceToSurface` path due to a mismatch between
    destination rectangle clamping and the actual copy size. A malicious
    server can trigger a client‑side heap buffer overflow, causing a crash
    (DoS) and potential heap corruption with code‑execution risk depending
    on allocator behavior and surrounding heap layout. Version 3.21.0
    contains a patch for the issue.

For more information, see:
  - https://www.cve.org/CVERecord?id=CVE-2026-23532

- CVE-2026-23533:
    FreeRDP is a free implementation of the Remote Desktop Protocol. Prior
    to version 3.21.0, a client-side heap buffer overflow occurs in the
    RDPGFX ClearCodec decode path when maliciously crafted residual data
    causes out-of-bounds writes during color output. A malicious server
    can trigger a client‑side heap buffer overflow, causing a crash (DoS)
    and potential heap corruption with code‑execution risk depending on
    allocator behavior and surrounding heap layout. Version 3.21.0
    contains a patch for the issue.

For more information, see:
  - https://www.cve.org/CVERecord?id=CVE-2026-23533

- CVE-2026-23534:
    FreeRDP is a free implementation of the Remote Desktop Protocol. Prior
    to version 3.21.0, a client-side heap buffer overflow occurs in the
    ClearCodec bands decode path when crafted band coordinates allow
    writes past the end of the destination surface buffer. A malicious
    server can trigger a client‑side heap buffer overflow, causing a crash
    (DoS) and potential heap corruption with code‑execution risk depending
    on allocator behavior and surrounding heap layout. Version 3.21.0
    contains a patch for the issue.

For more information, see:
  - https://www.cve.org/CVERecord?id=CVE-2026-23534

- CVE-2026-23948:
    FreeRDP is a free implementation of the Remote Desktop Protocol. Prior
    to 3.22.0, a NULL pointer dereference vulnerability in
    rdp_write_logon_info_v2() allows a malicious RDP server to crash
    FreeRDP proxy by sending a specially crafted LogonInfoV2 PDU with
    cbDomain=0 or cbUserName=0. This vulnerability is fixed in 3.22.0.

For more information, see:
  - https://www.cve.org/CVERecord?id=CVE-2026-23948

- CVE-2026-24675:
    FreeRDP is a free implementation of the Remote Desktop Protocol. Prior
    to 3.22.0, urb_select_interface can free the device's MS config on
    error but later code still dereferences it, leading to a use after
    free in libusb_udev_select_interface. This vulnerability is fixed in
    3.22.0.

For more information, see:
  - https://www.cve.org/CVERecord?id=CVE-2026-24675

- CVE-2026-24676:
    FreeRDP is a free implementation of the Remote Desktop Protocol. Prior
    to 3.22.0, AUDIN format renegotiation frees the active format list
    while the capture thread continues using audin->format, leading to a
    use after free in audio_format_compatible. This vulnerability is fixed
    in 3.22.0.

For more information, see:
  - https://www.cve.org/CVERecord?id=CVE-2026-24676

- CVE-2026-24679:
    FreeRDP is a free implementation of the Remote Desktop Protocol. Prior
    to 3.22.0, The URBDRC client uses server-supplied interface numbers as
    array indices without bounds checks, causing an out-of-bounds read in
    libusb_udev_select_interface. This vulnerability is fixed in 3.22.0.

For more information, see:
  - https://www.cve.org/CVERecord?id=CVE-2026-24679

- CVE-2026-24681:
    FreeRDP is a free implementation of the Remote Desktop Protocol. Prior
    to 3.22.0, aAsynchronous bulk transfer completions can use a freed
    channel callback after URBDRC channel close, leading to a use after
    free in urb_write_completion. This vulnerability is fixed in 3.22.0.

For more information, see:
  - https://www.cve.org/CVERecord?id=CVE-2026-24681

- CVE-2026-24682:
    FreeRDP is a free implementation of the Remote Desktop Protocol. Prior
    to 3.22.0, audin_server_recv_formats frees an incorrect number of
    audio formats on parse failure (i + i), leading to out-of-bounds
    access in audio_formats_free. This vulnerability is fixed in 3.22.0.

For more information, see:
  - https://www.cve.org/CVERecord?id=CVE-2026-24682

- CVE-2026-24683:
    FreeRDP is a free implementation of the Remote Desktop Protocol.
    ainput_send_input_event caches channel_callback in a local variable
    and later uses it without synchronization; a concurrent channel close
    can free or reinitialize the callback, leading to a use after free.
    Prior to 3.22.0, This vulnerability is fixed in 3.22.0.

For more information, see:
  - https://www.cve.org/CVERecord?id=CVE-2026-24683

[1] https://launchpad.net/ubuntu/+archive/primary/+sourcefiles/freerdp2/2.6.1+dfsg1-3ubuntu2.10/freerdp2_2.6.1+dfsg1-3ubuntu2.10.debian.tar.xz

Signed-off-by: Thomas Perale <thomas.perale@mind.be>
Signed-off-by: Julien Olivain <ju.o@free.fr>
2026-03-03 18:25:22 +01:00
Thomas Perale dc8fc4b803 package/freerdp: add CVE-2025-68118 to IGNORE_CVES
Only affects Windows platform. See [1] for more information.

[1] https://security-tracker.debian.org/tracker/CVE-2025-68118

Signed-off-by: Thomas Perale <thomas.perale@mind.be>
Signed-off-by: Julien Olivain <ju.o@free.fr>
2026-03-03 18:25:22 +01:00
Thomas Perale a3329fd492 package/freerdp: add CVE-2024-32662 to IGNORE_CVES
The CVE-2024-32662 was Introduced in v3.0.0-beta1.
For more information see [1].

[1] https://security-tracker.debian.org/tracker/CVE-2024-32662

Signed-off-by: Thomas Perale <thomas.perale@mind.be>
Signed-off-by: Julien Olivain <ju.o@free.fr>
2026-03-03 18:25:22 +01:00
Thomas Perale 73861bb720 package/freerdp: bump to v2.11.8
For more information on the release, see:

- https://github.com/FreeRDP/FreeRDP/commit/9b678b6d5a40ce01607d8c3b1b1416437c8416c4
- https://github.com/FreeRDP/FreeRDP/releases/tag/2.11.8
- https://github.com/FreeRDP/FreeRDP/compare/2.11.7...2.11.8

Note: the previous freerdp version 2.11.7-18-g0ee17e2f in Buildroot
is only 5 commits prior the 2.11.8 tag. This is a very minimal bump.

Signed-off-by: Thomas Perale <thomas.perale@mind.be>
[Julien: add note in commit log]
Signed-off-by: Julien Olivain <ju.o@free.fr>
2026-03-03 18:25:22 +01:00
Thomas Perale 8918f1c2c8 package/squid: add patch for CVE-2025-62168
Fixes the following vulnerability:

- CVE-2025-62168:
    Squid is a caching proxy for the Web. In Squid versions prior to 7.2,
    a failure to redact HTTP authentication credentials in error handling
    allows information disclosure. The vulnerability allows a script to
    bypass browser security protections and learn the credentials a
    trusted client uses to authenticate. This potentially allows a remote
    client to identify security tokens or credentials used internally by a
    web application using Squid for backend load balancing. These attacks
    do not require Squid to be configured with HTTP authentication. The
    vulnerability is fixed in version 7.2. As a workaround, disable debug
    information in administrator mailto links generated by Squid by
    configuring squid.conf with email_err_data off.

For more information, see:
  - https://www.cve.org/CVERecord?id=CVE-2025-62168
  - https://github.com/squid-cache/squid/commit/0951a0681011dfca3d78c84fd7f1e19c78a4443f

The backport has been compared against debian patch [1].

[1] https://sources.debian.org/src/squid/6.13-2%2Bdeb13u1/debian/patches/CVE-2025-62168.patch

Signed-off-by: Thomas Perale <thomas.perale@mind.be>
Signed-off-by: Julien Olivain <ju.o@free.fr>
2026-03-03 18:22:52 +01:00
Thomas Perale 95dad8f85c package/vim: security bump to v9.1.2148
For changes, see:

  - https://github.com/vim/vim/compare/v9.1.2017...v9.1.2148

Fixes the following vulnerabilities:

- CVE-2026-25749:
    Vim is an open source, command line text editor. Prior to version
    9.1.2132, a heap buffer overflow vulnerability exists in Vim's tag
    file resolution logic when processing the 'helpfile' option. The
    vulnerability is located in the get_tagfname() function in src/tag.c.
    When processing help file tags, Vim copies the user-controlled
    'helpfile' option value into a fixed-size heap buffer of MAXPATHL + 1
    bytes (typically 4097 bytes) using an unsafe STRCPY() operation
    without any bounds checking. This issue has been patched in version
    9.1.2132.

For more information, see:
  - https://www.cve.org/CVERecord?id=CVE-2026-25749
  - https://github.com/vim/vim/commit/0714b15940b245108e6e9d7aa2260dd849a26fa9

- CVE-2026-26269:
    Vim is an open source, command line text editor. Prior to 9.1.2148, a
    stack buffer overflow vulnerability exists in Vim's NetBeans
    integration when processing the specialKeys command, affecting Vim
    builds that enable and use the NetBeans feature. The Stack buffer
    overflow exists in special_keys() (in src/netbeans.c). The while
    (*tok) loop writes two bytes per iteration into a 64-byte stack buffer
    (keybuf) with no bounds check. A malicious NetBeans server can
    overflow keybuf with a single specialKeys command. The issue has been
    fixed as of Vim patch v9.1.2148.

For more information, see:
  - https://www.cve.org/CVERecord?id=CVE-2026-26269
  - https://github.com/vim/vim/commit/c5f312aad8e4179e437f81ad39a860cd0ef11970

Signed-off-by: Thomas Perale <thomas.perale@mind.be>
Signed-off-by: Julien Olivain <ju.o@free.fr>
2026-03-03 18:19:57 +01:00
Peter Korsgaard 8195c73ca3 Update for 2026.02-rc3
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2026-03-02 13:11:23 +01:00
Peter Korsgaard 311e5cdc51 support/testing/run-tests: unbreak on Debian testing/unstable
Commit 3d2141bcee("support/testing/run-tests: specify multiprocessing
method") added a call to multiprocessing.set_start_method('fork') as a
workaround for python 3.14, which changed the default start method to
forkserver - Which is incompatible with the nose2 setup.

multiprocessing.set_start_method() is only supposed to be called a maximum
of 1 time per process and throws a RuntimeError if called more than that
(even with the same arguments):

>>> import multiprocessing
>>> multiprocessing.set_start_method('fork')
>>> multiprocessing.set_start_method('fork')
Traceback (most recent call last):
  File "<python-input-2>", line 1, in <module>
    multiprocessing.set_start_method('fork')
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^
  File "/usr/lib/python3.13/multiprocessing/context.py", line 247, in set_start_method
    raise RuntimeError('context has already been set')

Debian included a similar patch in python3-nose2 0.51.1-2 (currently in
testing/unstable) which adds its own call to set_start_method():

https://salsa.debian.org/python-team/packages/nose2/-/blob/debian/0.15.1-2/debian/patches/0004-plugins-mp-set-context-to-fork-for-Python-3.14-mp-AP.patch?ref_type=tags

Which comes from:
https://github.com/nose-devs/nose2/pull/644

As discussed in the upstream PR, this is not a correct fix is wrong and
breaks various use cases.  An issue has been opened to get this fixed in the
Debian packaging at:

https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1129350

But until that is done, rework the patch to:

- Only override set_start_method() if needed to limit impact
- Monkey patch set_start_method() so additional calls are ignored

To unbreak run-test on affected Debian systems and add some documentation to
make it clear why this is done.

[Peter: use allow_none / force optional arguments as pointed out by Julien]
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2026-03-02 12:11:51 +01:00
Alexis Lothoré 093725864a package/openscap: add patch to enforce project as C project
When the toolchain involved in openscap build does not support C++, the
configure step fails with the following error:

  -- Detecting CXX compiler ABI info
  -- Detecting CXX compiler ABI info - failed
  -- Check for working CXX compiler: /bin/false
  -- Check for working CXX compiler: /bin/false - broken
  CMake Error at /usr/share/cmake/Modules/CMakeTestCXXCompiler.cmake:73 (message):
    The C++ compiler

      "/bin/false"

    is not able to compile a simple test program.

    It fails with the following output:

      Change Dir: '/home/autobuild/autobuild/instance-6/output-1/build/openscap-1.3.12/buildroot-build/CMakeFiles/CMakeScratch/TryCompile-tUydqI'

      Run Build Command(s): /usr/bin/cmake -E env VERBOSE=1 /usr/bin/make -f Makefile cmTC_1834b/fast
      make[1]: Entering directory '/home/autobuild/autobuild/instance-6/output-1/build/openscap-1.3.12/buildroot-build/CMakeFiles/CMakeScratch/TryCompile-tUydqI'
      /usr/bin/make  -f CMakeFiles/cmTC_1834b.dir/build.make CMakeFiles/cmTC_1834b.dir/build
      make[2]: Entering directory '/home/autobuild/autobuild/instance-6/output-1/build/openscap-1.3.12/buildroot-build/CMakeFiles/CMakeScratch/TryCompile-tUydqI'
      Building CXX object CMakeFiles/cmTC_1834b.dir/testCXXCompiler.cxx.o /bin/false    -o CMakeFiles/cmTC_1834b.dir/testCXXCompiler.cxx.o -c /home/autobuild/autobuild/instance-6/output-1/build/openscap-1.3.12/buildroot-build/CMakeFiles/CMakeScratch/TryCompile-tUydqI/testCXXCompiler.cxx
      make[2]: *** [CMakeFiles/cmTC_1834b.dir/build.make:81: CMakeFiles/cmTC_1834b.dir/testCXXCompiler.cxx.o] Error 1
      make[2]: Leaving directory '/home/autobuild/autobuild/instance-6/output-1/build/openscap-1.3.12/buildroot-build/CMakeFiles/CMakeScratch/TryCompile-tUydqI'
      make[1]: *** [Makefile:134: cmTC_1834b/fast] Error 2
      make[1]: Leaving directory '/home/autobuild/autobuild/instance-6/output-1/build/openscap-1.3.12/buildroot-build/CMakeFiles/CMakeScratch/TryCompile-tUydqI'

    CMake will not be able to correctly generate this project.
  Call Stack (most recent call first):
    CMakeLists.txt:11 (project)

  -- Configuring incomplete, errors occurred!
  make: *** [package/pkg-generic.mk:263: /home/autobuild/autobuild/instance-6/output-1/build/openscap-1.3.12/.stamp_configured] Error 1
  make: Leaving directory '/home/autobuild/autobuild/instance-6/buildroot'

The openscap project does not contain any C++ file, and so does not need
a C++ capable compiler. Bring the to-be-integrated-upstream patch
enforcing C language in CMakeLists.txt to prevent this build failure.

Fixes: https://autobuild.buildroot.org/results/1fe550ffa79f0a083a450ae03fe067a8ab7336be
Fixes: https://autobuild.buildroot.org/results/e9d52b52658544916022050c78dcb137ca6c97e0
Fixes: https://autobuild.buildroot.org/results/4a9c21763aaddb217ee5f8bb8947faad9767baa3
Signed-off-by: Alexis Lothoré <alexis.lothore@bootlin.com>
Reviewed-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2026-03-02 10:32:59 +01:00
Adrian Perez de Castro 156e5fa7eb package/webkitgtk: bump to version 2.50.5
Fixes a number of crashes. Release notes:

  https://webkitgtk.org/2026/02/09/webkitgtk2.50.5-released.html

Signed-off-by: Adrian Perez de Castro <aperez@igalia.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2026-03-02 10:28:25 +01:00
Bernd Kuhls d88660265b package/safeclib: fix build error with gcc 15.x
This defconfig can be built without problems:

BR2_x86_64=y
BR2_GCC_VERSION_15_X=y
BR2_PACKAGE_SAFECLIB=y

However adding rocketlake as architecture variant

BR2_x86_64=y
BR2_x86_rocketlake=y
BR2_GCC_VERSION_15_X=y
BR2_PACKAGE_SAFECLIB=y

causes a build error:

str/vsnprintf_s.c: In function 'safec_ftoa.isra':
str/vsnprintf_s.c:523:24: error: writing 32 bytes into a region of size
 31 [-Werror=stringop-overflow=]
  523 |             buf[len++] = '0';

with gcc 15.x only, gcc =< 14.x is not affected, reason unknown.

This commit adds two upstream commits which fix the problem.

No autobuilder error was recorded.

Signed-off-by: Bernd Kuhls <bernd@kuhls.net>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2026-03-01 22:26:12 +01:00
Bernd Kuhls 88d1fde405 package/libvirt: fix dependency of lxc support
Buildroot commit ed12e2fbed in 2021 added
BR2_PACKAGE_LIBVIRT_LXC which selects BR2_PACKAGE_LXC but did not add
the dependency !BR2_TOOLCHAIN_USES_UCLIBC which was added to lxc in
2019 by buildroot commit 63aad8a53e
causing Kconfig warnings:

WARNING: unmet direct dependencies detected for BR2_PACKAGE_LXC
  Depends on [n]: BR2_TOOLCHAIN_HAS_THREADS [=y] && BR2_USE_MMU [=y]
    && !BR2_STATIC_LIBS [=n] && BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 [=y]
    && BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0 [=y] && !BR2_TOOLCHAIN_USES_UCLIBC [=y]
  Selected by [y]:
  - BR2_PACKAGE_LIBVIRT_LXC [=y] && BR2_PACKAGE_LIBVIRT [=y]
      && BR2_PACKAGE_LIBVIRT_DAEMON [=y] && BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 [=y]

Signed-off-by: Bernd Kuhls <bernd@kuhls.net>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2026-03-01 22:22:28 +01:00
Martin Bachmann 7756b39d64 package/python-multipart: security bump to version 0.0.22
For release notes, see:
https://github.com/Kludex/python-multipart/releases/tag/0.0.22

Fixes:
https://www.cve.org/CVERecord?id=CVE-2026-24486

Signed-off-by: Martin Bachmann <martin.bachmann@designwerk.com>
[Julien: reword commit log to mark the commit as a security bump]
Signed-off-by: Julien Olivain <ju.o@free.fr>
2026-03-01 19:44:09 +01:00
Bernd Kuhls 49cabda8fb package/flashbench: fix download URL
The original source is offline, switch to forked repo and use the same
tree as before to only fix the download error.

Fixes:
https://autobuild.buildroot.net/results/eec/eecf2cbaafd8a170b5f5c6c24df552280a530204/

Signed-off-by: Bernd Kuhls <bernd@kuhls.net>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2026-03-01 15:10:49 +01:00
Adrian Perez de Castro 8d222e03c7 package/wpewebkit: disable JIT for all MIPS CPUs
Change the mips32r6 into a blanket BR2_mips[el] check to disable the
JSC JIT. Upstream removed JIT support for all MIPS processors in
January 2024 [0], and the change trickled down to stable releases
starting on version 2.44.0 [1].

While at it, change the upstream bug links to point to a more
appropriate bug report.

[0] https://commits.webkit.org/272866@main
[1] https://lists.webkit.org/archives/list/webkit-wpe@lists.webkit.org/thread/JM7GLPPKGAB6DIQ2YDHPEIWNOYSUHBC7/

Signed-off-by: Adrian Perez de Castro <aperez@igalia.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2026-03-01 15:02:55 +01:00
Adrian Perez de Castro be61be55e5 package/webkitgtk: disable JIT for all MIPS CPUs
Change the mips32r6 into a blanket BR2_mips[el] check to disable the
JSC JIT. Upstream removed JIT support for all MIPS processors in
January 2024 [0], and the change trickled down to stable releases
starting on version 2.44.0 [1].

While at it, change the upstream bug links to point to a more
appropriate bug report.

[0] https://commits.webkit.org/272866@main
[1] https://lists.webkit.org/archives/list/webkit-wpe@lists.webkit.org/thread/JM7GLPPKGAB6DIQ2YDHPEIWNOYSUHBC7/

Signed-off-by: Adrian Perez de Castro <aperez@igalia.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2026-03-01 15:01:33 +01:00
Bernd Kuhls 2a1e6376c1 package/poco: enable parallel build
Buildroot commit 126162b915 disabled
parallel builds in Jan 2017 due to a bug which was fixed upstream in
Nov 2017:
https://github.com/pocoproject/poco/commit/1724e8ba53d05ce688dcdb5176b128f116af2682#diff-76ed074a9305c04054cdebb9e9aad2d818052b07091de1f20cad0bbac34ffb52
https://github.com/pocoproject/poco/commit/076dd9679bf2e77f1df219287f0eb42ea36b7371

Building with -j100 worked.

Signed-off-by: Bernd Kuhls <bernd@kuhls.net>
Signed-off-by: Julien Olivain <ju.o@free.fr>
2026-03-01 13:34:43 +01:00
Bernd Kuhls 7da7f82307 package/samba4: bump version to 4.23.6
Release notes of this bugfix release:
https://www.samba.org/samba/history/samba-4.23.6.html

Signed-off-by: Bernd Kuhls <bernd@kuhls.net>
Signed-off-by: Julien Olivain <ju.o@free.fr>
2026-03-01 11:52:11 +01:00
Thomas Perale 7613501954 package/rtl_433: add patch for CVE-2025-34450
Fixes the following vulnerability:

- CVE-2025-34450:
    merbanan/rtl_433 versions up to and including 25.02 and prior to
    commit 25e47f8 contain a stack-based buffer overflow vulnerability in
    the function parse_rfraw() located in src/rfraw.c. When processing
    crafted or excessively large raw RF input data, the application may
    write beyond the bounds of a stack buffer, resulting in memory
    corruption or a crash. This vulnerability can be exploited to cause a
    denial of service and, under certain conditions, may be leveraged for
    further exploitation depending on the execution environment and
    available mitigations.

For mroe information, see:
  - https://www.cve.org/CVERecord?id=CVE-2025-34450
  - https://github.com/merbanan/rtl_433/commit/25e47f8932f0401392ef1d3c8cc9ed5595bc894a

Signed-off-by: Thomas Perale <thomas.perale@mind.be>
Signed-off-by: Julien Olivain <ju.o@free.fr>
2026-02-28 21:51:24 +01:00
Thomas Perale 3f4e289aab package/mupdf: add patch for CVE-2026-25556
Fixes the following vulnerability:

- CVE-2026-25556:
    MuPDF versions 1.23.0 through 1.27.0 contain a double-free
    vulnerability in fz_fill_pixmap_from_display_list() when an exception
    occurs during display list rendering. The function accepts a caller-
    owned fz_pixmap pointer but incorrectly drops the pixmap in its error
    handling path before rethrowing the exception. Callers (including the
    barcode decoding path in fz_decode_barcode_from_display_list) also
    drop the same pixmap in cleanup, resulting in a double-free that can
    corrupt the heap and crash the process. This issue affects
    applications that enable and use MuPDF barcode decoding and can be
    triggered by processing crafted input that causes a rendering-time
    error while decoding barcodes.

For more information, see
  - https://www.cve.org/CVERecord?id=CVE-2026-25556
  - https://cgit.ghostscript.com/cgi-bin/cgit.cgi/mupdf.git/commit/?id=d4743b6092d513321c23c6f7fe5cff87cde043c1

Signed-off-by: Thomas Perale <thomas.perale@mind.be>
Signed-off-by: Julien Olivain <ju.o@free.fr>
2026-02-28 21:43:18 +01:00
Bernd Kuhls f47b624a12 {linux, linux-headers}: bump 6.{18, 19}.x series
Signed-off-by: Bernd Kuhls <bernd@kuhls.net>
Signed-off-by: Julien Olivain <ju.o@free.fr>
2026-02-28 11:22:16 +01:00
Mattias Walström f54e7d710c package/libssh: Security bump to 0.11.4
Change summary:
https://git.libssh.org/projects/libssh.git/tag/?h=libssh-0.11.4

Fixes:
CVE-2025-14821: libssh loads configuration files from the C:\etc directory
on Windows
CVE-2026-0964: SCP Protocol Path Traversal in ssh_scp_pull_request()
CVE-2026-0965: Possible Denial of Service when parsing unexpected
configuration files
CVE-2026-0966: Buffer underflow in ssh_get_hexa() on invalid input
CVE-2026-0967: Specially crafted patterns could cause DoS
CVE-2026-0968: OOB Read in sftp_parse_longname()
libssh-2026-sftp-extensions: Read buffer overrun when handling SFTP
extensions

Signed-off-by: Mattias Walström <lazzer@gmail.com>
[Julien:
 - add link to upstream change summary
 - fix signature link in hash file
]
Signed-off-by: Julien Olivain <ju.o@free.fr>
2026-02-28 11:06:34 +01:00
Giulio Benetti 9702cf6ca3 package/bind: security bump to version 9.18.46
Release notes:
https://ftp.isc.org/isc/bind9/9.18.46/doc/arm/html/notes.html

Changelog:
https://ftp.isc.org/isc/bind9/9.18.46/doc/arm/html/changelog.html

Fixes bug:
GL #5751
https://gitlab.isc.org/isc-projects/bind9/-/issues/5751

Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com>
Signed-off-by: Julien Olivain <ju.o@free.fr>
2026-02-27 22:02:28 +01:00
Giulio Benetti 2ce4c8c266 package/udisks: security bump to version 2.11.1
This fixes these CVEs:
CVE-2026-26103:
https://github.com/storaged-project/udisks/security/advisories/GHSA-c75h-phf8-ccjm
CVE-2026-26104:
https://github.com/storaged-project/udisks/security/advisories/GHSA-fcvx-497g-6xmw

Release notes:
https://github.com/storaged-project/udisks/releases/tag/udisks-2.11.1

Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com>
Signed-off-by: Julien Olivain <ju.o@free.fr>
2026-02-27 21:47:22 +01:00
Bernd Kuhls fbdabe5fda package/wlroots: bump version to 0.19.2
https://gitlab.freedesktop.org/wlroots/wlroots/-/releases/0.19.2

Signed-off-by: Bernd Kuhls <bernd@kuhls.net>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2026-02-27 20:25:06 +01:00
Bernd Kuhls 3fcfe01d70 package/wlroots: fix build with libinput 1.31
Buildroot commit 0433c8d02a bumped
libinput to version 1.31.0 which causes a build error with wlroot:

../backend/libinput/switch.c: In function ‘handle_switch_toggle’:
../backend/libinput/switch.c:32:9: error: enumeration value
 ‘LIBINPUT_SWITCH_KEYPAD_SLIDE’ not handled in switch [-Werror=switch]
   32 |         switch (libinput_event_switch_get_switch(sevent)) {

The build error was not yet detected by the autobuilders but can be
reproduced using this defconfig:

BR2_x86_64=y
BR2_TOOLCHAIN_EXTERNAL=y
BR2_PER_PACKAGE_DIRECTORIES=y
BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y
BR2_PACKAGE_MESA3D=y
BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_SOFTPIPE=y
BR2_PACKAGE_MESA3D_OPENGL_GLX=y
BR2_PACKAGE_MESA3D_OPENGL_EGL=y
BR2_PACKAGE_MESA3D_OPENGL_ES=y
BR2_PACKAGE_XORG7=y
BR2_PACKAGE_WLROOTS=y

Signed-off-by: Bernd Kuhls <bernd@kuhls.net>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2026-02-27 20:24:50 +01:00
Mattias Walström 13daf36ee2 package/gpsd: Bump version to 3.27.5
Various bugfixes:
https://gpsd.gitlab.io/gpsd/NEWS

Signed-off-by: Mattias Walström <lazzer@gmail.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2026-02-27 20:17:16 +01:00
Thomas Perale e197babd38 package/botan: add patch for CVE-2024-50382 & CVE-2024-50383
Fixes the following vulnerabilities:

- CVE-2024-50382:
    Botan before 3.6.0, when certain LLVM versions are used, has compiler-
    induced secret-dependent control flow in lib/utils/ghash/ghash.cpp in
    GHASH in AES-GCM. There is a branch instead of an XOR with carry. This
    was observed for Clang in LLVM 15 on RISC-V.

For more information, see:
  - https://www.cve.org/CVERecord?id=CVE-2024-50382
  - https://github.com/randombit/botan/commit/53b0cfde580e86b03d0d27a488b6c134f662e957

- CVE-2024-50383:
    Botan before 3.6.0, when certain GCC versions are used, has a
    compiler-induced secret-dependent operation in lib/utils/donna128.h in
    donna128 (used in Chacha-Poly1305 and x25519). An addition can be
    skipped if a carry is not set. This was observed for GCC 11.3.0 with
    -O2 on MIPS, and GCC on x86-i386. (Only 32-bit processors can be
    affected.)

For more information, see:
  - https://www.cve.org/CVERecord?id=CVE-2024-50383
  - https://github.com/randombit/botan/commit/53b0cfde580e86b03d0d27a488b6c134f662e957

Signed-off-by: Thomas Perale <thomas.perale@mind.be>
Signed-off-by: Julien Olivain <ju.o@free.fr>
2026-02-27 19:07:45 +01:00
Thomas Perale be07b5766a package/tinyproxy: add patch for CVE-2025-63938
Fixes the following vulnerability:

- CVE-2025-63938:
    Tinyproxy through 1.11.2 contains an integer overflow vulnerability in
    the strip_return_port() function within src/reqs.c.

For more information, see:
  - https://www.cve.org/CVERecord?id=CVE-2025-63938
  - https://github.com/tinyproxy/tinyproxy/commit/3c0fde94981b025271ffa1788ae425257841bf5a

Signed-off-by: Thomas Perale <thomas.perale@mind.be>
Signed-off-by: Julien Olivain <ju.o@free.fr>
2026-02-26 21:10:26 +01:00
Thomas Perale 3c305f32ba package/igmpproxy: add patch for CVE-2025-50681
Fixes the following vulnerability:

- CVE-2025-50681:
    igmpproxy 0.4 before commit 2b30c36 allows remote attackers to cause a
    denial of service (application crash) via a crafted IGMPv3 membership
    report packet with a malicious source address. Due to insufficient
    validation in the `recv_igmp()` function in src/igmpproxy.c, an
    invalid group record type can trigger a NULL pointer dereference when
    logging the address using `inet_fmtsrc()`. This vulnerability can be
    exploited by sending malformed multicast traffic to a host running
    igmpproxy, leading to a crash. igmpproxy is used in various embedded
    networking environments and consumer-grade IoT devices (such as home
    routers and media gateways) to handle multicast traffic for IPTV and
    other streaming services. Affected devices that rely on unpatched
    versions of igmpproxy may be vulnerable to remote denial-of-service
    attacks across a LAN .

For more information, see:
  - https://www.cve.org/CVERecord?id=CVE-2025-50681
  - https://github.com/younix/igmpproxy/commit/2b30c36e6ab5b21defb76ec6458ab7687984484c

Signed-off-by: Thomas Perale <thomas.perale@mind.be>
Signed-off-by: Julien Olivain <ju.o@free.fr>
2026-02-26 21:04:44 +01:00
Thomas Perale ea79b66ab2 package/cups: security bump to v2.4.16
For more information on the version bump, see:
  - https://github.com/OpenPrinting/cups/blob/v2.4.16/CHANGES.md
  - https://github.com/OpenPrinting/cups/releases/tag/v2.4.16
  - https://github.com/OpenPrinting/cups/releases/tag/v2.4.15

Fixes the following vulnerabilities:

- CVE-2025-58436:
    OpenPrinting CUPS is an open source printing system for Linux and
    other Unix-like operating systems. Prior to version 2.4.15, a client
    that connects to cupsd but sends slow messages, e.g. only one byte per
    second, delays cupsd as a whole, such that it becomes unusable by
    other clients.

For more information, see
  - https://www.cve.org/CVERecord?id=CVE-2025-58436
  - https://github.com/OpenPrinting/cups/commit/40008d76a001babbb9beb9d9d74b01a86fb6ddb4

- CVE-2025-61915:
    OpenPrinting CUPS is an open source printing system for Linux and
    other Unix-like operating systems. Prior to version 2.4.15, a user in
    the lpadmin group can use the cups web ui to change the config and
    insert a malicious line. Then the cupsd process which runs as root
    will parse the new config and cause an out-of-bound write.

For more information, see
  - https://www.cve.org/CVERecord?id=CVE-2025-61915
  - https://github.com/OpenPrinting/cups/commit/db8d560262c22a21ee1e55dfd62fa98d9359bcb0

Signed-off-by: Thomas Perale <thomas.perale@mind.be>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2026-02-26 16:45:58 +01:00
Paul Kocialkowski 9123849e0e packages/libunistring: bump to version 1.4.2
This minor release contains a fix for building with host glibc 2.43,
which fails otherwise.

Signed-off-by: Paul Kocialkowski <paulk@sys-base.io>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2026-02-26 16:45:12 +01:00
Thomas Perale b28f9363c5 package/patch: add patches for CVE-2018-6952 & CVE-2019-20633
Fixes the following vulnerabilities:

- CVE-2018-6952:
    A double free exists in the another_hunk function in pch.c in GNU
    patch through 2.7.6.

For more information, see:
  - https://www.cve.org/CVERecord?id=CVE-2018-6952
  - https://cgit.git.savannah.gnu.org/cgit/patch.git/commit/?id=9c986353e420ead6e706262bf204d6e03322c300

- CVE-2019-20633:
    GNU patch through 2.7.6 contains a free(p_line[p_end]) Double Free
    vulnerability in the function another_hunk in pch.c that can cause a
    denial of service via a crafted patch file. NOTE: this issue exists
    because of an incomplete fix for CVE-2018-6952.

For more information, see:
  - https://www.cve.org/CVERecord?id=CVE-2019-20633
  - https://cgit.git.savannah.gnu.org/cgit/patch.git/commit/?id=15b158db3ae11cb835f2eb8d2eb48e09d1a4af48

Signed-off-by: Thomas Perale <thomas.perale@mind.be>
Signed-off-by: Julien Olivain <ju.o@free.fr>
2026-02-25 22:11:08 +01:00
Thomas Perale 49e180d3d5 package/containerd: security bump to v2.0.7
For more information on the version bump, see:
  - https://github.com/containerd/containerd/releases/tag/v2.0.7
  - https://github.com/containerd/containerd/releases/tag/v2.0.6
  - https://github.com/containerd/containerd/releases/tag/v2.0.5
  - https://github.com/containerd/containerd/releases/tag/v2.0.4
  - https://github.com/containerd/containerd/releases/tag/v2.0.3

Fixes the following vulnerabilities:

- CVE-2024-25621:
    Versions 2.0.0-beta.0 through 2.0.6 have an overly broad default
    permission vulnerability. Directory paths `/var/lib/containerd`,
    `/run/containerd/io.containerd.grpc.v1.cri` and
    `/run/containerd/io.containerd.sandbox.controller.v1.shim` were all
    created with incorrect permissions.

    https://www.cve.org/CVERecord?id=CVE-2024-25621

- CVE-2024-40635:
    A bug was found in containerd prior to versions 2.0.4 where
    containers launched with a User set as a `UID:GID` larger than the
    maximum 32-bit signed integer can cause an overflow condition where
    the container ultimately runs as root (UID 0). This could cause
    unexpected behavior for environments that require containers to run
    as a non-root user.

    https://www.cve.org/CVERecord?id=CVE-2024-40635

- CVE-2025-47291:
    A bug was found in the containerd's CRI implementation where
    containerd, starting in version 2.0.1 and prior to version 2.0.5,
    doesn't put usernamespaced containers under the Kubernetes' cgroup
    hierarchy, therefore some Kubernetes limits are not honored. This
    may cause a denial of service of the Kubernetes node.

    https://www.cve.org/CVERecord?id=CVE-2025-47291

- CVE-2025-64329:
    Versions 2.0.0-beta.0 through 2.0.6 contain a bug in the CRI Attach
    implementation where a user can exhaust memory on the host due to
    goroutine leaks.

    https://www.cve.org/CVERecord?id=CVE-2025-64329

Signed-off-by: Thomas Perale <thomas.perale@mind.be>
Signed-off-by: Julien Olivain <ju.o@free.fr>
2026-02-25 21:56:21 +01:00
Thomas Perale 45e009ab4a package/imagemagick: security bump to v7.1.2-15
For more information on the version bump, see:
  - https://github.com/ImageMagick/Website/blob/main/ChangeLog.md
  - https://github.com/ImageMagick/ImageMagick/compare/7.1.2-12...7.1.2-15

Fixes the following vulnerabilities:

- CVE-2026-22770:
    The BilateralBlurImage method will allocate a set of double buffers
    inside AcquireBilateralTLS. But, in versions prior to 7.1.2-13, the
    last element in the set is not properly initialized. This will
    result in a release of an invalid pointer inside DestroyBilateralTLS
    when the memory allocation fails.

    https://www.cve.org/CVERecord?id=CVE-2026-22770

- CVE-2026-23874:
    Versions prior to 7.1.2-13 have a stack overflow via infinite
    recursion in MSL (Magick Scripting Language) `<write>` command when
    writing to MSL format.

    https://www.cve.org/CVERecord?id=CVE-2026-23874

- CVE-2026-23876:
    Prior to versions 7.1.2-13 and 6.9.13-38, a heap buffer overflow
    vulnerability in the XBM image decoder (ReadXBMImage) allows an
    attacker to write controlled data past the allocated heap buffer
    when processing a maliciously crafted image file. Any operation that
    reads or identifies an image can trigger the overflow, making it
    exploitable via common image upload and processing pipelines.

    https://www.cve.org/CVERecord?id=CVE-2026-23876

- CVE-2026-24481:
    Prior to versions 7.1.2-15 and 6.9.13-40, a heap information
    disclosure vulnerability exists in ImageMagick's PSD (Adobe
    Photoshop) format handler. When processing a maliciously crafted PSD
    file containing ZIP-compressed layer data that decompresses to less
    than the expected size, uninitialized heap memory is leaked into the
    output image.

    https://www.cve.org/CVERecord?id=CVE-2026-24481

- CVE-2026-25638:
    Prior to versions 7.1.2-15 and 6.9.13-40, memory leak exists in
    `coders/msl.c`. In the `WriteMSLImage` function of the `msl.c` file,
    resources are allocated. But the function returns early without
    releasing these allocated resources.

    https://www.cve.org/CVERecord?id=CVE-2026-25638

- CVE-2026-25794:
    `WriteUHDRImage` in `coders/uhdr.c` uses `int` arithmetic to compute
    the pixel buffer size. Prior to version 7.1.2-15, when image
    dimensions are large, the multiplication overflows 32-bit `int`,
    causing an undersized heap allocation followed by an out-of-bounds
    write. This can crash the process or potentially lead to an out of
    bounds heap write.

    https://www.cve.org/CVERecord?id=CVE-2026-25794

- CVE-2026-25795:
    Prior to versions 7.1.2-15 and 6.9.13-40, in `ReadSFWImage()`
    (`coders/sfw.c`), when temporary file creation fails, `read_info` is
    destroyed before its `filename` member is accessed, causing a NULL
    pointer dereference and crash.

    https://www.cve.org/CVERecord?id=CVE-2026-25795

- CVE-2026-25796:
    Prior to versions 7.1.2-15 and 6.9.13-40, in `ReadSTEGANOImage()`
    (`coders/stegano.c`), the `watermark` Image object is not freed on
    three early-return paths, resulting in a definite memory leak
    (~13.5KB+ per invocation) that can be exploited for denial of
    service.

    https://www.cve.org/CVERecord?id=CVE-2026-25796

- CVE-2026-25798:
    Prior to versions 7.1.2-15 and 6.9.13-40, a NULL pointer dereference
    in ClonePixelCacheRepository allows a remote attacker to crash any
    application linked against ImageMagick by supplying a crafted image
    file, resulting in denial of service.

    https://www.cve.org/CVERecord?id=CVE-2026-25798

- CVE-2026-25799:
    Prior to versions 7.1.2-15 and 6.9.13-40, a logic error in YUV
    sampling factor validation allows an invalid sampling factor to
    bypass checks and trigger a division-by-zero during image loading,
    resulting in a reliable denial-of-service.

    https://www.cve.org/CVERecord?id=CVE-2026-25799

- CVE-2026-25897:
    Prior to versions 7.1.2-15 and 6.9.13-40, an Integer Overflow
    vulnerability exists in the sun decoder. On 32-bit systems/builds, a
    carefully crafted image can lead to an out of bounds heap write.

    https://www.cve.org/CVERecord?id=CVE-2026-25897

- CVE-2026-25989:
    Prior to versions 7.1.2-15 and 6.9.13-40, a crafted SVG file can
    cause a denial of service. An off-by-one boundary check (`>` instead
    of `>=`) that allows bypass the guard and reach an undefined
    `(size_t)` cast.

    https://www.cve.org/CVERecord?id=CVE-2026-25989

- CVE-2026-26066:
    Prior to versions 7.1.2-15 and 6.9.13-40, a crafted profile contain
    invalid IPTC data may cause an infinite loop when writing it with
    `IPTCTEXT`.

    https://www.cve.org/CVERecord?id=CVE-2026-26066

- CVE-2026-26283:
    Prior to versions 7.1.2-15 and 6.9.13-40, a `continue` statement in
    the JPEG extent binary search loop in the jpeg encoder causes an
    infinite loop when writing persistently fails. An attacker can
    trigger a 100% CPU consumption and process hang (Denial of Service)
    with a crafted image.

    https://www.cve.org/CVERecord?id=CVE-2026-26283

- CVE-2026-26284:
    Prior to versions 7.1.2-15 and 6.9.13-40, ImageMagick lacks proper
    boundary checking when processing Huffman- coded data from PCD
    (Photo CD) files. The decoder contains an function that has an
    incorrect initialization that could cause an out of bounds read.

    https://www.cve.org/CVERecord?id=CVE-2026-26284

- CVE-2026-26983:
    Prior to versions 7.1.2-15 and 6.9.13-40, the MSL interpreter
    crashes when processing a invalid `<map>` element that causes it to
    use an image after it has been freed.

    https://www.cve.org/CVERecord?id=CVE-2026-26983

Signed-off-by: Thomas Perale <thomas.perale@mind.be>
Signed-off-by: Julien Olivain <ju.o@free.fr>
2026-02-25 21:47:58 +01:00
Thomas Perale 2aaeb10bce package/wireshark: security bump to v4.4.13
For more information on the version bump, see:
  - https://www.wireshark.org/docs/relnotes/wireshark-4.4.13.html
  - https://www.wireshark.org/docs/relnotes/wireshark-4.4.12.html
  - https://www.wireshark.org/docs/relnotes/wireshark-4.4.11.html
  - https://www.wireshark.org/docs/relnotes/wireshark-4.4.10.html

Fixes the following vulnerabilities:

- CVE-2025-11626:
    MONGO dissector infinite loop in Wireshark 4.4.0 to 4.4.9 and 4.2.0 to
    4.2.13 allows denial of service

    https://www.cve.org/CVERecord?id=CVE-2025-11626

- CVE-2025-13499:
    Kafka dissector crash in Wireshark 4.6.0 and 4.4.0 to 4.4.10 allows
    denial of service

    https://www.cve.org/CVERecord?id=CVE-2025-13499

- CVE-2025-13946:
    MEGACO dissector infinite loop in Wireshark 4.6.0 to 4.6.1 and 4.4.0
    to 4.4.11 allows denial of service

    https://www.cve.org/CVERecord?id=CVE-2025-13946

- CVE-2026-0959:
    IEEE 802.11 protocol dissector crash in Wireshark 4.6.0 to 4.6.2 and
    4.4.0 to 4.4.12 allows denial of service

    https://www.cve.org/CVERecord?id=CVE-2026-0959

- CVE-2026-0960:
    HTTP3 protocol dissector infinite loop in Wireshark 4.6.0 to 4.6.2
    allows denial of service

    https://www.cve.org/CVERecord?id=CVE-2026-0960

- CVE-2026-0961:
    BLF file parser crash in Wireshark 4.6.0 to 4.6.2 and 4.4.0 to 4.4.12
    allows denial of service

    https://www.cve.org/CVERecord?id=CVE-2026-0961

- CVE-2026-0962:
    SOME/IP-SD protocol dissector crash in Wireshark 4.6.0 to 4.6.2 and
    4.4.0 to 4.4.12 allows denial of service

    https://www.cve.org/CVERecord?id=CVE-2026-0962

Signed-off-by: Thomas Perale <thomas.perale@mind.be>
Signed-off-by: Julien Olivain <ju.o@free.fr>
2026-02-25 21:36:11 +01:00
Bernd Kuhls b45b3b412c package/{mesa3d, mesa3d-headers}: security bump version to 26.0.1
https://lists.freedesktop.org/archives/mesa-announce/2026-February/000840.html

Signed-off-by: Bernd Kuhls <bernd@kuhls.net>
Signed-off-by: Julien Olivain <ju.o@free.fr>
2026-02-25 20:54:40 +01:00
94 changed files with 2131 additions and 182 deletions
+21
View File
@@ -1,3 +1,24 @@
2026.02, released March 4th, 2026
Various fixes.
Updated/fixed packages: freerdp, graphicsmagick, ruby, nsquid,
vim
2026.02-rc3, released March 2nd, 2026
Fixes all over the tree.
support/testing/run-tests: Work around a node2 patch in Debian
testing/unstable:
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1129350
Updated/fixed packages: bind, botan, containerd, cups, gpsd,
flashbench, igmpproxy, imagemagick, libssh, libunistring,
libvirt, mesa3d, mupdf, openscap, patch, poco,
python-multipart, rtl_433, safeclib, samba4, tinyproxy,
udisks, webkitgtk, wireshark, wlroots, wpewebkit
2026.02-rc2, released February 24th, 2026
Fixes all over the tree.
+2 -2
View File
@@ -92,9 +92,9 @@ all:
.PHONY: all
# Set and export the version string
export BR2_VERSION := 2026.02-rc2
export BR2_VERSION := 2026.02
# Actual time the release is cut (for reproducible builds)
BR2_VERSION_EPOCH = 1771955000
BR2_VERSION_EPOCH = 1772611600
# Save running make version since it's clobbered by the make package
RUNNING_MAKE_VERSION := $(MAKE_VERSION)
+272
View File
@@ -0,0 +1,272 @@
学习完 [《从零开始为 RISC-V 构建一个 Linux 系统》][1] 后的小测试
----
FIXME:这个 buildroot 仓库(包括本文件)目前放在 openruyi.cn 上,后继是否也放到 https://github.com/openRuyi-Tutorials 下去?
<!-- TOC -->
- [1. 测试任务概述](#1-测试任务概述)
- [2. 任务提交方式](#2-任务提交方式)
- [3. 测试任务描述](#3-测试任务描述)
- [3.1. 任务 1](#31-任务-1)
- [3.2. 任务 2](#32-任务-2)
- [3.3. 任务 3](#33-任务-3)
- [3.4. 任务 4](#34-任务-4)
- [3.5. 任务 5](#35-任务-5)
- [4. 联系方式](#4-联系方式)
<!-- /TOC -->
# 1. 测试任务概述
慕课 《从零开始为 RISC-V 构建一个 Linux 系统》(下文简称 MOOC)为课程提供了配套的构建脚本,代码仓库在:<https://github.com/openRuyi-Tutorials/build-linux-system-from-scratch>。这套构建脚本参考了 [Buildroot][2],具体对应的是 tag 版本为 2025.08.1 的代码。(FIXME: 用 github 的考虑是方便学生 fork,openruyi 的仓库我不知道是否合适面向所有学生建账号。)
设计测验如下,供评估学习效果参考。
测验总分 100 分,分为五个任务,参与考评的同学可任意选择其中的一个或者多个任务。所谓前置任务是指在完成本任务前必须要完成的任务项。
| 任务号 | 满分 | 前置任务 |
|--------|------|----------|
| 任务 1 | 60 | 无 |
| 任务 2 | 10 | 任务 1 |
| 任务 3 | 15 | 任务 1 |
| 任务 4 | 10 | 任务 1 |
| 任务 5 | 5 | 无 |
# 2. 任务提交方式
为了避免同时申请测试的实习生之间互相参考,请 **不要通过 PRPull Request) 方式提交你的改动**,而是采用邮件方式提交你的改动。具体提交方式如下:
- 在 Github 上 fork MOOC 仓库 <https://github.com/openRuyi-Tutorials/build-linux-system-from-scratch> 到自己的私有仓库。
- 在自己的私有仓库上 checkout 开发分支
- 将自己的改动提交到自己的开发分支上。假设您的 github userid 是 AAA,开发分支是 BBB,那么应该会得到一个对应开发分支的 URL<https://github.com/AAA/build-linux-system-from-scratch/tree/BBB>。
- 提交人员通过邮件将该开发分支的 URL 发送给 “我”(联系方式见文末)。
- 每个任务单独一封邮件,请在邮件标题中加上 “[MOOC QUIZ TASK X]” 的前缀,X 为具体的任务号(“1”,“2” ...)。
- 每个任务单独对应一个开发分支,具体要求见各个任务的描述。开发分支的取名建议加上类似 “taskX-” (X 为具体的任务号 “1”,“2” ...) 的前缀以示区分。
# 3. 测试任务描述
## 3.1. 任务 1
- 任务描述:仔细阅读 MOOC 仓库 <https://github.com/openRuyi-Tutorials/build-linux-system-from-scratch> 的构建脚本,基于该仓库的代码将 MOOC 的构建脚本中涉及的软件包的版本升级到和 Buildroot 的 tag 版本 2026.02 使用的软件包版本对齐。
关于 Buildroot 的构建,可以参考我们这里自己 mirror 的一个 Buildroot 仓库以及测验专用分支 <https://git.openruyi.cn/openRuyi-tutorials/buildroot/src/branch/quiz-mooc/>。构建方法如下,注意确保本地已经安装了 qemu-system-riscv64,版本建议至少 8.2.2 以上。构建配置采用修改过的 `qemu_riscv64_virt_defconfig`,具体的配置修改内容可以参阅 quiz-mooc 分支的 commit 历史。
```shell
$ git clone https://git.openruyi.cn/openRuyi-tutorials/buildroot.git
$ cd buildroot
$ git checkout quiz-mooc
$ make qemu_riscv64_virt_defconfig
$ ./output/images/start-qemu.sh --use-system-qemu
```
大致需要升级如下软件包:
- 升级 coreutils 到 9.10
- 升级 e2fsprogs 到 1.47.3
- 升级 expat 到 2.7.4
- 升级 fakeroot 到 1.37.1.2
- 升级 libzlib 到 1.3.2
- 升级 libxcrypt 到 4.5.2
- 升级 linux 到 6.19.5
- 升级 m4 到 1.4.21
- 升级 ncurses 到 6.6-20251231
- 升级 python3 到 3.14.3
- 升级 util-linux 到 2.41.3
- 升级 vim 到 9.1.2148
- 新增 libopenssl 3.6.1
为简化任务要求,升级过程中针对原 MOOC 构建做如下简化工作:
- 取消从源码自己构建交叉工具链,直接使用 Buildroot 预先制作的交叉工具链,具体下载的交叉工具链版本可以参考 Buildroot 的代码。
- 和 MOOC 类似,不从源码构建 QEMU,而是使用本地自己安装的 QEMU(建议版本在 8.2.2 及以上)
- 任务检验标准:
对于提交的构建代码内容的具体要求如下:
- 提交时请基于 main 分支拉出自己的开发分支并进行 commit,不要在 main 分支上直接提交 commit。
- 改动请基于 MOOC 仓库的 main 分支开发,尽量复用原有逻辑和框架而不要完全自己从头写一套,同时也不是将 Buildroot 的构建框架和脚本直接拿来使用。正常情况如果只是软件包升级应该不会涉及大的框架性改动,但如果的确发现现有代码框架无法支持新代码升级的请及时和 “我” 联系(联系方式见文末)。如果是发现原有代码有 bug 或者有需要做优化的请移步 “任务 5”。其他的额外改动需说明的请在邮件中解释。
- 为了方便 review,如果修改涉及独立的功能,以及不同模块或者不同软件包的,建议每个修改一个 commit,不要将所有改动作为一个 commit 整体提交。
- 在 commit 的描述中给出简单的修改说明,中英文皆可。简单的话一句话即可,不用重复代码的修改细节,所有的修改说明的出发点是侧重于阐述修改的原因,思路以及除了代码外需要额外说明的部分。
- 注意代码风格,特别是代码缩进等。代码整洁,不要合入临时代码、临时测试用代码以及无效的注释等垃圾代码。
除了代码提交外,对于结果的检验要求如下:和 MOOC 课程代码类似,执行代码仓库中的 `make` 命令后可以完整地从零开始构建一个系统,上述需要升级和新增的软件包都构建无误。同样执行 `start-qemu.sh` 脚本可以在 QEMU 中启动系统。登录进入系统后验证软件工作正常,包括:
- 检查 SysV 是否正常工作,检查方法:
查看 SysV 版本:
```shell
# init --version
SysV init version: 3.14
```
尝试关机:
```shell
# init 0
```
尝试重启:
```shell
# init 6
```
- 检查当前 Shell 是否是 bash,检查方法:
```shell
# echo $SHELL
/bin/bash
```
执行 `bash --version` 能够输出 bash 的版本信息和版权信息如下:
```shell
# bash --version
GNU bash, version 5.2.37(1)-release (riscv64-buildroot-linux-gnu)
Copyright (C) 2022 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software; you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
```
- 检查 coreutils 工作正常,检查方法:
```shell
# ls --help
Usage: ls [OPTION]... [FILE]...
[...... 省略]
Report bugs to: bug-coreutils@gnu.org
GNU coreutils home page: <https://www.gnu.org/software/coreutils/>
General help using GNU software: <https://www.gnu.org/gethelp/>
Report any translation bugs to <https://translationproject.org/team/>
Full documentation <https://www.gnu.org/software/coreutils/ls>
or available locally via: info '(coreutils) ls invocation'
```
应该会看到输出中最后会出现 "GNU coreutils" 字样。
- 检查 vi/vim 工作正常。检查方法:
```shell
# vi
```
或者
```shell
# vim
```
应该进入 vim 欢迎界面,并看到 "VIM - Vi IMproved" 字样。并能正常使用 vi 编辑和退出。
- 检查 Python3 工作正常。检查方法:
```shell
# python3
Python 3.14.3 (main, Apr 1 2026, 14:14:37) [GCC 15.1.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
```
可以进入 Python 控制台,输入 `quit()` 可以退出 Python 控制台。
可以运行 snake 游戏。
```shell
# python3 /usr/games/snake.py
```
## 3.2. 任务 2
- 任务描述:在 “任务 1” 完成的基础上为 MOOC 的文件系统添加一个软件包,软件包的范围局限于 Buildroot 已支持的软件包(menuconfig 中 “Target packages” 中所列出的软件包,注意新添加的软件包不要包括 “Package managers” 和 systemd)。另外注意按照 Buildroot 的风格以及 MOOC 的风格,该软件包的构建依赖和运行依赖尽量不要对 host 的原有 native 环境有依赖,也就是说除了少部分 native 环境中的 pre-installed 软件外,所有的该软件包的构建依赖和运行依赖都需要我们自己从源码开始构建和安装到 host 和 target 中。
- 任务检验标准:
对于提交的构建代码内容的具体要求
- 改动请基于您提交的 “任务 1” 的开发分支再拉一个针对 “任务 2” 的开发分支并在这个新的开发分支上 commit。
- 请在邮件中给出新增软件包的简单说明。
- 请在邮件中给出新增软件包的运行和测试说明。
- 其他要求和 “任务 1” 类似。
对于结果的检验要求:
- 不影响 “任务 1” 的构建,以及运行和测试结果。
- 满足邮件中所列出的新增软件包的运行和测试说明。
## 3.3. 任务 3
- 任务描述:在 “任务 1” 完成的基础上为 MOOC 的文件系统添加 systemd 软件包。systemd 的版本以及其构建依赖和运行依赖的软件包的版本需要和 Buildroot 的 tag 版本 2026.02 使用的软件包版本对齐。注意按照 Buildroot 的风格以及 MOOC 的风格,该软件包的构建依赖和运行依赖尽量不要对 host 的原有 native 环境有依赖,也就是说除了少部分 native 环境中的 pre-installed 软件外,所有的该软件包的构建依赖和运行依赖都需要我们自己从源码开始构建和安装到 host 和 target 中。(注:可以参考 Buildroot 的做法)。
- 任务检验标准:
对于提交的构建代码内容的具体要求:
- 改动请基于您提交的 “任务 1” 的开发分支再拉一个针对 “任务 3” 的开发分支并在这个新的开发分支上 commit。
- 其他要求和 “任务 1” 类似。
对于结果的检验要求:
- 不影响 “任务 1” 的构建,以及运行和测试结果。
- 启动系统,其中过程中应该看到 systemd 的正常输出。
- 登录进入系统后验证 systemd 软件工作正常,方法如下:
```shell
systemctl status
```
应显示 "State: running" 并返回了系统状态摘要,说明 systemd 基本可用。
尝试 stop 然后再 start 一个服务,stop 后查看服务状态应该为 inactive;start 后查看服务状态应该为 running。以 udevd 服务为例:
```shell
systemctl status systemd-udevd
systemctl stop systemd-udevd
systemctl status systemd-udevd
systemctl start systemd-udevd
systemctl status systemd-udevd
```
## 3.4. 任务 4
- 任务描述:在 “任务 3” 完成的基础上为 MOOC 的文件系统添加 简介:microdnf 软件包。注意按照 Buildroot 的风格以及 MOOC 的风格,该软件包的构建依赖和运行依赖尽量不要对 host 的原有 native 环境有依赖,也就是说除了少部分 native 环境中的 pre-installed 软件外,所有的该软件包的构建依赖和运行依赖都需要我们自己从源码开始构建和安装到 host 和 target 中。
microdnf 简介:microdnf 是一个用 C 语言编写的轻量级包管理器,可以看作是 dnf 的精简版实现。它专为容器和最小化环境设计,旨在以极小的开销完成基本的软件包管理任务。microdnf 的官方网站和源码托管在 GitHub 上,具体地址是:<https://github.com/rpm-software-management/microdnf>。
- 任务检验标准
对于提交的构建代码内容的具体要求:
- 改动请基于您提交的 “任务 1” 的开发分支再拉一个针对 “任务 4” 的开发分支并在这个新的开发分支上 commit。
- 其他要求和 “任务 1” 类似。
对于结果的检验要求:
- 不影响 “任务 1” 的构建,以及运行和测试结果。
- 登录进入系统后验证软件 microdnf 工作正常,并且可以用它从 openRuyi 的软件源(FIXME:这个我建议放在开发用的源上,并且为了避免安装过程中发生冲突,可以指定一个简单的软件包,譬如就安装一个 hello world 的可执行程序,尽可能无依赖,确保安装成功即可)下载并安装软件包 。
## 3.5. 任务 5
- 任务描述:为原 MOOC 代码仓库找 bug 或者提出改进建议。
- 任务检验标准
对于提交的构建代码内容的具体要求:
- 改动请基于 MOOC 仓库的 main 分支拉出新的开发分支并在上面 commit。
- 如果涉及多个 bug fix 或者多个改进点,请每个 bugfix 和每个改进点单独一个 commit。不要混在一起,方便 review。
- 在 commit 消息中或者在邮件中对修改进行正确的说明。
- Bug fix 要说清楚可复现的 bug 现象以及解决思路。
- 改进建议要说清楚改进的理由和改进方案。
对于结果的检验要求:Bug fix 和改进建议只要被上游接受均可视为完成 “任务 5”。注意对于 “改进建议”,不要提出超过目前课程范围内的改进建议,譬如新增软件包或者提升软件包版本这种,因为 MOOC 的课程内容目前暂时告一段落。“任务 5” 中的改进建议更多的指的是针对现有 MOOC 构建脚本的一些优化措施。
# 4. 联系方式
测试过程中有任何问题可以联系 “我”:
- 联系人:汪辰
- 联系方式(邮件):wangchen20@iscas.ac.cn
[1]: https://github.com/openRuyi-Tutorials/build-linux-system-from-scratch/blob/main/README.md
[2]: https://buildroot.org/
@@ -1,2 +1,5 @@
# Locally calculated
sha256 ea59fbfb702857a24f96ee8e9cf04f997942db1de98f8406b7daf9dcc8f4e9ea xlnx_rebase_v2.12_2025.2.tar.gz
# Locally calculated
sha256 b2c79635797bafcde84c6edadadde290b9d5e05deb3ea16a847210fd2ca83669 docs/license.rst
+5
View File
@@ -1,2 +1,7 @@
# Locally calculated
sha256 444f573cd4438af1f5062fd69fcc82965a56068e6a25cd43c062a68398f90b03 xlnx_rebase_v6.12_LTS_merge_6.12.60.tar.gz
# Locally calculated
sha256 fb5a425bd3b3cd6071a3a9aff9909a859e7c1158d54d32e07658398cd67eb6a0 COPYING
sha256 f6b78c087c3ebdf0f3c13415070dd480a3f35d8fc76f3d02180a407c1c812f79 LICENSES/preferred/GPL-2.0
sha256 8e378ab93586eb55135d3bc119cce787f7324f48394777d00c34fa3d0be3303f LICENSES/exceptions/Linux-syscall-note
+13 -5
View File
@@ -1,18 +1,26 @@
BR2_riscv=y
BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_6_18=y
BR2_TOOLCHAIN_EXTERNAL=y
BR2_KERNEL_MIRROR="http://mirrors.ustc.edu.cn/kernel.org"
BR2_GNU_MIRROR="http://mirrors.ustc.edu.cn/gnu"
BR2_LUAROCKS_MIRROR="https://luarocks.cn"
BR2_CPAN_MIRROR="http://mirrors.ustc.edu.cn/CPAN"
BR2_GLOBAL_PATCH_DIR="board/qemu/patches"
BR2_DOWNLOAD_FORCE_CHECK_HASHES=y
BR2_INIT_SYSV=y
BR2_SYSTEM_BIN_SH_BASH=y
BR2_SYSTEM_DHCP="eth0"
BR2_ROOTFS_POST_IMAGE_SCRIPT="board/qemu/post-image.sh"
BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_DEFCONFIG)"
BR2_LINUX_KERNEL=y
BR2_LINUX_KERNEL_CUSTOM_VERSION=y
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.18.7"
BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y
BR2_PACKAGE_PYTHON3=y
BR2_PACKAGE_PYTHON3_CURSES=y
BR2_PACKAGE_COREUTILS=y
BR2_PACKAGE_COREUTILS_INDIVIDUAL_BINARIES=y
BR2_PACKAGE_VIM=y
BR2_TARGET_ROOTFS_EXT2=y
BR2_TARGET_ROOTFS_EXT2_SIZE="128M"
BR2_TARGET_OPENSBI=y
BR2_TARGET_OPENSBI_CUSTOM_VERSION=y
BR2_TARGET_OPENSBI_CUSTOM_VERSION_VALUE="1.6"
BR2_TARGET_OPENSBI_PLAT="generic"
BR2_PACKAGE_HOST_QEMU=y
BR2_PACKAGE_HOST_QEMU_SYSTEM_MODE=y
+18 -16
View File
@@ -16,56 +16,58 @@
<th>Latest release date</th>
<th colspan="2">Downloads</td>
</tr>
<!--
<tr>
<th>Candidate</th>
<th>2026.02.x</th>
<td>June 2026</td>
<td>
2026.02-rc2<br/>
<a href="https://gitlab.com/buildroot.org/buildroot/-/blob/2026.02-rc2/CHANGES">
2026.02-rc3<br/>
<a href="https://gitlab.com/buildroot.org/buildroot/-/blob/2026.02-rc3/CHANGES">
Changelog
</a>
</td>
<td>2026-02-24</td>
<td>2026-03-02</td>
<td>
<a href="/downloads/buildroot-2026.02-rc2.tar.gz">
<a href="/downloads/buildroot-2026.02-rc3.tar.gz">
<img src="images/zip.png" width="24" alt="">
.tar.gz
</a><br/>
<a href="/downloads/buildroot-2026.02-rc2.tar.gz.sign">[PGP sig]</a>
<a href="/downloads/buildroot-2026.02-rc3.tar.gz.sign">[PGP sig]</a>
</td>
<td>
<a href="/downloads/buildroot-2026.02-rc2.tar.xz">
<a href="/downloads/buildroot-2026.02-rc3.tar.xz">
<img src="images/package.png" width="24" alt="">
.tar.xz
</a><br/>
<a href="/downloads/buildroot-2026.02-rc2.tar.xz.sign">[PGP sig]</a>
<a href="/downloads/buildroot-2026.02-rc3.tar.xz.sign">[PGP sig]</a>
</td>
</tr>
-->
<tr>
<th>Stable</th>
<th>2025.11.x</th>
<td>March 2026</td>
<th>2026.02.x</th>
<td>June 2026</td>
<td>
2025.11.2<br/>
<a href="https://gitlab.com/buildroot.org/buildroot/-/blob/2025.11.2/CHANGES">
2026.02<br/>
<a href="https://gitlab.com/buildroot.org/buildroot/-/blob/2026.02/CHANGES">
Changelog
</a>
</td>
<td>2026-02-20</td>
<td>2026-03-04</td>
<td>
<a href="/downloads/buildroot-2025.11.2.tar.gz">
<a href="/downloads/buildroot-2026.02.tar.gz">
<img src="images/zip.png" width="24" alt="">
.tar.gz
</a><br/>
<a href="/downloads/buildroot-2025.11.2.tar.gz.sign">[PGP sig]</a>
<a href="/downloads/buildroot-2026.02.tar.gz.sign">[PGP sig]</a>
</td>
<td>
<a href="/downloads/buildroot-2025.11.2.tar.xz">
<a href="/downloads/buildroot-2026.02.tar.xz">
<img src="images/package.png" width="24" alt="">
.tar.xz
</a><br/>
<a href="/downloads/buildroot-2025.11.2.tar.xz.sign">[PGP sig]</a>
<a href="/downloads/buildroot-2026.02.tar.xz.sign">[PGP sig]</a>
</td>
<tr>
<th>Long-term support</th>
+39
View File
@@ -9,6 +9,45 @@
<h2>News</h2>
<ul class="timeline">
<li>
<div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div>
<div class="timeline-panel">
<div class="timeline-heading">
<h4 class="timeline-title">2026.02 released</h4>
<p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>4 March 2026</small></p>
</div>
<div class="timeline-body">
<p>The stable 2026.02 release is out - Thanks to everyone
contributing and testing the release candidates. See the
<a href="https://gitlab.com/buildroot.org/buildroot/-/blob/2026.02/CHANGES">CHANGES</a>
file for more details
and go to the <a href="/downloads/">downloads page</a> to pick up the
<a href="/downloads/buildroot-2026.02.tar.xz">2026.02 release</a>.</p>
</div>
</div>
</li>
<li class="timeline-inverted">
<div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div>
<div class="timeline-panel">
<div class="timeline-heading">
<h4 class="timeline-title">2026.02-rc3 released</h4>
<p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>2 March 2026</small></p>
</div>
<div class="timeline-body">
<p>Another week, another release candidate with more cleanups and build fixes. See the
<a href="https://gitlab.com/buildroot.org/buildroot/-/blob/2026.02-rc3/CHANGES">CHANGES</a>
file for more details.</p>
<p>Go to the <a href="/downloads/">downloads page</a> to pick up the
<a href="/downloads/buildroot-2026.02-rc3.tar.xz">2026.02-rc3
release</a>, and report any problems found to the
<a href="support.html">mailing list</a> or
<a href="https://gitlab.com/buildroot.org/buildroot/-/issues">bug tracker</a>.</p>
</div>
</div>
</li>
<li>
<div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div>
<div class="timeline-panel">
View File
+1 -1
View File
@@ -141,7 +141,7 @@ config BR2_LINUX_KERNEL_CUSTOM_REPO_GIT_SUBMODULES
config BR2_LINUX_KERNEL_VERSION
string
default "6.19.3" if BR2_LINUX_KERNEL_LATEST_VERSION
default "6.19.5" if BR2_LINUX_KERNEL_LATEST_VERSION
default "5.10.246-cip66" if BR2_LINUX_KERNEL_LATEST_CIP_VERSION
default "5.10.246-cip66-rt29" if BR2_LINUX_KERNEL_LATEST_CIP_RT_VERSION
default BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE \
+2 -2
View File
@@ -1,6 +1,6 @@
# From https://www.kernel.org/pub/linux/kernel/v6.x/sha256sums.asc
sha256 0e474968adfcbee32916fd01a89d8ccfd1168d8d32569e76a5c664c793198ebe linux-6.19.3.tar.xz
sha256 ed2c3c55fd38e6836c094fce356f2567f9516130b73354a29857960368c5687f linux-6.18.13.tar.xz
sha256 95ae05c8c709e353c0e8506c072efc5598d85b8b7b564a1ebac7ee8345042ffa linux-6.19.5.tar.xz
sha256 7c716216c3c4134ed0de69195701e677577bbcdd3979f331c182acd06bf2f170 linux-6.18.15.tar.xz
# Licenses hashes
sha256 fb5a425bd3b3cd6071a3a9aff9909a859e7c1158d54d32e07658398cd67eb6a0 COPYING
+2 -2
View File
@@ -1,4 +1,4 @@
# Verified from https://ftp.isc.org/isc/bind9/9.18.45/bind-9.18.45.tar.xz.asc
# Verified from https://ftp.isc.org/isc/bind9/9.18.46/bind-9.18.46.tar.xz.asc
# with key D99CCEAF879747014F038D63182E23579462EFAA
sha256 096ec94c10bc9d2ba686325660a615962d0fd6529429149acfcfb7daefaf2421 bind-9.18.45.tar.xz
sha256 6b59f0de30c6901cce783007d06f7dd717ec3aa74b5bb5cc5159f93f0be4fc1d bind-9.18.46.tar.xz
sha256 9734825d67a3ac967b2c2f7c9a83c9e5db1c2474dbe9599157c3a4188749ebd4 COPYRIGHT
+1 -1
View File
@@ -4,7 +4,7 @@
#
################################################################################
BIND_VERSION = 9.18.45
BIND_VERSION = 9.18.46
BIND_SOURCE= bind-$(BIND_VERSION).tar.xz
BIND_SITE = https://ftp.isc.org/isc/bind9/$(BIND_VERSION)
BIND_INSTALL_STAGING = YES
@@ -0,0 +1,65 @@
From 53b0cfde580e86b03d0d27a488b6c134f662e957 Mon Sep 17 00:00:00 2001
From: Jack Lloyd <jack@randombit.net>
Date: Sat, 19 Oct 2024 07:43:18 -0400
Subject: [PATCH] Add more value barriers to avoid compiler induced side
channels
The paper https://arxiv.org/pdf/2410.13489 claims that on specific
architectures Clang and GCC may introduce jumps here. The donna128
issues only affect 32-bit processors, which explains why we would not
see it in the x86-64 valgrind runs.
The GHASH leak would seem to be generic but the authors only observed
it on RISC-V.
CVE: CVE-2024-50382
CVE: CVE-2024-50383
Upstream: https://github.com/randombit/botan/commit/53b0cfde580e86b03d0d27a488b6c134f662e957
Signed-off-by: Thomas Perale <thomas.perale@mind.be>
---
src/lib/utils/donna128.h | 5 +++--
src/lib/utils/ghash/ghash.cpp | 2 +-
2 files changed, 4 insertions(+), 3 deletions(-)
diff --git a/src/lib/utils/donna128.h b/src/lib/utils/donna128.h
index 8212bd349e0..7adf54546df 100644
--- a/src/lib/utils/donna128.h
+++ b/src/lib/utils/donna128.h
@@ -8,6 +8,7 @@
#ifndef BOTAN_CURVE25519_DONNA128_H_
#define BOTAN_CURVE25519_DONNA128_H_
+#include <botan/internal/ct_utils.h>
#include <botan/internal/mul128.h>
#include <type_traits>
@@ -73,14 +74,14 @@ class donna128 final {
l += x.l;
h += x.h;
- const uint64_t carry = (l < x.l);
+ const uint64_t carry = CT::Mask<uint64_t>::is_lt(l, x.l).if_set_return(1);
h += carry;
return *this;
}
constexpr donna128& operator+=(uint64_t x) {
l += x;
- const uint64_t carry = (l < x);
+ const uint64_t carry = CT::Mask<uint64_t>::is_lt(l, x).if_set_return(1);
h += carry;
return *this;
}
diff --git a/src/lib/utils/ghash/ghash.cpp b/src/lib/utils/ghash/ghash.cpp
index 8c3b1ed6c2a..61b28590002 100644
--- a/src/lib/utils/ghash/ghash.cpp
+++ b/src/lib/utils/ghash/ghash.cpp
@@ -131,7 +131,7 @@ void GHASH::key_schedule(std::span<const uint8_t> key) {
m_HM[4 * j + 2 * i + 1] = H1;
// GCM's bit ops are reversed so we carry out of the bottom
- const uint64_t carry = R * (H1 & 1);
+ const uint64_t carry = CT::Mask<uint64_t>::expand(H1 & 1).if_set_return(R);
H1 = (H1 >> 1) | (H0 << 63);
H0 = (H0 >> 1) ^ carry;
}
+3
View File
@@ -11,6 +11,9 @@ BOTAN_LICENSE = BSD-2-Clause
BOTAN_LICENSE_FILES = license.txt
BOTAN_CPE_ID_VALID = YES
# 0001-Add-more-value-barriers-to-avoid-compiler-induced-side-channels.patch
BOTAN_IGNORE_CVES += CVE-2024-50382 CVE-2024-50383
BOTAN_INSTALL_STAGING = YES
BOTAN_DEPENDENCIES = host-python3
+1 -1
View File
@@ -1,3 +1,3 @@
# Computed locally
sha256 472747a7a6b360a0864bab0ee00a8a6f51da5795171e6a60ab17aa80cbd850a2 containerd-2.0.2-go2.tar.gz
sha256 2bbf9fedcf4ab31736fcb3ce224ef22610a87da9d53bbd8f6d205710fd849831 containerd-2.0.7-go2.tar.gz
sha256 4bbe3b885e8cd1907ab4cf9a41e862e74e24b5422297a4f2fe524e6a30ada2b4 LICENSE
+1 -1
View File
@@ -4,7 +4,7 @@
#
################################################################################
CONTAINERD_VERSION = 2.0.2
CONTAINERD_VERSION = 2.0.7
CONTAINERD_SITE = $(call github,containerd,containerd,v$(CONTAINERD_VERSION))
CONTAINERD_LICENSE = Apache-2.0
CONTAINERD_LICENSE_FILES = LICENSE
+1 -1
View File
@@ -1,4 +1,4 @@
# Locally calculated:
sha256 660288020dd6f79caf799811c4c1a3207a48689899ac2093959d70a3bdcb7699 cups-2.4.14-source.tar.gz
sha256 0339587204b4f9428dd0592eb301dec0bf9ea6ea8dce5d9690d56be585aba92d cups-2.4.16-source.tar.gz
sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 LICENSE
sha256 977206f041b9a6f47ac00531e1242c0fab7063da71178f8d868b167b70866b6d NOTICE
+1 -1
View File
@@ -4,7 +4,7 @@
#
################################################################################
CUPS_VERSION = 2.4.14
CUPS_VERSION = 2.4.16
CUPS_SOURCE = cups-$(CUPS_VERSION)-source.tar.gz
CUPS_SITE = https://github.com/OpenPrinting/cups/releases/download/v$(CUPS_VERSION)
CUPS_LICENSE = Apache-2.0 with GPL-2.0/LGPL-2.0 exception
+1 -1
View File
@@ -7,4 +7,4 @@ config BR2_PACKAGE_FLASHBENCH
SD cards and other media for the Linaro flash memory
survey.
https://git.linaro.org/people/arnd.bergmann/flashbench.git
https://github.com/bradfa/flashbench
+1 -1
View File
@@ -1,3 +1,3 @@
# Locally computed
sha256 b5f95d2d057270adbce0f1a784b6a88db339b67326b6ca92474edd99f9fd4774 flashbench-2e30b1968a66147412f21002ea844122a0d5e2f0-git4.tar.gz
sha256 408a2642700b7f8daf4356a49948b921137ad15bb6e0fd05b1cb8dc700c154dc flashbench-2e30b1968a66147412f21002ea844122a0d5e2f0.tar.gz
sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING
+1 -2
View File
@@ -5,8 +5,7 @@
################################################################################
FLASHBENCH_VERSION = 2e30b1968a66147412f21002ea844122a0d5e2f0
FLASHBENCH_SITE = https://git.linaro.org/people/arnd/flashbench.git
FLASHBENCH_SITE_METHOD = git
FLASHBENCH_SITE = $(call github,bradfa,flashbench,$(FLASHBENCH_VERSION))
FLASHBENCH_LICENSE = GPL-2.0
FLASHBENCH_LICENSE_FILES = COPYING
@@ -0,0 +1,29 @@
From 71e463e31b4d69f4022d36bfc814592f56600793 Mon Sep 17 00:00:00 2001
From: akallabeth <akallabeth@posteo.net>
Date: Sun, 21 Apr 2024 13:56:13 +0200
Subject: [PATCH] [core,info] fix missing check in rdp_write_logon_info_v1
CVE: CVE-2024-32661
Upstream: https://github.com/FreeRDP/FreeRDP/commit/71e463e31b4d69f4022d36bfc814592f56600793
[thomas: backport https://launchpad.net/ubuntu/+archive/primary/+sourcefiles/freerdp2/2.6.1+dfsg1-3ubuntu2.10/freerdp2_2.6.1+dfsg1-3ubuntu2.10.debian.tar.xz]
Signed-off-by: Thomas Perale <thomas.perale@mind.be>
---
libfreerdp/core/info.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/libfreerdp/core/info.c b/libfreerdp/core/info.c
index 7d6eec13782d..3395e4d2e04c 100644
--- a/libfreerdp/core/info.c
+++ b/libfreerdp/core/info.c
@@ -1327,6 +1327,10 @@ static BOOL rdp_write_logon_info_v1(wStream* s, logon_info* info)
return FALSE;
/* domain */
+ WINPR_ASSERT(info);
+ if (!info->domain || !info->username)
+ return FALSE;
+
ilen = ConvertToUnicode(CP_UTF8, 0, info->domain, -1, &wString, 0);
if (ilen < 0)
@@ -0,0 +1,29 @@
From 1bab198a2edd0d0e6e1627d21a433151ea190500 Mon Sep 17 00:00:00 2001
From: akallabeth <akallabeth@posteo.net>
Date: Thu, 15 Jan 2026 12:02:02 +0100
Subject: [PATCH] [codec,planar] fix decoder length checks
CVE: CVE-2026-23530
Upstream: https://github.com/FreeRDP/FreeRDP/commit/1bab198a2edd0d0e6e1627d21a433151ea190500
[thomas: backport https://launchpad.net/ubuntu/+archive/primary/+sourcefiles/freerdp2/2.6.1+dfsg1-3ubuntu2.10/freerdp2_2.6.1+dfsg1-3ubuntu2.10.debian.tar.xz]
Signed-off-by: Thomas Perale <thomas.perale@mind.be>
---
libfreerdp/codec/planar.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/libfreerdp/codec/planar.c b/libfreerdp/codec/planar.c
index 1a06e36edb0c..94a640a551d1 100644
--- a/libfreerdp/codec/planar.c
+++ b/libfreerdp/codec/planar.c
@@ -616,6 +616,11 @@ BOOL freerdp_bitmap_decompress_planar(BITMAP_PLANAR_CONTEXT* WINPR_RESTRICT plan
WINPR_ASSERT(planar);
WINPR_ASSERT(prims);
+ if (planar->maxWidth < nSrcWidth)
+ return FALSE;
+ if (planar->maxHeight < nSrcHeight)
+ return FALSE;
+
if (nDstStep <= 0)
nDstStep = nDstWidth * GetBytesPerPixel(DstFormat);
@@ -0,0 +1,31 @@
From 25102b432fb37916a1a553d7ef8fd940c6e52c3f Mon Sep 17 00:00:00 2001
From: akallabeth <akallabeth@posteo.net>
Date: Thu, 15 Jan 2026 12:17:33 +0100
Subject: [PATCH] [codec,clear] fix missing length checks
Upstream: https://github.com/FreeRDP/FreeRDP/commit/25102b432fb37916a1a553d7ef8fd940c6e52c3f.patch
CVE: CVE-2026-23531
[thomas: backport https://launchpad.net/ubuntu/+archive/primary/+sourcefiles/freerdp2/2.6.1+dfsg1-3ubuntu2.10/freerdp2_2.6.1+dfsg1-3ubuntu2.10.debian.tar.xz]
Signed-off-by: Thomas Perale <thomas.perale@mind.be>
---
libfreerdp/codec/clear.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/libfreerdp/codec/clear.c b/libfreerdp/codec/clear.c
index aa36baa9b305..4a67a8ed692b 100644
--- a/libfreerdp/codec/clear.c
+++ b/libfreerdp/codec/clear.c
@@ -1141,8 +1141,11 @@ INT32 clear_decompress(CLEAR_CONTEXT* cl
if (glyphData)
{
- if (!freerdp_image_copy(glyphData, clear->format, 0, 0, 0, nWidth, nHeight, pDstData,
- DstFormat, nDstStep, nXDst, nYDst, palette, FREERDP_FLIP_NONE))
+ const uint32_t w = MIN(nWidth, nDstWidth);
+ const uint32_t h = MIN(nHeight, nDstHeight);
+ if (!freerdp_image_copy_no_overlap(glyphData, clear->format, 0, 0, 0, w, h, pDstData,
+ DstFormat, nDstStep, nXDst, nYDst, palette,
+ FREERDP_FLIP_NONE))
goto fail;
}
@@ -0,0 +1,79 @@
From 243ecf804bb122e8e643a5c142ad5a49d7aa19ee Mon Sep 17 00:00:00 2001
From: akallabeth <akallabeth@posteo.net>
Date: Fri, 16 Jan 2026 12:22:46 +0100
Subject: [PATCH] [codec,clear] check clear_decomress glyphData
Check destination coordinates and lengths against the actual sizes. Log
every truncation accordingly
CVE: CVE-2026-23531
Upstream: https://github.com/FreeRDP/FreeRDP/commit/243ecf804bb122e8e643a5c142ad5a49d7aa19ee
[thomas: backport https://launchpad.net/ubuntu/+archive/primary/+sourcefiles/freerdp2/2.6.1+dfsg1-3ubuntu2.10/freerdp2_2.6.1+dfsg1-3ubuntu2.10.debian.tar.xz]
Signed-off-by: Thomas Perale <thomas.perale@mind.be>
---
libfreerdp/codec/clear.c | 50 ++++++++++++++++++++++++++++++++++++++--
1 file changed, 48 insertions(+), 2 deletions(-)
diff --git a/libfreerdp/codec/clear.c b/libfreerdp/codec/clear.c
index 0efa89f8d06c..f9aa4f0000c1 100644
--- a/libfreerdp/codec/clear.c
+++ b/libfreerdp/codec/clear.c
@@ -1141,9 +1141,55 @@ INT32 clear_decompress(CLEAR_CONTEXT* cl
if (glyphData)
{
- const uint32_t w = MIN(nWidth, nDstWidth);
- const uint32_t h = MIN(nHeight, nDstHeight);
- if (!freerdp_image_copy_no_overlap(glyphData, clear->format, 0, 0, 0, w, h, pDstData,
+ uint32_t w = MIN(nWidth, nDstWidth);
+ if (nXDst > nDstWidth)
+ {
+ WLog_WARN(TAG, "glyphData copy area x exceeds destination: x=%" PRIu32 " > %" PRIu32,
+ nXDst, nDstWidth);
+ w = 0;
+ }
+ else if (nXDst + w > nDstWidth)
+ {
+ WLog_WARN(TAG,
+ "glyphData copy area x + width exceeds destination: x=%" PRIu32 " + %" PRIu32
+ " > %" PRIu32,
+ nXDst, w, nDstWidth);
+ w = nDstWidth - nXDst;
+ }
+
+ if (w != nWidth)
+ {
+ WLog_WARN(TAG,
+ "glyphData copy area width truncated: requested=%" PRIu32
+ ", truncated to %" PRIu32,
+ nWidth, w);
+ }
+
+ uint32_t h = MIN(nHeight, nDstHeight);
+ if (nYDst > nDstHeight)
+ {
+ WLog_WARN(TAG, "glyphData copy area y exceeds destination: y=%" PRIu32 " > %" PRIu32,
+ nYDst, nDstHeight);
+ h = 0;
+ }
+ else if (nYDst + h > nDstHeight)
+ {
+ WLog_WARN(TAG,
+ "glyphData copy area y + height exceeds destination: x=%" PRIu32 " + %" PRIu32
+ " > %" PRIu32,
+ nYDst, h, nDstHeight);
+ h = nDstHeight - nYDst;
+ }
+
+ if (h != nHeight)
+ {
+ WLog_WARN(TAG,
+ "glyphData copy area height truncated: requested=%" PRIu32
+ ", truncated to %" PRIu32,
+ nHeight, h);
+ }
+
+ if (!freerdp_image_copy(glyphData, clear->format, 0, 0, 0, w, h, pDstData,
DstFormat, nDstStep, nXDst, nYDst, palette,
FREERDP_FLIP_NONE))
goto fail;
@@ -0,0 +1,48 @@
From c4a7c371342edf0d307cea728f56d3302f0ab38c Mon Sep 17 00:00:00 2001
From: akallabeth <akallabeth@posteo.net>
Date: Thu, 15 Jan 2026 12:04:36 +0100
Subject: [PATCH] [gdi,gfx] properly clamp SurfaceToSurface
CVE: CVE-2026-23532
Upstream: https://github.com/FreeRDP/FreeRDP/commit/c4a7c371342edf0d307cea728f56d3302f0ab38c
[thomas: backport https://launchpad.net/ubuntu/+archive/primary/+sourcefiles/freerdp2/2.6.1+dfsg1-3ubuntu2.10/freerdp2_2.6.1+dfsg1-3ubuntu2.10.debian.tar.xz]
Signed-off-by: Thomas Perale <thomas.perale@mind.be>
---
libfreerdp/gdi/gfx.c | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/libfreerdp/gdi/gfx.c b/libfreerdp/gdi/gfx.c
index 56e6ff9ed50b..96ce1007025c 100644
--- a/libfreerdp/gdi/gfx.c
+++ b/libfreerdp/gdi/gfx.c
@@ -1175,7 +1175,6 @@ static UINT gdi_SurfaceToSurface(RdpgfxC
UINT status = ERROR_INTERNAL_ERROR;
UINT16 index;
BOOL sameSurface;
- UINT32 nWidth, nHeight;
const RECTANGLE_16* rectSrc;
RECTANGLE_16 invalidRect;
gdiGfxSurface* surfaceSrc;
@@ -1199,8 +1198,8 @@ static UINT gdi_SurfaceToSurface(RdpgfxC
if (!is_rect_valid(rectSrc, surfaceSrc->width, surfaceSrc->height))
goto fail;
- nWidth = rectSrc->right - rectSrc->left;
- nHeight = rectSrc->bottom - rectSrc->top;
+ const UINT32 nWidth = rectSrc->right - rectSrc->left;
+ const UINT32 nHeight = rectSrc->bottom - rectSrc->top;
for (index = 0; index < surfaceToSurface->destPtsCount; index++)
{
@@ -1209,8 +1208,10 @@ static UINT gdi_SurfaceToSurface(RdpgfxC
if (!is_rect_valid(&rect, surfaceDst->width, surfaceDst->height))
goto fail;
+ const UINT32 rwidth = rect.right - rect.left;
+ const UINT32 rheight = rect.bottom - rect.top;
if (!freerdp_image_copy(surfaceDst->data, surfaceDst->format, surfaceDst->scanline,
- destPt->x, destPt->y, nWidth, nHeight, surfaceSrc->data,
+ destPt->x, destPt->y, rwidth, rheight, surfaceSrc->data,
surfaceSrc->format, surfaceSrc->scanline, rectSrc->left,
rectSrc->top, NULL, FREERDP_FLIP_NONE))
goto fail;
@@ -0,0 +1,58 @@
From c4391827d7facfc874ca7f61a92afb82232a5748 Mon Sep 17 00:00:00 2001
From: akallabeth <akallabeth@posteo.net>
Date: Thu, 15 Jan 2026 12:11:57 +0100
Subject: [PATCH] [codec,clear] fix clear_resize_buffer checks
CVE: CVE-2026-23533
Upstream: https://github.com/FreeRDP/FreeRDP/commit/c4391827d7facfc874ca7f61a92afb82232a5748
[thomas: backport https://launchpad.net/ubuntu/+archive/primary/+sourcefiles/freerdp2/2.6.1+dfsg1-3ubuntu2.10/freerdp2_2.6.1+dfsg1-3ubuntu2.10.debian.tar.xz]
Signed-off-by: Thomas Perale <thomas.perale@mind.be>
---
libfreerdp/codec/clear.c | 15 ++++++++-------
1 file changed, 8 insertions(+), 7 deletions(-)
diff --git a/libfreerdp/codec/clear.c b/libfreerdp/codec/clear.c
index ad57529093e3..aa36baa9b305 100644
--- a/libfreerdp/codec/clear.c
+++ b/libfreerdp/codec/clear.c
@@ -62,7 +62,7 @@ struct S_CLEAR_CONTEXT
NSC_CONTEXT* nsc;
UINT32 seqNumber;
BYTE* TempBuffer;
- UINT32 TempSize;
+ size_t TempSize;
UINT32 nTempStep;
UINT32 TempFormat;
UINT32 format;
@@ -313,16 +313,17 @@ static BOOL clear_decompress_subcode_rlex(wStream* WINPR_RESTRICT s, UINT32 bitm
static BOOL clear_resize_buffer(CLEAR_CONTEXT* clear, UINT32 width, UINT32 height)
{
- UINT32 size;
-
if (!clear)
return FALSE;
- size = ((width + 16) * (height + 16) * GetBytesPerPixel(clear->format));
+ const UINT64 size = 1ull * (width + 16ull) * (height + 16ull);
+ const size_t bpp = GetBytesPerPixel(clear->format);
+ if (size > UINT32_MAX / bpp)
+ return FALSE;
- if (size > clear->TempSize)
+ if (size > clear->TempSize / bpp)
{
- BYTE* tmp = (BYTE*)realloc(clear->TempBuffer, size);
+ BYTE* tmp = (BYTE*)realloc(clear->TempBuffer, size * bpp);
if (!tmp)
{
@@ -330,7 +331,7 @@ static BOOL clear_resize_buffer(CLEAR_CONTEXT* WINPR_RESTRICT clear, UINT32 widt
return FALSE;
}
- clear->TempSize = size;
+ clear->TempSize = size * bpp;
clear->TempBuffer = tmp;
}
@@ -0,0 +1,33 @@
From f8688b57f6cfad9a0b05475a6afbde355ffab720 Mon Sep 17 00:00:00 2001
From: akallabeth <akallabeth@posteo.net>
Date: Thu, 15 Jan 2026 12:19:53 +0100
Subject: [PATCH] [codec,clear] fix off by one length check
CVE: CVE-2026-23534
Upstream: https://github.com/FreeRDP/FreeRDP/commit/f8688b57f6cfad9a0b05475a6afbde355ffab720
[thomas: backport https://launchpad.net/ubuntu/+archive/primary/+sourcefiles/freerdp2/2.6.1+dfsg1-3ubuntu2.10/freerdp2_2.6.1+dfsg1-3ubuntu2.10.debian.tar.xz]
Signed-off-by: Thomas Perale <thomas.perale@mind.be>
---
libfreerdp/codec/clear.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/libfreerdp/codec/clear.c b/libfreerdp/codec/clear.c
index 4a67a8ed692b..0efa89f8d06c 100644
--- a/libfreerdp/codec/clear.c
+++ b/libfreerdp/codec/clear.c
@@ -881,11 +881,14 @@ static BOOL clear_decompress_bands_data(
if (count > nHeight)
count = nHeight;
- if (nXDstRel + i > nDstWidth)
+ if (nXDstRel + i >= nDstWidth)
return FALSE;
for (UINT32 y = 0; y < count; y++)
{
+ if (nYDstRel + y >= nDstHeight)
+ return FALSE;
+
BYTE* pDstPixel8 = &pDstData[((nYDstRel + y) * nDstStep) +
((nXDstRel + i) * GetBytesPerPixel(DstFormat))];
UINT32 color = ReadColor(cpSrcPixel, clear->format);
@@ -0,0 +1,55 @@
From 4d44e3c097656a8b9ec696353647b0888ca45860 Mon Sep 17 00:00:00 2001
From: akallabeth <akallabeth@posteo.net>
Date: Mon, 19 Jan 2026 20:11:24 +0100
Subject: [PATCH] [core,info] fix missing NULL check
Upstream: https://github.com/FreeRDP/FreeRDP/commit/4d44e3c097656a8b9ec696353647b0888ca45860
CVE: CVE-2026-23948
[thomas: backport https://launchpad.net/ubuntu/+archive/primary/+sourcefiles/freerdp2/2.6.1+dfsg1-3ubuntu2.10/freerdp2_2.6.1+dfsg1-3ubuntu2.10.debian.tar.xz]
Signed-off-by: Thomas Perale <thomas.perale@mind.be>
---
libfreerdp/core/info.c | 14 +++++++++-----
1 file changed, 9 insertions(+), 5 deletions(-)
diff --git a/libfreerdp/core/info.c b/libfreerdp/core/info.c
index 0b17b75d9f64..cc54aee7baef 100644
--- a/libfreerdp/core/info.c
+++ b/libfreerdp/core/info.c
@@ -1372,7 +1372,7 @@ static BOOL rdp_write_logon_info_v1(wStr
return TRUE;
}
-static BOOL rdp_write_logon_info_v2(wStream* s, logon_info* info)
+static BOOL rdp_write_logon_info_v2(wStream* s, const logon_info* info)
{
UINT32 Size = 2 + 4 + 4 + 4 + 4 + 558;
size_t domainLen, usernameLen;
@@ -1385,11 +1385,13 @@ static BOOL rdp_write_logon_info_v2(wStr
Stream_Write_UINT16(s, SAVE_SESSION_PDU_VERSION_ONE);
Stream_Write_UINT32(s, Size);
Stream_Write_UINT32(s, info->sessionId);
- domainLen = strlen(info->domain);
+ if (info->domain)
+ domainLen = strlen(info->domain);
if (domainLen > UINT32_MAX)
return FALSE;
Stream_Write_UINT32(s, (UINT32)(domainLen + 1) * 2);
- usernameLen = strlen(info->username);
+ if (info->username)
+ usernameLen = strlen(info->username);
if (usernameLen > UINT32_MAX)
return FALSE;
Stream_Write_UINT32(s, (UINT32)(usernameLen + 1) * 2);
@@ -1466,10 +1468,10 @@ static BOOL rdp_write_logon_info_ex(wStr
BOOL rdp_send_save_session_info(rdpContext* context, UINT32 type, void* data)
{
- wStream* s;
BOOL status;
+ WINPR_ASSERT(context);
rdpRdp* rdp = context->rdp;
- s = rdp_data_pdu_init(rdp);
+ wStream* s = rdp_data_pdu_init(rdp);
if (!s)
return FALSE;
@@ -0,0 +1,31 @@
From d676518809c319eec15911c705c13536036af2ae Mon Sep 17 00:00:00 2001
From: akallabeth <akallabeth@posteo.net>
Date: Mon, 26 Jan 2026 11:54:56 +0100
Subject: [PATCH] [channels,urbdrc] do not free MsConfig on failure
let the channel handle it later.
CVE: CVE-2026-24675
Upstream: https://github.com/FreeRDP/FreeRDP/commit/d676518809c319eec15911c705c13536036af2ae
[thomas: backport https://launchpad.net/ubuntu/+archive/primary/+sourcefiles/freerdp2/2.6.1+dfsg1-3ubuntu2.10/freerdp2_2.6.1+dfsg1-3ubuntu2.10.debian.tar.xz]
Signed-off-by: Thomas Perale <thomas.perale@mind.be>
---
channels/urbdrc/client/data_transfer.c | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/channels/urbdrc/client/data_transfer.c b/channels/urbdrc/client/data_transfer.c
index af4b9fb5f641..c4042107d4ee 100644
--- a/channels/urbdrc/client/data_transfer.c
+++ b/channels/urbdrc/client/data_transfer.c
@@ -570,10 +570,8 @@ static UINT urb_select_interface(IUDEVICE* pdev, GENERIC_CHANNEL_CALLBACK* callb
MsConfig = pdev->get_MsConfig(pdev);
InterfaceNumber = MsInterface->InterfaceNumber;
if (!msusb_msinterface_replace(MsConfig, InterfaceNumber, MsInterface))
- {
- msusb_msconfig_free(MsConfig);
return ERROR_BAD_CONFIGURATION;
- }
+
/* complete configuration setup */
if (!pdev->complete_msconfig_setup(pdev, MsConfig))
{
@@ -0,0 +1,35 @@
From 026b81ae5831ac1598d8f7371e0d0996fac7db00 Mon Sep 17 00:00:00 2001
From: akallabeth <akallabeth@posteo.net>
Date: Mon, 26 Jan 2026 10:20:23 +0100
Subject: [PATCH] [channels,audin] reset audin->format
Whenever the underlying structure changes reset the pointer to NULL
CVE: CVE-2026-24676
Upstream: https://github.com/FreeRDP/FreeRDP/commit/026b81ae5831ac1598d8f7371e0d0996fac7db00
[thomas: backport https://launchpad.net/ubuntu/+archive/primary/+sourcefiles/freerdp2/2.6.1+dfsg1-3ubuntu2.10/freerdp2_2.6.1+dfsg1-3ubuntu2.10.debian.tar.xz]
Signed-off-by: Thomas Perale <thomas.perale@mind.be>
---
channels/audin/client/audin_main.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/channels/audin/client/audin_main.c b/channels/audin/client/audin_main.c
index c57c65a62d4e..76d87bb9c1ed 100644
--- a/channels/audin/client/audin_main.c
+++ b/channels/audin/client/audin_main.c
@@ -219,6 +219,7 @@ static UINT audin_process_formats(AUDIN_
}
Stream_Seek_UINT32(s); /* cbSizeFormatsPacket */
+ audin->format = NULL;
callback->formats = audio_formats_new(NumFormats);
if (!callback->formats)
@@ -293,6 +294,7 @@ out:
if (error != CHANNEL_RC_OK)
{
+ audin->format = NULL;
audio_formats_free(callback->formats, NumFormats);
callback->formats = NULL;
}
@@ -0,0 +1,43 @@
From 2d563a50be17c1b407ca448b1321378c0726dd31 Mon Sep 17 00:00:00 2001
From: akallabeth <akallabeth@posteo.net>
Date: Mon, 26 Jan 2026 10:59:39 +0100
Subject: [PATCH] [channels,urbdrc] ensure InterfaceNumber is within range
CVE: CVE-2026-24679
Upstream: https://github.com/FreeRDP/FreeRDP/commit/2d563a50be17c1b407ca448b1321378c0726dd31
[thomas: backport https://launchpad.net/ubuntu/+archive/primary/+sourcefiles/freerdp2/2.6.1+dfsg1-3ubuntu2.10/freerdp2_2.6.1+dfsg1-3ubuntu2.10.debian.tar.xz]
Signed-off-by: Thomas Perale <thomas.perale@mind.be>
---
channels/urbdrc/client/libusb/libusb_udevice.c | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/channels/urbdrc/client/libusb/libusb_udevice.c b/channels/urbdrc/client/libusb/libusb_udevice.c
index 6c2376f74fd6..5341248ec64f 100644
--- a/channels/urbdrc/client/libusb/libusb_udevice.c
+++ b/channels/urbdrc/client/libusb/libusb_udevice.c
@@ -528,19 +528,19 @@ static int libusb_udev_select_interface(
{
int error = 0, diff = 0;
UDEVICE* pdev = (UDEVICE*)idev;
- URBDRC_PLUGIN* urbdrc;
- MSUSB_CONFIG_DESCRIPTOR* MsConfig;
- MSUSB_INTERFACE_DESCRIPTOR** MsInterfaces;
if (!pdev || !pdev->urbdrc)
return -1;
- urbdrc = pdev->urbdrc;
- MsConfig = pdev->MsConfig;
+ URBDRC_PLUGIN* urbdrc = pdev->urbdrc;
+ MSUSB_CONFIG_DESCRIPTOR* MsConfig = pdev->MsConfig;
if (MsConfig)
{
- MsInterfaces = MsConfig->MsInterfaces;
+ if (InterfaceNumber >= MsConfig->NumInterfaces)
+ return -2;
+
+ MSUSB_INTERFACE_DESCRIPTOR** MsInterfaces = MsConfig->MsInterfaces;
if (MsInterfaces)
{
WLog_Print(urbdrc->log, WLOG_INFO,
@@ -0,0 +1,24 @@
From 414f701464929c217f2509bcbd6d2c1f00f7ed73 Mon Sep 17 00:00:00 2001
From: akallabeth <akallabeth@posteo.net>
Date: Mon, 26 Jan 2026 11:07:25 +0100
Subject: [PATCH] [channels,urbdrc] cancel all usb transfers on channel close
CVE: CVE-2026-24681
Upstream: https://github.com/FreeRDP/FreeRDP/commit/414f701464929c217f2509bcbd6d2c1f00f7ed73
Signed-off-by: Thomas Perale <thomas.perale@mind.be>
---
channels/urbdrc/client/libusb/libusb_udevice.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/channels/urbdrc/client/libusb/libusb_udevice.c b/channels/urbdrc/client/libusb/libusb_udevice.c
index 5341248ec64f..9e2d3ec5a193 100644
--- a/channels/urbdrc/client/libusb/libusb_udevice.c
+++ b/channels/urbdrc/client/libusb/libusb_udevice.c
@@ -1116,6 +1116,7 @@ static void libusb_udev_mark_channel_closed(IUDEVICE* idev)
const uint8_t devNr = idev->get_dev_number(idev);
pdev->status |= URBDRC_DEVICE_CHANNEL_CLOSED;
+ pdev->iface.cancel_all_transfer_request(&pdev->iface);
urbdrc->udevman->unregister_udevice(urbdrc->udevman, busNr, devNr);
}
}
@@ -0,0 +1,26 @@
From 1c5c74223179d425a1ce6dbbb6a3dd2a958b7aee Mon Sep 17 00:00:00 2001
From: akallabeth <akallabeth@posteo.net>
Date: Mon, 26 Jan 2026 10:14:08 +0100
Subject: [PATCH] [channels,audin] fix audin_server_recv_formats cleanup
CVE: CVE-2026-24682
Upstream: https://github.com/FreeRDP/FreeRDP/commit/1c5c74223179d425a1ce6dbbb6a3dd2a958b7aee
[thomas: backport https://launchpad.net/ubuntu/+archive/primary/+sourcefiles/freerdp2/2.6.1+dfsg1-3ubuntu2.10/freerdp2_2.6.1+dfsg1-3ubuntu2.10.debian.tar.xz]
Signed-off-by: Thomas Perale <thomas.perale@mind.be>
---
channels/audin/server/audin.c | 6 +-----
1 file changed, 1 insertion(+), 5 deletions(-)
diff --git a/channels/audin/server/audin.c b/channels/audin/server/audin.c
index 5046a7d6f27c..17077efa6652 100644
--- a/channels/audin/server/audin.c
+++ b/channels/audin/server/audin.c
@@ -215,7 +215,7 @@ static UINT audin_server_recv_formats(au
if (!audio_format_read(s, format))
{
- audio_formats_free(audin->context.client_formats, i);
+ audio_formats_free(audin->context.client_formats, audin->context.num_client_formats);
audin->context.client_formats = NULL;
WLog_ERR(TAG, "expected length at least 18, but got %" PRIu32 "", length);
return ERROR_INVALID_DATA;
@@ -0,0 +1,109 @@
From d9ca272dce7a776ab475e9b1a8e8c3d2968c8486 Mon Sep 17 00:00:00 2001
From: akallabeth <akallabeth@posteo.net>
Date: Mon, 26 Jan 2026 12:08:48 +0100
Subject: [PATCH] [channels,ainput] lock context when updating listener
CVE: CVE-2026-24683
Upstream: https://github.com/FreeRDP/FreeRDP/commit/d9ca272dce7a776ab475e9b1a8e8c3d2968c8486
[thomas: backport https://launchpad.net/ubuntu/+archive/primary/+sourcefiles/freerdp2/2.6.1+dfsg1-3ubuntu2.10/freerdp2_2.6.1+dfsg1-3ubuntu2.10.debian.tar.xz]
Signed-off-by: Thomas Perale <thomas.perale@mind.be>
---
channels/ainput/client/ainput_main.c | 36 ++++++++++++++++++++--------
1 file changed, 26 insertions(+), 10 deletions(-)
diff --git a/channels/ainput/client/ainput_main.c b/channels/ainput/client/ainput_main.c
index c291bd727285..5545753600a1 100644
--- a/channels/ainput/client/ainput_main.c
+++ b/channels/ainput/client/ainput_main.c
@@ -69,6 +69,7 @@ struct AINPUT_PLUGIN_
UINT32 MajorVersion;
UINT32 MinorVersion;
BOOL initialized;
+ CRITICAL_SECTION lock;
};
/**
@@ -109,10 +110,7 @@ static UINT ainput_on_data_received(IWTS
static UINT ainput_send_input_event(AInputClientContext* context, UINT64 flags, INT32 x, INT32 y)
{
- AINPUT_PLUGIN* ainput;
- AINPUT_CHANNEL_CALLBACK* callback;
BYTE buffer[32] = { 0 };
- UINT64 time;
wStream sbuffer = { 0 };
wStream* s = &sbuffer;
@@ -121,8 +119,8 @@ static UINT ainput_send_input_event(AInp
WINPR_ASSERT(s);
WINPR_ASSERT(context);
- time = GetTickCount64();
- ainput = (AINPUT_PLUGIN*)context->handle;
+ const UINT64 time = GetTickCount64();
+ AINPUT_PLUGIN* ainput = (AINPUT_PLUGIN*)context->handle;
WINPR_ASSERT(ainput);
WINPR_ASSERT(ainput->listener_callback);
@@ -132,8 +130,6 @@ static UINT ainput_send_input_event(AInp
ainput->MajorVersion, ainput->MinorVersion);
return CHANNEL_RC_UNSUPPORTED_VERSION;
}
- callback = ainput->listener_callback->channel_callback;
- WINPR_ASSERT(callback);
{
char buffer[128] = { 0 };
@@ -152,10 +148,15 @@ static UINT ainput_send_input_event(AInp
Stream_SealLength(s);
/* ainput back what we have received. AINPUT does not have any message IDs. */
+ EnterCriticalSection(&ainput->lock);
+ AINPUT_CHANNEL_CALLBACK* callback = ainput->listener_callback->channel_callback;
+ WINPR_ASSERT(callback);
WINPR_ASSERT(callback->channel);
WINPR_ASSERT(callback->channel->Write);
- return callback->channel->Write(callback->channel, (ULONG)Stream_Length(s), Stream_Buffer(s),
+ const UINT rc = callback->channel->Write(callback->channel, (ULONG)Stream_Length(s), Stream_Buffer(s),
NULL);
+ LeaveCriticalSection(&ainput->lock);
+ return rc;
}
/**
@@ -167,7 +168,14 @@ static UINT ainput_on_close(IWTSVirtualC
{
AINPUT_CHANNEL_CALLBACK* callback = (AINPUT_CHANNEL_CALLBACK*)pChannelCallback;
- free(callback);
+ if (callback)
+ {
+ AINPUT_PLUGIN* ainput = (AINPUT_PLUGIN*)callback->plugin;
+ WINPR_ASSERT(ainput);
+ EnterCriticalSection(&ainput->lock);
+ free(callback);
+ LeaveCriticalSection(&ainput->lock);
+ }
return CHANNEL_RC_OK;
}
@@ -242,7 +250,10 @@ static UINT ainput_plugin_initialize(IWT
status = pChannelMgr->CreateListener(pChannelMgr, AINPUT_DVC_CHANNEL_NAME, 0,
&ainput->listener_callback->iface, &ainput->listener);
+ InitializeCriticalSection(&ainput->lock);
+ EnterCriticalSection(&ainput->lock);
ainput->listener->pInterface = ainput->iface.pInterface;
+ LeaveCriticalSection(&ainput->lock);
ainput->initialized = status == CHANNEL_RC_OK;
return status;
}
@@ -255,6 +266,8 @@ static UINT ainput_plugin_initialize(IWT
static UINT ainput_plugin_terminated(IWTSPlugin* pPlugin)
{
AINPUT_PLUGIN* ainput = (AINPUT_PLUGIN*)pPlugin;
+ WINPR_ASSERT(ainput);
+ DeleteCriticalSection(&ainput->lock);
if (ainput && ainput->listener_callback)
{
IWTSVirtualChannelManager* mgr = ainput->listener_callback->channel_mgr;
@@ -0,0 +1,64 @@
From 622bb7b4402491ca003f47472d0e478132673696 Mon Sep 17 00:00:00 2001
From: akallabeth <akallabeth@posteo.net>
Date: Mon, 26 Jan 2026 10:48:14 +0100
Subject: [PATCH] [channels,rdpsnd] terminate thread before free
Ensure that the optional rdpsnd thread is terminated and the message
queue freed up before releasing the channel context memory
CVE: CVE-2026-24684
Upstream: https://github.com/FreeRDP/FreeRDP/commit/622bb7b4402491ca003f47472d0e478132673696
[thomas: backport https://launchpad.net/ubuntu/+archive/primary/+sourcefiles/freerdp2/2.6.1+dfsg1-3ubuntu2.10/freerdp2_2.6.1+dfsg1-3ubuntu2.10.debian.tar.xz]
Signed-off-by: Thomas Perale <thomas.perale@mind.be>
---
channels/rdpsnd/client/rdpsnd_main.c | 28 +++++++++++++++++++---------
1 file changed, 19 insertions(+), 9 deletions(-)
diff --git a/channels/rdpsnd/client/rdpsnd_main.c b/channels/rdpsnd/client/rdpsnd_main.c
index 49c763a87e9b..61a29ec40aa8 100644
--- a/channels/rdpsnd/client/rdpsnd_main.c
+++ b/channels/rdpsnd/client/rdpsnd_main.c
@@ -1244,11 +1244,27 @@ fail:
return CHANNEL_RC_NO_MEMORY;
}
+static void rdpsnd_terminate_thread(rdpsndPlugin* rdpsnd)
+{
+ WINPR_ASSERT(rdpsnd);
+ if (rdpsnd->queue)
+ MessageQueue_PostQuit(rdpsnd->queue, 0);
+ if (rdpsnd->thread)
+ {
+ WaitForSingleObject(rdpsnd->thread, INFINITE);
+ CloseHandle(rdpsnd->thread);
+ }
+ MessageQueue_Free(rdpsnd->queue);
+ rdpsnd->thread = NULL;
+ rdpsnd->queue = NULL;
+}
+
static void cleanup_internals(rdpsndPlugin* rdpsnd)
{
if (!rdpsnd)
return;
+ rdpsnd_terminate_thread(rdpsnd);
if (rdpsnd->pool)
StreamPool_Return(rdpsnd->pool, rdpsnd->data_in);
@@ -1396,14 +1412,7 @@ void rdpsnd_virtual_channel_event_termin
{
if (rdpsnd)
{
- if (rdpsnd->queue)
- MessageQueue_PostQuit(rdpsnd->queue, 0);
- if (rdpsnd->thread)
- {
- WaitForSingleObject(rdpsnd->thread, INFINITE);
- CloseHandle(rdpsnd->thread);
- }
- MessageQueue_Free(rdpsnd->queue);
+ rdpsnd_terminate_thread(rdpsnd);
free_internals(rdpsnd);
audio_formats_free(rdpsnd->fixed_format, 1);
@@ -0,0 +1,116 @@
From afa6851dc80835d3101e40fcef51b6c5c0f43ea5 Mon Sep 17 00:00:00 2001
From: akallabeth <akallabeth@posteo.net>
Date: Wed, 28 Jan 2026 09:31:06 +0100
Subject: [PATCH] [channel,rdpsnd] only clean up thread before free
rdpsnd channel usually has multiple instances (static, dynamic, ...) so
ensure only to terminate the handler thread when the channel is actually
closed for good.
CVE: CVE-2026-24684
Upstream: https://github.com/FreeRDP/FreeRDP/commit/afa6851dc80835d3101e40fcef51b6c5c0f43ea5
[thomas: backport https://launchpad.net/ubuntu/+archive/primary/+sourcefiles/freerdp2/2.6.1+dfsg1-3ubuntu2.10/freerdp2_2.6.1+dfsg1-3ubuntu2.10.debian.tar.xz]
Signed-off-by: Thomas Perale <thomas.perale@mind.be>
---
channels/rdpsnd/client/rdpsnd_main.c | 43 ++++++++++++++++------------
1 file changed, 25 insertions(+), 18 deletions(-)
diff --git a/channels/rdpsnd/client/rdpsnd_main.c b/channels/rdpsnd/client/rdpsnd_main.c
index 61a29ec40aa8..5a1edaea62c6 100644
--- a/channels/rdpsnd/client/rdpsnd_main.c
+++ b/channels/rdpsnd/client/rdpsnd_main.c
@@ -132,6 +132,8 @@ struct rdpsnd_plugin
BOOL applyVolume;
};
+static DWORD WINAPI play_thread(LPVOID arg);
+
static const char* rdpsnd_is_dyn_str(BOOL dynamic)
{
if (dynamic)
@@ -1264,7 +1266,6 @@ static void cleanup_internals(rdpsndPlug
if (!rdpsnd)
return;
- rdpsnd_terminate_thread(rdpsnd);
if (rdpsnd->pool)
StreamPool_Return(rdpsnd->pool, rdpsnd->data_in);
@@ -1328,6 +1329,7 @@ static void free_internals(rdpsndPlugin*
if (!rdpsnd)
return;
+ rdpsnd_terminate_thread(rdpsnd);
freerdp_dsp_context_free(rdpsnd->dsp_context);
StreamPool_Free(rdpsnd->pool);
rdpsnd->pool = NULL;
@@ -1349,6 +1351,21 @@ static BOOL allocate_internals(rdpsndPlu
if (!rdpsnd->dsp_context)
return FALSE;
}
+ if (!rdpsnd->queue)
+ {
+ wObject obj = { 0 };
+
+ obj.fnObjectFree = _queue_free;
+ rdpsnd->queue = MessageQueue_New(&obj);
+ if (!rdpsnd->queue)
+ return CHANNEL_RC_NO_MEMORY;
+ }
+ if (!rdpsnd->thread)
+ {
+ rdpsnd->thread = CreateThread(NULL, 0, play_thread, rdpsnd, 0, NULL);
+ if (!rdpsnd->thread)
+ return CHANNEL_RC_INITIALIZATION_ERROR;
+ }
return TRUE;
}
@@ -1388,23 +1405,12 @@ static DWORD WINAPI play_thread(LPVOID a
static UINT rdpsnd_virtual_channel_event_initialized(rdpsndPlugin* rdpsnd)
{
- wObject obj = { 0 };
-
if (!rdpsnd)
return ERROR_INVALID_PARAMETER;
- obj.fnObjectFree = _queue_free;
- rdpsnd->queue = MessageQueue_New(&obj);
- if (!rdpsnd->queue)
- return CHANNEL_RC_NO_MEMORY;
-
if (!allocate_internals(rdpsnd))
return CHANNEL_RC_NO_MEMORY;
- rdpsnd->thread = CreateThread(NULL, 0, play_thread, rdpsnd, 0, NULL);
- if (!rdpsnd->thread)
- return CHANNEL_RC_INITIALIZATION_ERROR;
-
return CHANNEL_RC_OK;
}
@@ -1412,8 +1418,6 @@ void rdpsnd_virtual_channel_event_termin
{
if (rdpsnd)
{
- rdpsnd_terminate_thread(rdpsnd);
-
free_internals(rdpsnd);
audio_formats_free(rdpsnd->fixed_format, 1);
free(rdpsnd->subsystem);
@@ -1602,13 +1606,13 @@ static UINT rdpsnd_on_close(IWTSVirtualC
cleanup_internals(rdpsnd);
+ free_internals(rdpsnd);
if (rdpsnd->device)
{
IFCALL(rdpsnd->device->Free, rdpsnd->device);
rdpsnd->device = NULL;
}
- free_internals(rdpsnd);
free(pChannelCallback);
return CHANNEL_RC_OK;
}
+1 -1
View File
@@ -1,3 +1,3 @@
# Locally calculated
sha256 f7cc2bf43b9778e9079cd229ea8e37fc1843eb1c11a8e4e003034af71858ce6a freerdp-2.11.7-18-g0ee17e2f8e49d56ab5b90d5160fa8f87ffc445e0-git4.tar.gz
sha256 8a7c953ece217aa4fa22c4a21ab2bc4c9093fc79aa67d3e1273c140d140203f7 freerdp-2.11.8-git4.tar.gz
sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 LICENSE
+54 -2
View File
@@ -4,8 +4,8 @@
#
################################################################################
# Latest, and probably last, commit on the stable-2.0 branch
FREERDP_VERSION = 2.11.7-18-g0ee17e2f8e49d56ab5b90d5160fa8f87ffc445e0
# Latest, and probably last, release on the stable-2.0 branch
FREERDP_VERSION = 2.11.8
FREERDP_SITE = https://github.com/FreeRDP/FreeRDP
FREERDP_SITE_METHOD = git
FREERDP_DEPENDENCIES = libglib2 openssl zlib
@@ -13,6 +13,58 @@ FREERDP_LICENSE = Apache-2.0
FREERDP_LICENSE_FILES = LICENSE
FREERDP_CPE_ID_VENDOR = freerdp
# Introduced in v3.0.0-beta1
# https://security-tracker.debian.org/tracker/CVE-2024-32662
FREERDP_IGNORE_CVES += CVE-2024-32662
# Windows only
# https://security-tracker.debian.org/tracker/CVE-2025-68118
FREERDP_IGNORE_CVES += CVE-2025-68118
# 0009-fix-missing-check-in-rdp-write-logon-info-v1.patch
FREERDP_IGNORE_CVES += CVE-2024-32661
# 0010-fix-decoder-length-checks.patch
FREERDP_IGNORE_CVES += CVE-2026-23530
# 0011-fix-missing-length-checks.patch
# 0012-check-clear-decomress-glyphData.patch
FREERDP_IGNORE_CVES += CVE-2026-23531
# 0013-properly-clamp-SurfaceToSurface.patch
FREERDP_IGNORE_CVES += CVE-2026-23532
# 0014-fix-clear-resize-buffer-checks.patch
FREERDP_IGNORE_CVES += CVE-2026-23533
# 0015-fix-off-by-one-length-check.patch
FREERDP_IGNORE_CVES += CVE-2026-23534
# 0016-fix-missing-NULL-check.patch
FREERDP_IGNORE_CVES += CVE-2026-23948
# 0017-do-not-free-MsConfig-on-failure.patch
FREERDP_IGNORE_CVES += CVE-2026-24675
# 0018-reset-audin-format.patch
FREERDP_IGNORE_CVES += CVE-2026-24676
# 0019-ensure-InterfaceNumber-is-within-range.patch
FREERDP_IGNORE_CVES += CVE-2026-24679
# 0020-cancel-all-usb-transfers-on-channel-close.patch
FREERDP_IGNORE_CVES += CVE-2026-24681
# 0021-fix-audin-server-recv-formats-cleanup.patch
FREERDP_IGNORE_CVES += CVE-2026-24682
# 0022-lock-context-when-updating-listener.patch
FREERDP_IGNORE_CVES += CVE-2026-24683
# 0023-terminate-thread-before-free.patch
# 0024-only-clean-up-thread-before-free.patch
FREERDP_IGNORE_CVES += CVE-2026-24684
FREERDP_INSTALL_STAGING = YES
FREERDP_CONF_OPTS = \
+1 -1
View File
@@ -1,3 +1,3 @@
# Locally calculated
sha256 ebb66ed92018b79cec88efb60e35a596925eef46502cf03d6ff0aea636ee7461 gpsd-3.27.2.tar.gz
sha256 409873f5048462ef1ac413a51ab35caa8b50b31be62b3347bee1cc2994e7c649 gpsd-3.27.5.tar.gz
sha256 fdf339997bbca9eaf507476b82fbcac608fc39a3d89b86b51e16db4c9f933716 COPYING
+1 -1
View File
@@ -4,7 +4,7 @@
#
################################################################################
GPSD_VERSION = 3.27.2
GPSD_VERSION = 3.27.5
GPSD_SITE = http://download-mirror.savannah.gnu.org/releases/gpsd
GPSD_LICENSE = BSD-2-Clause
GPSD_LICENSE_FILES = COPYING
@@ -0,0 +1,55 @@
# HG changeset patch
# User Bob Friesenhahn <bfriesen@GraphicsMagick.org>
# Date 1734634653 21600
# Thu Dec 19 12:57:33 2024 -0600
# Node ID 883ebf8cae6dfa5873d975fe3476b1a188ef3f9f
# Parent cf7cd5ebabb0ca40204de7539f4fb9ae02121958
ReadWPGImage(): Assure that palette buffer is allocated and the current size.
CVE: CVE-2025-27796
Upstream: https://foss.heptapod.net/graphicsmagick/graphicsmagick/-/commit/883ebf8cae6dfa5873d975fe3476b1a188ef3f9f
[thomas: remove changelog and binary]
Signed-off-by: Thomas Perale <thomas.perale@mind.be>
diff --git a/coders/wpg.c b/coders/wpg.c
--- a/coders/wpg.c
+++ b/coders/wpg.c
@@ -1704,28 +1704,23 @@
ThrowReaderException(CorruptImageError,InvalidColormapIndex,image);
}
- if(pPalette!=NULL &&
- PaletteAllocBytes < 4*(WPG_Palette.StartIndex+WPG_Palette.NumOfEntries))
- {
- MagickFreeResourceLimitedMemory(pPalette);
- PaletteAllocBytes = 0;
- }
+ /* Assure that buffer is allocated and the current size */
+ if (PaletteAllocBytes != Max(4*(WPG_Palette.StartIndex+WPG_Palette.NumOfEntries),4*256))
+ {
+ PaletteAllocBytes = Max(4*(WPG_Palette.StartIndex+WPG_Palette.NumOfEntries),4*256);
+ MagickReallocateResourceLimitedMemory(unsigned char *,pPalette,PaletteAllocBytes);
+ }
if(pPalette==NULL)
- {
- PaletteItems = WPG_Palette.NumOfEntries;
- PaletteAllocBytes = 4*(WPG_Palette.StartIndex+WPG_Palette.NumOfEntries);
- if(PaletteAllocBytes < 4*256) PaletteAllocBytes = 4*256;
- pPalette = MagickAllocateResourceLimitedMemory(unsigned char *,(size_t)PaletteAllocBytes);
- if(pPalette==NULL)
- ThrowReaderException(ResourceLimitError,MemoryAllocationFailed,image);
- for(i=0; i<=255; i++)
+ ThrowReaderException(ResourceLimitError,MemoryAllocationFailed,image);
+
+ PaletteItems = WPG_Palette.NumOfEntries;
+ for(i=0; i<=255; i++)
{
pPalette[4*i] = WPG1_Palette[i].Red;
pPalette[4*i+1] = WPG1_Palette[i].Green;
pPalette[4*i+2] = WPG1_Palette[i].Blue;
pPalette[4*i+3] = OpaqueOpacity;
}
- }
if(ReadBlob(image,(size_t) PaletteItems*4,pPalette+((size_t)4*WPG_Palette.StartIndex)) != (size_t) PaletteItems*4)
{
MagickFreeResourceLimitedMemory(pPalette);
+12
View File
@@ -11,12 +11,24 @@ GRAPHICSMAGICK_LICENSE = MIT
GRAPHICSMAGICK_LICENSE_FILES = Copyright.txt
GRAPHICSMAGICK_CPE_ID_VENDOR = graphicsmagick
# Wrong NVD annotations
# Fixed in version 1.2.3
GRAPHICSMAGICK_IGNORE_CVES += CVE-2008-6621
# Wrong NVD annotations englobbing all versions
# Wrong patch for CVE-2006-5456 later updated
# https://bugzilla.redhat.com/show_bug.cgi?id=210921#c5
GRAPHICSMAGICK_IGNORE_CVES += CVE-2007-0770
# 0001-ReadJXLImage-Apply-image-dimension-resource-limits.patch
GRAPHICSMAGICK_IGNORE_CVES += CVE-2025-27795
# 0002-ReadJXLImage-pixel_format-num_channels-needs-to-be.patch
GRAPHICSMAGICK_IGNORE_CVES += CVE-2025-32460
# 0003-Assure-that-palette-buffer-is-allocated-and-the-current-size.patch
GRAPHICSMAGICK_IGNORE_CVES += CVE-2025-27796
GRAPHICSMAGICK_INSTALL_STAGING = YES
GRAPHICSMAGICK_CONFIG_SCRIPTS = GraphicsMagick-config GraphicsMagickWand-config
@@ -0,0 +1,25 @@
From 2b30c36e6ab5b21defb76ec6458ab7687984484c Mon Sep 17 00:00:00 2001
From: Jan Klemkow <j.klemkow@wemelug.de>
Date: Thu, 17 Apr 2025 19:02:16 +0200
Subject: [PATCH] Fix Buffer Overflow #97
CVE: CVE-2025-50681
Upstream: https://github.com/younix/igmpproxy/commit/2b30c36e6ab5b21defb76ec6458ab7687984484c
Signed-off-by: Thomas Perale <thomas.perale@mind.be>
---
src/igmp.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/igmp.c b/src/igmp.c
index a80c4e58..838694ce 100644
--- a/src/igmp.c
+++ b/src/igmp.c
@@ -94,7 +94,7 @@ static const char *igmpPacketKind(unsigned int type, unsigned int code) {
case IGMP_V2_LEAVE_GROUP: return "Leave message ";
default:
- sprintf(unknown, "unk: 0x%02x/0x%02x ", type, code);
+ snprintf(unknown, sizeof unknown, "unk: 0x%02x/0x%02x ", type, code);
return unknown;
}
}
+3
View File
@@ -13,4 +13,7 @@ IGMPPROXY_LICENSE_FILES = COPYING GPL.txt Stanford.txt
IGMPPROXY_CPE_ID_VENDOR = pali
# 0001-Fix-Buffer-Overflow.patch
IGMPPROXY_IGNORE_CVES += CVE-2025-50681
$(eval $(autotools-package))
+2 -2
View File
@@ -1,3 +1,3 @@
# Locally computed
sha256 521fa7a8c0f664a3f5cf7437cbcc219f12bd6d5fe0c1fb014f212fa145076e60 imagemagick-7.1.2-12.tar.gz
sha256 a556c5292c87c9a6ac795c80669b0c3660f9f729de8c476bf2b10f83ab1b34ec LICENSE
sha256 bf646e7fffdf50b7d886eec6bbe51c3ced1c4d68fbabfcc534e014575359fe7f imagemagick-7.1.2-15.tar.gz
sha256 131447ad0099069beaa32acf1700716eea294a5bdf936d8211d7026b1849e5d4 LICENSE
+1 -1
View File
@@ -4,7 +4,7 @@
#
################################################################################
IMAGEMAGICK_VERSION = 7.1.2-12
IMAGEMAGICK_VERSION = 7.1.2-15
IMAGEMAGICK_SITE = $(call github,ImageMagick,ImageMagick,$(IMAGEMAGICK_VERSION))
IMAGEMAGICK_LICENSE = Apache-2.0
IMAGEMAGICK_LICENSE_FILES = LICENSE
+2 -2
View File
@@ -1,5 +1,5 @@
# Locally calculated after checking pgp signature
# https://www.libssh.org/files/0.11/libssh-0.11.3.tar.xz.asc
# https://www.libssh.org/files/0.11/libssh-0.11.4.tar.xz.asc
# with key 88A228D89B07C2C77D0C780903D5DF8CFDD3E8E7
sha256 7d8a1361bb094ec3f511964e78a5a4dba689b5986e112afabe4f4d0d6c6125c3 libssh-0.11.3.tar.xz
sha256 002ac320e3d66c9e100ec6576e3e84aa0c48949efde3bf5b40a2802992297701 libssh-0.11.4.tar.xz
sha256 1656186e951db1c010a8485481fa94587f7e53a26d24976bef97945ad0c4df5a COPYING
+1 -1
View File
@@ -5,7 +5,7 @@
################################################################################
LIBSSH_VERSION_MAJOR = 0.11
LIBSSH_VERSION = $(LIBSSH_VERSION_MAJOR).3
LIBSSH_VERSION = $(LIBSSH_VERSION_MAJOR).4
LIBSSH_SOURCE = libssh-$(LIBSSH_VERSION).tar.xz
LIBSSH_SITE = https://www.libssh.org/files/$(LIBSSH_VERSION_MAJOR)
LIBSSH_LICENSE = LGPL-2.1
+2 -2
View File
@@ -1,6 +1,6 @@
# Locally calculated after checking pgp signature
# https://ftp.gnu.org/gnu/libunistring/libunistring-1.4.1.tar.xz.sig
sha256 67d88430892527861903788868c77802a217b0959990f7449f2976126a307763 libunistring-1.4.1.tar.xz
# https://ftp.gnu.org/gnu/libunistring/libunistring-1.4.2.tar.xz.sig
sha256 5b46e74377ed7409c5b75e7a96f95377b095623b689d8522620927964a41499c libunistring-1.4.2.tar.xz
# Locally calculated
sha256 3972dc9744f6499f0f9b2dbf76696f2ae7ad8af9b23dde66d6af86c9dfb36986 COPYING
sha256 a853c2ffec17057872340eee242ae4d96cbf2b520ae27d903e1b2fef1a5f9d1c COPYING.LIB
+1 -1
View File
@@ -4,7 +4,7 @@
#
################################################################################
LIBUNISTRING_VERSION = 1.4.1
LIBUNISTRING_VERSION = 1.4.2
LIBUNISTRING_SITE = $(BR2_GNU_MIRROR)/libunistring
LIBUNISTRING_SOURCE = libunistring-$(LIBUNISTRING_VERSION).tar.xz
LIBUNISTRING_INSTALL_STAGING = YES
+4 -2
View File
@@ -89,12 +89,14 @@ comment "qemu needs a toolchain with gcc >= 8"
config BR2_PACKAGE_LIBVIRT_LXC
bool "lxc"
depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 # lxc
depends on !BR2_TOOLCHAIN_USES_UCLIBC # lxc
select BR2_PACKAGE_LXC
help
Linux Container support
comment "lxc needs a toolchain w/ gcc >= 4.7"
depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_4_7
comment "lxc needs a glibc or musl toolchain w/ gcc >= 4.7"
depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 \
|| BR2_TOOLCHAIN_USES_UCLIBC
endif
+2 -2
View File
@@ -469,8 +469,8 @@ config BR2_DEFAULT_KERNEL_HEADERS
default "6.1.164" if BR2_KERNEL_HEADERS_6_1
default "6.6.127" if BR2_KERNEL_HEADERS_6_6
default "6.12.74" if BR2_KERNEL_HEADERS_6_12
default "6.18.13" if BR2_KERNEL_HEADERS_6_18
default "6.19.3" if BR2_KERNEL_HEADERS_6_19
default "6.18.15" if BR2_KERNEL_HEADERS_6_18
default "6.19.5" if BR2_KERNEL_HEADERS_6_19
default BR2_DEFAULT_KERNEL_VERSION if BR2_KERNEL_HEADERS_VERSION
default "custom" if BR2_KERNEL_HEADERS_CUSTOM_TARBALL
default BR2_KERNEL_HEADERS_CUSTOM_REPO_VERSION \
+1 -1
View File
@@ -12,7 +12,7 @@ endif
# Not possible to directly refer to mesa3d variables, because of
# first/second expansion trickery...
MESA3D_HEADERS_VERSION = 26.0.0
MESA3D_HEADERS_VERSION = 26.0.1
MESA3D_HEADERS_SOURCE = mesa-$(MESA3D_HEADERS_VERSION).tar.xz
MESA3D_HEADERS_SITE = https://archive.mesa3d.org
MESA3D_HEADERS_DL_SUBDIR = mesa3d
+3 -3
View File
@@ -1,6 +1,6 @@
# From https://lists.freedesktop.org/archives/mesa-announce/2026-February/000838.html
sha256 2a44e98e64d5c36cec64633de2d0ec7eff64703ee25b35364ba8fcaa84f33f72 mesa-26.0.0.tar.xz
sha512 d39d190d0a17306f0aa69033e38dd8cf458dbf8da483b768841e2dc681dd670735999b212fbe0b29be839702a20750c87d6587bd925dca10693950830a17cd55 mesa-26.0.0.tar.xz
# From https://lists.freedesktop.org/archives/mesa-announce/2026-February/000840.html
sha256 bb5104f9f9a46c9b5175c24e601e0ef1ab44ce2d0fdbe81548b59adc8b385dcc mesa-26.0.1.tar.xz
sha512 d47072257035acfa8a5594c0cda831b4e5178169dea8a06c6657268a441e32271f8798486e837cea23f35ce3f0b4b9520a4ea4ed26b0e1267b02da4c649bc9f9 mesa-26.0.1.tar.xz
# License
sha256 0d1a0472ecc81830e75c20d59b0ea02841e3db21255e0ebad97ab682c54d6615 docs/license.rst
sha256 323c587d0ccf10e376f8bf9a7f31fb4ca6078105194b42e0b1e0ee2bc9bde71f licenses/MIT
+1 -1
View File
@@ -5,7 +5,7 @@
################################################################################
# When updating the version, please also update mesa3d-headers
MESA3D_VERSION = 26.0.0
MESA3D_VERSION = 26.0.1
MESA3D_SOURCE = mesa-$(MESA3D_VERSION).tar.xz
MESA3D_SITE = https://archive.mesa3d.org
MESA3D_LICENSE = MIT, SGI, Khronos
@@ -0,0 +1,53 @@
From d4743b6092d513321c23c6f7fe5cff87cde043c1 Mon Sep 17 00:00:00 2001
From: Robin Watts <Robin.Watts@artifex.com>
Date: Mon, 12 Jan 2026 19:08:56 +0000
Subject: Bug 709029: Fix incorrect error-case free of pixmap.
Don't free a pixmap we don't own!
CVE: CVE-2026-25556
Upstream: https://cgit.ghostscript.com/cgi-bin/cgit.cgi/mupdf.git/commit/?id=d4743b6092d513321c23c6f7fe5cff87cde043c1
Signed-off-by: Thomas Perale <thomas.perale@mind.be>
---
source/fitz/util.c | 15 +++++++++------
1 file changed, 9 insertions(+), 6 deletions(-)
diff --git a/source/fitz/util.c b/source/fitz/util.c
index 7710124cc..90226a5c1 100644
--- a/source/fitz/util.c
+++ b/source/fitz/util.c
@@ -119,7 +119,15 @@ fz_new_pixmap_from_display_list_with_separations(fz_context *ctx, fz_display_lis
else
fz_clear_pixmap_with_value(ctx, pix, 0xFF);
- return fz_fill_pixmap_from_display_list(ctx, list, ctm, pix);
+ fz_try(ctx)
+ fz_fill_pixmap_from_display_list(ctx, list, ctm, pix);
+ fz_catch(ctx)
+ {
+ fz_drop_pixmap(ctx, pix);
+ fz_rethrow(ctx);
+ }
+
+ return pix;
}
fz_pixmap *
@@ -136,14 +144,9 @@ fz_fill_pixmap_from_display_list(fz_context *ctx, fz_display_list *list, fz_matr
fz_close_device(ctx, dev);
}
fz_always(ctx)
- {
fz_drop_device(ctx, dev);
- }
fz_catch(ctx)
- {
- fz_drop_pixmap(ctx, pix);
fz_rethrow(ctx);
- }
return pix;
}
--
cgit v1.2.3
+3
View File
@@ -27,6 +27,9 @@ MUPDF_IGNORE_CVES = \
CVE-2024-24258 \
CVE-2024-24259
# 0001-Fix-incorrect-error-case-free-of-pixmap.patch
MUPDF_IGNORE_CVES += CVE-2026-25556
# mupdf doesn't use CFLAGS and LIBS but XCFLAGS and XLIBS instead.
# with USE_SYSTEM_LIBS it will try to use system libraries instead of the bundled ones.
MUPDF_MAKE_ENV = $(TARGET_MAKE_ENV) $(TARGET_CONFIGURE_OPTS) \
@@ -0,0 +1,78 @@
From a742647efd215b682e4cd26b15ac3e580c10ef9f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Alexis=20Lothor=C3=A9?= <alexis.lothore@bootlin.com>
Date: Mon, 16 Feb 2026 13:50:48 +0100
Subject: [PATCH] Set project as C project in CMakeLists.txt
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
The openscap tool has been recently integrated in the buildroot build
system ([1]), which makes the openscap tool buildable for a wide variety
or architectures/OSes, with a wide variety of _compilers_. And so when
such compilers are not supporting C++ projects (as it is the case with a
default buildroot toolchain), the build breaks on the following error
(see [2] for an example):
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - failed
-- Check for working CXX compiler: /bin/false
-- Check for working CXX compiler: /bin/false - broken
CMake Error at /usr/share/cmake/Modules/CMakeTestCXXCompiler.cmake:73 (message):
The C++ compiler
"/bin/false"
is not able to compile a simple test program.
It fails with the following output:
Change Dir: '/home/autobuild/autobuild/instance-6/output-1/build/openscap-1.3.12/buildroot-build/CMakeFiles/CMakeScratch/TryCompile-tUydqI'
Run Build Command(s): /usr/bin/cmake -E env VERBOSE=1 /usr/bin/make -f Makefile cmTC_1834b/fast
make[1]: Entering directory '/home/autobuild/autobuild/instance-6/output-1/build/openscap-1.3.12/buildroot-build/CMakeFiles/CMakeScratch/TryCompile-tUydqI'
/usr/bin/make -f CMakeFiles/cmTC_1834b.dir/build.make CMakeFiles/cmTC_1834b.dir/build
make[2]: Entering directory '/home/autobuild/autobuild/instance-6/output-1/build/openscap-1.3.12/buildroot-build/CMakeFiles/CMakeScratch/TryCompile-tUydqI'
Building CXX object CMakeFiles/cmTC_1834b.dir/testCXXCompiler.cxx.o
/bin/false -o CMakeFiles/cmTC_1834b.dir/testCXXCompiler.cxx.o -c /home/autobuild/autobuild/instance-6/output-1/build/openscap-1.3.12/buildroot-build/CMakeFiles/CMakeScratch/TryCompile-tUydqI/testCXXCompiler.cxx
make[2]: *** [CMakeFiles/cmTC_1834b.dir/build.make:81: CMakeFiles/cmTC_1834b.dir/testCXXCompiler.cxx.o] Error 1
make[2]: Leaving directory '/home/autobuild/autobuild/instance-6/output-1/build/openscap-1.3.12/buildroot-build/CMakeFiles/CMakeScratch/TryCompile-tUydqI'
make[1]: *** [Makefile:134: cmTC_1834b/fast] Error 2
make[1]: Leaving directory '/home/autobuild/autobuild/instance-6/output-1/build/openscap-1.3.12/buildroot-build/CMakeFiles/CMakeScratch/TryCompile-tUydqI'
CMake will not be able to correctly generate this project.
Call Stack (most recent call first):
CMakeLists.txt:11 (project)
openscap does not have any C++ code to build, so restricting builds to
toolchains supporting C++ is overconstraining, the configuration step
should rather not try to check C++ support.
Enforce the project as a C project in CMakeLists.txt to make sure not to
test C++ features on the used toolchain.
[1] https://buildroot.org/
[2] https://autobuild.buildroot.org/results/1fe550ffa79f0a083a450ae03fe067a8ab7336be/build-end.log
Upstream: https://github.com/OpenSCAP/openscap/pull/2312
[patch slightly adapted to be applicable on v1.3.12]
Signed-off-by: Alexis Lothoré <alexis.lothore@bootlin.com>
---
CMakeLists.txt | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index cb13debb47cf..05b054327951 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -8,7 +8,7 @@ if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
"MinSizeRel" "RelWithDebInfo")
endif()
-project("openscap")
+project("openscap" C)
set(OPENSCAP_VERSION_MAJOR "1")
set(OPENSCAP_VERSION_MINOR "3")
set(OPENSCAP_VERSION_PATCH "12")
--
2.53.0
@@ -0,0 +1,33 @@
From 9c986353e420ead6e706262bf204d6e03322c300 Mon Sep 17 00:00:00 2001
From: Andreas Gruenbacher <agruen@gnu.org>
Date: Fri, 17 Aug 2018 13:35:40 +0200
Subject: Fix swapping fake lines in pch_swap
* src/pch.c (pch_swap): Fix swapping p_bfake and p_efake when there is a
blank line in the middle of a context-diff hunk: that empty line stays
in the middle of the hunk and isn't swapped.
Fixes: https://savannah.gnu.org/bugs/index.php?53133
CVE: CVE-2018-6952
Upstream: https://cgit.git.savannah.gnu.org/cgit/patch.git/commit/?id=9c986353e420ead6e706262bf204d6e03322c300
Signed-off-by: Thomas Perale <thomas.perale@mind.be>
---
src/pch.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/pch.c b/src/pch.c
index e92bc64..a500ad9 100644
--- a/src/pch.c
+++ b/src/pch.c
@@ -2115,7 +2115,7 @@ pch_swap (void)
}
if (p_efake >= 0) { /* fix non-freeable ptr range */
if (p_efake <= i)
- n = p_end - i + 1;
+ n = p_end - p_ptrn_lines;
else
n = -i;
p_efake += n;
--
cgit v1.2.3
@@ -0,0 +1,30 @@
From 15b158db3ae11cb835f2eb8d2eb48e09d1a4af48 Mon Sep 17 00:00:00 2001
From: Andreas Gruenbacher <agruen@gnu.org>
Date: Mon, 15 Jul 2019 19:10:02 +0200
Subject: Avoid invalid memory access in context format diffs
* src/pch.c (another_hunk): Avoid invalid memory access in context format
diffs.
CVE: CVE-2019-20633
Upstream: https://cgit.git.savannah.gnu.org/cgit/patch.git/commit/?id=15b158db3ae11cb835f2eb8d2eb48e09d1a4af48
Signed-off-by: Thomas Perale <thomas.perale@mind.be>
---
src/pch.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/pch.c b/src/pch.c
index a500ad9..cb54e03 100644
--- a/src/pch.c
+++ b/src/pch.c
@@ -1327,6 +1327,7 @@ another_hunk (enum diff difftype, bool rev)
ptrn_prefix_context = context;
ptrn_suffix_context = context;
if (repl_beginning
+ || p_end <= 0
|| (p_end
!= p_ptrn_lines + 1 + (p_Char[p_end - 1] == '\n')))
{
--
cgit v1.2.3
+6
View File
@@ -23,6 +23,12 @@ PATCH_IGNORE_CVES += CVE-2018-20969 CVE-2019-13638
# 0005-Don-t-follow-symlinks-unless--follow-symlinks-is-given.patch
PATCH_IGNORE_CVES += CVE-2019-13636
# 0006-Fix-swapping-fake-lines-in-pch-swap.patch
PATCH_IGNORE_CVES += CVE-2018-6952
# 0007-Avoid-invalid-memory-access-in-context-format-diffs.patch
PATCH_IGNORE_CVES += CVE-2019-20633
ifeq ($(BR2_PACKAGE_ATTR),y)
PATCH_CONF_OPTS += --enable-xattr
PATCH_DEPENDENCIES += attr
+1 -2
View File
@@ -77,9 +77,8 @@ define POCO_CONFIGURE_CMDS
--no-samples)
endef
# Use $(MAKE1) to avoid failures on heavilly parallel machines (e.g. -j25)
define POCO_BUILD_CMDS
$(TARGET_MAKE_ENV) $(MAKE1) POCO_TARGET_OSARCH=$(ARCH) CROSS_COMPILE=$(TARGET_CROSS) \
$(TARGET_MAKE_ENV) $(MAKE) POCO_TARGET_OSARCH=$(ARCH) CROSS_COMPILE=$(TARGET_CROSS) \
POCO_MYSQL_INCLUDE=$(STAGING_DIR)/usr/include/mysql \
POCO_MYSQL_LIB=$(STAGING_DIR)/usr/lib/mysql \
POCO_PGSQL_INCLUDE=$(STAGING_DIR)/usr/include/postgresql \
@@ -1,5 +1,5 @@
# md5, sha256 from https://pypi.org/pypi/python_multipart/json
md5 fd24645f1b328d5d328e8b10bc2c596c python_multipart-0.0.21.tar.gz
sha256 7137ebd4d3bbf70ea1622998f902b97a29434a9e8dc40eb203bbcf7c2a2cba92 python_multipart-0.0.21.tar.gz
md5 0debb97a2b5d68f8dd5119bd200f4010 python_multipart-0.0.22.tar.gz
sha256 7340bef99a7e0032613f56dc36027b959fd3b30a787ed62d310e951f7c3a3a58 python_multipart-0.0.22.tar.gz
# Locally computed sha256 checksums
sha256 a8e833176cd617daf00b9d6d39fa15ca8edebc6d1643079cd2f4893c0c289be2 LICENSE.txt
+2 -2
View File
@@ -4,9 +4,9 @@
#
################################################################################
PYTHON_MULTIPART_VERSION = 0.0.21
PYTHON_MULTIPART_VERSION = 0.0.22
PYTHON_MULTIPART_SOURCE = python_multipart-$(PYTHON_MULTIPART_VERSION).tar.gz
PYTHON_MULTIPART_SITE = https://files.pythonhosted.org/packages/78/96/804520d0850c7db98e5ccb70282e29208723f0964e88ffd9d0da2f52ea09
PYTHON_MULTIPART_SITE = https://files.pythonhosted.org/packages/94/01/979e98d542a70714b0cb2b6728ed0b7c46792b695e3eaec3e20711271ca3
PYTHON_MULTIPART_SETUP_TYPE = hatch
PYTHON_MULTIPART_LICENSE = Apache-2.0
PYTHON_MULTIPART_LICENSE_FILES = LICENSE.txt
@@ -0,0 +1,31 @@
From 25e47f8932f0401392ef1d3c8cc9ed5595bc894a Mon Sep 17 00:00:00 2001
From: "Christian W. Zuckschwerdt" <christian@zuckschwerdt.org>
Date: Wed, 8 Oct 2025 10:11:15 +0200
Subject: [PATCH] Fix overflow in rfraw test data parsing (closes #3375)
CVE: CVE-2025-34450
Upstream: https://github.com/merbanan/rtl_433/commit/25e47f8932f0401392ef1d3c8cc9ed5595bc894a
Signed-off-by: Thomas Perale <thomas.perale@mind.be>
---
src/rfraw.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/src/rfraw.c b/src/rfraw.c
index 9f4c9780c..71a1c365d 100644
--- a/src/rfraw.c
+++ b/src/rfraw.c
@@ -159,9 +159,14 @@ static bool parse_rfraw(pulse_data_t *data, char const **p)
data->num_pulses++;
pulse_needed = true;
}
+ // abort reading if the pulse data array is full
+ if (data->num_pulses >= PD_MAX_PULSES) {
+ break;
+ }
}
//data->gap[data->num_pulses - 1] = 3000; // TODO: extend last gap?
+ // expand reapeats as long as the pulse data array has enough space
unsigned pkt_pulses = data->num_pulses - prev_pulses;
for (int i = 1; i < repeats && data->num_pulses + pkt_pulses <= PD_MAX_PULSES; ++i) {
memcpy(&data->pulse[data->num_pulses], &data->pulse[prev_pulses], pkt_pulses * sizeof (*data->pulse));
+3
View File
@@ -10,6 +10,9 @@ RTL_433_LICENSE = GPL-2.0+
RTL_433_LICENSE_FILES = COPYING
RTL_433_CPE_ID_VALID = YES
# 0002-Fix-overflow-in-rfraw-test-data-parsing.patch
RTL_433_IGNORE_CVES += CVE-2025-34450
# Force Release build to remove ASAN.
RTL_433_CONF_OPTS = \
-DCMAKE_BUILD_TYPE=Release \
+4 -2
View File
@@ -6,7 +6,7 @@
RUBY_VERSION_MAJOR = 4.0
RUBY_VERSION = $(RUBY_VERSION_MAJOR).1
RUBY_VERSION_EXT = 4.0.1
RUBY_VERSION_EXT = 4.0.0
RUBY_SITE = http://cache.ruby-lang.org/pub/ruby/$(RUBY_VERSION_MAJOR)
RUBY_SOURCE = ruby-$(RUBY_VERSION).tar.xz
@@ -26,10 +26,12 @@ RUBY_CONF_OPTS = \
--disable-install-doc \
--disable-rpath \
--disable-rubygems \
--disable-yjit
--disable-yjit \
--disable-zjit
HOST_RUBY_CONF_OPTS = \
--disable-install-doc \
--disable-yjit \
--disable-zjit \
--with-out-ext=curses,readline \
--without-gmp
@@ -0,0 +1,47 @@
From f59a0c8c1b5cf19cd0ed7f9bfb3a1e85f54113d0 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Wed, 13 Aug 2025 20:23:48 -0700
Subject: [PATCH] vsnprintf_s: Increase Buffer Size by 1
It is a buffer overflow warning that GCC 15.2 is catching.
The issue is that it's trying to write to `buf[len++]` when len could
potentially be 31, which would write to buf[31] in a buffer of size 32
(valid indices 0-31), but the len++ post-increment means it could
theoretically write beyond the buffer bounds.
Fixes
../../sources/safec-3.9.1/src/str/vsnprintf_s.c: In function 'safec_ftoa.isra':
../../sources/safec-3.9.1/src/str/vsnprintf_s.c:523:24: error: writing 32 bytes into a region of size 31 [-Werror=stringop-overflow=]
523 | buf[len++] = '0';
| ~~~~~~~~~~~^~~~~
../../sources/safec-3.9.1/src/str/vsnprintf_s.c:394:10: note: at offset [1, 32] into destination object 'buf' of size 32
394 | char buf[PRINTF_FTOA_BUFFER_SIZE];
| ^~~
cc1: all warnings being treated as errors
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Upstream: https://github.com/rurban/safeclib/commit/f59a0c8c1b5cf19cd0ed7f9bfb3a1e85f54113d0
Signed-off-by: Bernd Kuhls <bernd@kuhls.net>
---
src/str/vsnprintf_s.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/str/vsnprintf_s.c b/src/str/vsnprintf_s.c
index fa53ab42..0b62c3cb 100644
--- a/src/str/vsnprintf_s.c
+++ b/src/str/vsnprintf_s.c
@@ -391,7 +391,7 @@ static size_t safec_ftoa(out_fct_type out, const char *funcname, char *buffer,
size_t idx, size_t maxlen, double value,
unsigned int prec, unsigned int width,
unsigned int flags) {
- char buf[PRINTF_FTOA_BUFFER_SIZE];
+ char buf[PRINTF_FTOA_BUFFER_SIZE + 1]; // Add extra byte for safety
size_t len = 0U, off = 0U;
double tmp;
double diff = 0.0;
--
2.47.3
@@ -0,0 +1,50 @@
From 79e1445f4b3689526b46121b1218cab802b9ae88 Mon Sep 17 00:00:00 2001
From: Bernd Kuhls <bernd@kuhls.net>
Date: Sat, 10 Jan 2026 12:16:22 +0100
Subject: [PATCH] vsnprintf_s: Increase Buffer Size by 1
Another fix similar to https://github.com/rurban/safeclib/commit/f59a0c8c1b5cf19cd0ed7f9bfb3a1e85f54113d0
In function 'safec_ntoa_format',
inlined from 'safec_ntoa_long' at str/vsnprintf_s.c:331:12:
str/vsnprintf_s.c:256:24: error: writing 32 bytes into a region of size 0 [-Werror=stringop-overflow=]
256 | buf[len++] = '0';
| ~~~~~~~~~~~^~~~~
str/vsnprintf_s.c: In function 'safec_ntoa_long':
str/vsnprintf_s.c:312:10: note: at offset 32 into destination object 'buf' of size 32
312 | char buf[PRINTF_NTOA_BUFFER_SIZE];
| ^~~
In function 'safec_ntoa_format',
inlined from 'safec_ntoa_long' at str/vsnprintf_s.c:331:12:
str/vsnprintf_s.c:260:24: error: writing 32 bytes into a region of size 0 [-Werror=stringop-overflow=]
260 | buf[len++] = '0';
| ~~~~~~~~~~~^~~~~
str/vsnprintf_s.c: In function 'safec_ntoa_long':
str/vsnprintf_s.c:312:10: note: at offset 32 into destination object 'buf' of size 32
312 | char buf[PRINTF_NTOA_BUFFER_SIZE];
| ^~~
cc1: all warnings being treated as errors
Upstream: https://github.com/rurban/safeclib/commit/79e1445f4b3689526b46121b1218cab802b9ae88
Signed-off-by: Bernd Kuhls <bernd@kuhls.net>
---
src/str/vsnprintf_s.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/str/vsnprintf_s.c b/src/str/vsnprintf_s.c
index 0b62c3cb..cf8e866e 100644
--- a/src/str/vsnprintf_s.c
+++ b/src/str/vsnprintf_s.c
@@ -309,7 +309,7 @@ static size_t safec_ntoa_long(out_fct_type out, const char *funcname,
unsigned long value, bool negative,
unsigned long base, unsigned int prec,
unsigned int width, unsigned int flags) {
- char buf[PRINTF_NTOA_BUFFER_SIZE];
+ char buf[PRINTF_NTOA_BUFFER_SIZE + 1];
size_t len = 0U;
// no hash for 0 values
--
2.47.3
+2 -2
View File
@@ -1,4 +1,4 @@
# Locally calculated after checking pgp signature
# https://download.samba.org/pub/samba/stable/samba-4.23.5.tar.asc
sha256 593a43ddd0d57902237dfa76888f7b02cb7fc7747111369cb31e126db4836b9f samba-4.23.5.tar.gz
# https://download.samba.org/pub/samba/stable/samba-4.23.6.tar.asc
sha256 e3dabd8b5e42dc97669fa0faef032510a94e496b58f7067082e5036d88f0e702 samba-4.23.6.tar.gz
sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 COPYING
+1 -1
View File
@@ -4,7 +4,7 @@
#
################################################################################
SAMBA4_VERSION = 4.23.5
SAMBA4_VERSION = 4.23.6
SAMBA4_SITE = https://download.samba.org/pub/samba/stable
SAMBA4_SOURCE = samba-$(SAMBA4_VERSION).tar.gz
SAMBA4_INSTALL_STAGING = YES
@@ -0,0 +1,212 @@
From 0951a0681011dfca3d78c84fd7f1e19c78a4443f Mon Sep 17 00:00:00 2001
From: Amos Jeffries <yadij@users.noreply.github.com>
Date: Sat, 11 Oct 2025 16:33:02 +1300
Subject: [PATCH] Bug 3390: Proxy auth data visible to scripts (#2249)
Original changes to redact credentials from error page %R code
expansion output was incomplete. It missed the parse failure
case where ErrorState::request_hdrs raw buffer contained
sensitive information.
Also missed was the %W case where full request message headers
were generated in a mailto link. This case is especially
problematic as it may be delivered over insecure SMTP even if
the error was secured with HTTPS.
After this change:
* The HttpRequest message packing code for error pages is de-duplicated
and elides authentication headers for both %R and %W code outputs.
* The %R code output includes the CRLF request message terminator.
* The email_err_data directive causing advanced details to be added to
%W mailto links is disabled by default.
Also redact credentials from generated TRACE responses.
---------
Co-authored-by: Alex Rousskov <rousskov@measurement-factory.com>
CVE: CVE-2025-62168
Upstream: https://github.com/squid-cache/squid/commit/0951a0681011dfca3d78c84fd7f1e19c78a4443f
[thomas: remove release note, backport errorpage.cc]
Signed-off-by: Thomas Perale <thomas.perale@mind.be>
---
src/HttpRequest.cc | 6 +++---
src/HttpRequest.h | 2 +-
src/cf.data.pre | 8 +++++++-
src/client_side_reply.cc | 14 +++++++-------
src/errorpage.cc | 17 ++++-------------
src/errorpage.h | 1 -
src/tests/stub_HttpRequest.cc | 2 +-
8 files changed, 26 insertions(+), 27 deletions(-)
diff --git a/src/HttpRequest.cc b/src/HttpRequest.cc
index cd7ee71d4af..c6ed5bee45d 100644
--- a/src/HttpRequest.cc
+++ b/src/HttpRequest.cc
@@ -341,7 +341,7 @@ HttpRequest::swapOut(StoreEntry * e)
/* packs request-line and headers, appends <crlf> terminator */
void
-HttpRequest::pack(Packable * p) const
+HttpRequest::pack(Packable * const p, const bool maskSensitiveInfo) const
{
assert(p);
/* pack request-line */
@@ -349,8 +349,8 @@ HttpRequest::pack(Packable * p) const
SQUIDSBUFPRINT(method.image()), SQUIDSBUFPRINT(url.path()),
http_ver.major, http_ver.minor);
/* headers */
- header.packInto(p);
- /* trailer */
+ header.packInto(p, maskSensitiveInfo);
+ /* indicate the end of the header section */
p->append("\r\n", 2);
}
diff --git a/src/HttpRequest.h b/src/HttpRequest.h
index 6d369029322..28dc4daf99d 100644
--- a/src/HttpRequest.h
+++ b/src/HttpRequest.h
@@ -206,7 +206,7 @@ class HttpRequest: public Http::Message
void swapOut(StoreEntry * e);
- void pack(Packable * p) const;
+ void pack(Packable * p, bool maskSensitiveInfo = false) const;
static void httpRequestPack(void *obj, Packable *p);
diff --git a/src/cf.data.pre b/src/cf.data.pre
index 0a73020e111..2dce65a4d0a 100644
--- a/src/cf.data.pre
+++ b/src/cf.data.pre
@@ -8941,12 +8941,18 @@ NAME: email_err_data
COMMENT: on|off
TYPE: onoff
LOC: Config.onoff.emailErrData
-DEFAULT: on
+DEFAULT: off
DOC_START
If enabled, information about the occurred error will be
included in the mailto links of the ERR pages (if %W is set)
so that the email body contains the data.
Syntax is <A HREF="mailto:%w%W">%w</A>
+
+ SECURITY WARNING:
+ Request headers and other included facts may contain
+ sensitive information about transaction history, the
+ Squid instance, and its environment which would be
+ unavailable to error recipients otherwise.
DOC_END
NAME: deny_info
diff --git a/src/client_side_reply.cc b/src/client_side_reply.cc
index d73bf3f99f6..fc2feccf802 100644
--- a/src/client_side_reply.cc
+++ b/src/client_side_reply.cc
@@ -94,7 +94,7 @@ clientReplyContext::clientReplyContext(ClientHttpRequest *clientContext) :
void
clientReplyContext::setReplyToError(
err_type err, Http::StatusCode status, char const *uri,
- const ConnStateData *conn, HttpRequest *failedrequest, const char *unparsedrequest,
+ const ConnStateData *conn, HttpRequest *failedrequest, const char *,
#if USE_AUTH
Auth::UserRequest::Pointer auth_user_request
#else
@@ -104,9 +104,6 @@ clientReplyContext::setReplyToError(
{
auto errstate = clientBuildError(err, status, uri, conn, failedrequest, http->al);
- if (unparsedrequest)
- errstate->request_hdrs = xstrdup(unparsedrequest);
-
#if USE_AUTH
errstate->auth_user_request = auth_user_request;
#endif
@@ -995,11 +992,14 @@ clientReplyContext::traceReply()
triggerInitialStoreRead();
http->storeEntry()->releaseRequest();
http->storeEntry()->buffer();
+ MemBuf content;
+ content.init();
+ http->request->pack(&content, true /* hide authorization data */);
const HttpReplyPointer rep(new HttpReply);
- rep->setHeaders(Http::scOkay, nullptr, "text/plain", http->request->prefixLen(), 0, squid_curtime);
+ rep->setHeaders(Http::scOkay, nullptr, "message/http", content.contentSize(), 0, squid_curtime);
+ rep->body.set(SBuf(content.buf, content.size));
http->storeEntry()->replaceHttpReply(rep);
- http->request->swapOut(http->storeEntry());
- http->storeEntry()->complete();
+ http->storeEntry()->completeSuccessfully("traceReply() stored the entire response");
}
#define SENDING_BODY 0
diff --git a/src/errorpage.cc b/src/errorpage.cc
index d7a588d099f..06046de9ebb 100644
--- a/src/errorpage.cc
+++ b/src/errorpage.cc
@@ -792,7 +792,6 @@ ErrorState::~ErrorState()
{
safe_free(redirect_url);
safe_free(url);
- safe_free(request_hdrs);
wordlistDestroy(&ftp.server_msg);
safe_free(ftp.request);
safe_free(ftp.reply);
@@ -850,7 +849,7 @@ ErrorState::Dump(MemBuf * mb)
SQUIDSBUFPRINT(request->url.path()),
AnyP::ProtocolType_str[request->http_ver.protocol],
request->http_ver.major, request->http_ver.minor);
- request->header.packInto(&str);
+ request->header.packInto(&str, true /* hide authorization data */);
}
str.append("\r\n", 2);
@@ -1112,18 +1111,10 @@ ErrorState::compileLegacyCode(Build &build)
p = "[no request]";
break;
}
- if (request) {
- mb.appendf(SQUIDSBUFPH " " SQUIDSBUFPH " %s/%d.%d\n",
- SQUIDSBUFPRINT(request->method.image()),
- SQUIDSBUFPRINT(request->url.path()),
- AnyP::ProtocolType_str[request->http_ver.protocol],
- request->http_ver.major, request->http_ver.minor);
- request->header.packInto(&mb, true); //hide authorization data
- } else if (request_hdrs) {
- p = request_hdrs;
- } else {
+ else if (request)
+ request->pack(&mb, true /* hide authorization data */);
+ else
p = "[no request]";
- }
break;
case 's':
diff --git a/src/errorpage.h b/src/errorpage.h
index abca4a17d7b..297b306978d 100644
--- a/src/errorpage.h
+++ b/src/errorpage.h
@@ -194,7 +194,6 @@ class ErrorState
MemBuf *listing = nullptr;
} ftp;
- char *request_hdrs = nullptr;
char *err_msg = nullptr; /* Preformatted error message from the cache */
AccessLogEntryPointer ale; ///< transaction details (or nil)
diff --git a/src/tests/stub_HttpRequest.cc b/src/tests/stub_HttpRequest.cc
index 495597d9a1b..48a0f1ce03e 100644
--- a/src/tests/stub_HttpRequest.cc
+++ b/src/tests/stub_HttpRequest.cc
@@ -45,7 +45,7 @@ bool HttpRequest::expectingBody(const HttpRequestMethod &, int64_t &) const STUB
bool HttpRequest::bodyNibbled() const STUB_RETVAL(false)
int HttpRequest::prefixLen() const STUB_RETVAL(0)
void HttpRequest::swapOut(StoreEntry *) STUB
-void HttpRequest::pack(Packable *) const STUB
+void HttpRequest::pack(Packable *, bool) const STUB
void HttpRequest::httpRequestPack(void *, Packable *) STUB
HttpRequest * HttpRequest::FromUrl(const SBuf &, const MasterXaction::Pointer &, const HttpRequestMethod &) STUB_RETVAL(nullptr)
HttpRequest * HttpRequest::FromUrlXXX(const char *, const MasterXaction::Pointer &, const HttpRequestMethod &) STUB_RETVAL(nullptr)
+3
View File
@@ -15,6 +15,9 @@ SQUID_SELINUX_MODULES = apache squid
# 0001-Fix-ASN-1-encoding-of-long-SNMP-OIDs.patch
SQUID_IGNORE_CVES += CVE-2025-59362
# 0002-Proxy-auth-data-visible-to-scripts.patch
SQUID_IGNORE_CVES += CVE-2025-62168
SQUID_DEPENDENCIES = libcap host-libcap libtool libxml2 host-pkgconf \
$(if $(BR2_PACKAGE_LIBNETFILTER_CONNTRACK),libnetfilter_conntrack)
SQUID_CONF_ENV = \
@@ -0,0 +1,41 @@
From 3c0fde94981b025271ffa1788ae425257841bf5a Mon Sep 17 00:00:00 2001
From: rofl0r <rofl0r@users.noreply.github.com>
Date: Fri, 17 Oct 2025 22:57:39 +0000
Subject: [PATCH] reqs: fix integer overflow in port number processing
closes #586
CVE: CVE-2025-63938
Upstream: https://github.com/tinyproxy/tinyproxy/commit/3c0fde94981b025271ffa1788ae425257841bf5a
Signed-off-by: Thomas Perale <thomas.perale@mind.be>
---
src/reqs.c | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/src/reqs.c b/src/reqs.c
index 52135a03..a562c68a 100644
--- a/src/reqs.c
+++ b/src/reqs.c
@@ -174,7 +174,7 @@ static int strip_return_port (char *host)
{
char *ptr1;
char *ptr2;
- int port;
+ unsigned port;
ptr1 = strrchr (host, ':');
if (ptr1 == NULL)
@@ -186,8 +186,11 @@ static int strip_return_port (char *host)
return 0;
*ptr1++ = '\0';
- if (sscanf (ptr1, "%d", &port) != 1) /* one conversion required */
- return 0;
+
+ port = atoi(ptr1);
+ /* check that port string is in the valid range 1-0xffff) */
+ if(strlen(ptr1) > 5 || (port & 0xffff0000)) return 0;
+
return port;
}
+3
View File
@@ -11,4 +11,7 @@ TINYPROXY_LICENSE = GPL-2.0+
TINYPROXY_LICENSE_FILES = COPYING
TINYPROXY_CPE_ID_VALID = YES
# 0001-reqs-fix-integer-overflow-in-port-number-processing.patch
TINYPROXY_IGNORE_CVES += CVE-2025-63938
$(eval $(autotools-package))
+1 -1
View File
@@ -1,3 +1,3 @@
# Locally calculated
sha256 0bf30151fe8d9d2fb59b57f6630739dfbbd16417dee69ec57d43b37335bd649a udisks-2.11.0.tar.bz2
sha256 e88c52bae02fa13414604bbef42c6bb91c2e24177ee0057ed55c6bd7451bcb6d udisks-2.11.1.tar.bz2
sha256 98046e932dc6c739001e79d7079a3bd958fc55475dcd917d27f884c0c93525cc COPYING
+1 -1
View File
@@ -4,7 +4,7 @@
#
################################################################################
UDISKS_VERSION = 2.11.0
UDISKS_VERSION = 2.11.1
UDISKS_SOURCE = udisks-$(UDISKS_VERSION).tar.bz2
UDISKS_SITE = https://github.com/storaged-project/udisks/releases/download/udisks-$(UDISKS_VERSION)
UDISKS_LICENSE = GPL-2.0+
@@ -1,78 +0,0 @@
From 5686ef63f81fcac2ca6ec6e7160829b295ad4e79 Mon Sep 17 00:00:00 2001
From: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Date: Sun, 28 Dec 2025 15:01:38 +0100
Subject: [PATCH] src/Makefile: create links with ln -sf
Running "make installlinks" twice towards the same destination
directory will fail, as symlink will already exist. This is not really
expected as "make install" is normally expected to work again and
again towards the same destination directory.
Fix this by using ln -sf.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Upstream: https://github.com/vim/vim/commit/6df5360691266b5eca49380e94f3e21fa48e5e0b
---
src/Makefile | 24 ++++++++++++------------
1 file changed, 12 insertions(+), 12 deletions(-)
diff --git a/src/Makefile b/src/Makefile
index 6fb1eb95e..39f798260 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -2746,40 +2746,40 @@ installvimdiff: $(DEST_BIN)/$(VIMDIFFTARGET)
installgvimdiff: $(DEST_BIN)/$(GVIMDIFFTARGET)
$(DEST_BIN)/$(EXTARGET): $(DEST_BIN)
- cd $(DEST_BIN); ln -s $(VIMTARGET) $(EXTARGET)
+ cd $(DEST_BIN); ln -sf $(VIMTARGET) $(EXTARGET)
$(DEST_BIN)/$(VIEWTARGET): $(DEST_BIN)
- cd $(DEST_BIN); ln -s $(VIMTARGET) $(VIEWTARGET)
+ cd $(DEST_BIN); ln -sf $(VIMTARGET) $(VIEWTARGET)
$(DEST_BIN)/$(GVIMTARGET): $(DEST_BIN)
- cd $(DEST_BIN); ln -s $(VIMTARGET) $(GVIMTARGET)
+ cd $(DEST_BIN); ln -sf $(VIMTARGET) $(GVIMTARGET)
$(DEST_BIN)/$(GVIEWTARGET): $(DEST_BIN)
- cd $(DEST_BIN); ln -s $(VIMTARGET) $(GVIEWTARGET)
+ cd $(DEST_BIN); ln -sf $(VIMTARGET) $(GVIEWTARGET)
$(DEST_BIN)/$(RVIMTARGET): $(DEST_BIN)
- cd $(DEST_BIN); ln -s $(VIMTARGET) $(RVIMTARGET)
+ cd $(DEST_BIN); ln -sf $(VIMTARGET) $(RVIMTARGET)
$(DEST_BIN)/$(RVIEWTARGET): $(DEST_BIN)
- cd $(DEST_BIN); ln -s $(VIMTARGET) $(RVIEWTARGET)
+ cd $(DEST_BIN); ln -sf $(VIMTARGET) $(RVIEWTARGET)
$(DEST_BIN)/$(RGVIMTARGET): $(DEST_BIN)
- cd $(DEST_BIN); ln -s $(VIMTARGET) $(RGVIMTARGET)
+ cd $(DEST_BIN); ln -sf $(VIMTARGET) $(RGVIMTARGET)
$(DEST_BIN)/$(RGVIEWTARGET): $(DEST_BIN)
- cd $(DEST_BIN); ln -s $(VIMTARGET) $(RGVIEWTARGET)
+ cd $(DEST_BIN); ln -sf $(VIMTARGET) $(RGVIEWTARGET)
$(DEST_BIN)/$(VIMDIFFTARGET): $(DEST_BIN)
- cd $(DEST_BIN); ln -s $(VIMTARGET) $(VIMDIFFTARGET)
+ cd $(DEST_BIN); ln -sf $(VIMTARGET) $(VIMDIFFTARGET)
$(DEST_BIN)/$(GVIMDIFFTARGET): $(DEST_BIN)
- cd $(DEST_BIN); ln -s $(VIMTARGET) $(GVIMDIFFTARGET)
+ cd $(DEST_BIN); ln -sf $(VIMTARGET) $(GVIMDIFFTARGET)
$(DEST_BIN)/$(EVIMTARGET): $(DEST_BIN)
- cd $(DEST_BIN); ln -s $(VIMTARGET) $(EVIMTARGET)
+ cd $(DEST_BIN); ln -sf $(VIMTARGET) $(EVIMTARGET)
$(DEST_BIN)/$(EVIEWTARGET): $(DEST_BIN)
- cd $(DEST_BIN); ln -s $(VIMTARGET) $(EVIEWTARGET)
+ cd $(DEST_BIN); ln -sf $(VIMTARGET) $(EVIEWTARGET)
# Create links for the manual pages with various names to vim. This is only
# done when the links (or manpages with the same name) don't exist yet.
--
2.52.0
+1 -1
View File
@@ -1,4 +1,4 @@
# Locally computed
sha256 be1d60091d27bbdbc090e0bb19798baeea378aa29645fd47dc4c222dc14efcaf vim-9.1.2017.tar.gz
sha256 f9ec31df8f1a78e130dd06c395e6626c2a8a8ec2705d8e7b7667bd3ecd499c6b vim-9.1.2148.tar.gz
sha256 0b3f1f330cb1b179bb17c7c687d4cec601e0aa3462bc7f890ad4c3888d37d720 LICENSE
sha256 ee1d0885bbc4a95a24e49873a075391bdf26b69d13758e30f3d9271f8f42bd2d README.txt
+1 -1
View File
@@ -4,7 +4,7 @@
#
################################################################################
VIM_VERSION = 9.1.2017
VIM_VERSION = 9.1.2148
VIM_SITE = $(call github,vim,vim,v$(VIM_VERSION))
VIM_DEPENDENCIES = ncurses $(TARGET_NLS_DEPENDENCIES)
VIM_SUBDIR = src
+3 -3
View File
@@ -1,6 +1,6 @@
# From https://www.webkitgtk.org/releases/webkitgtk-2.50.4.tar.xz.sums
sha1 719c304539cecca945846700cefebc7339eb5924 webkitgtk-2.50.4.tar.xz
sha256 d3bfa473845acfab72635bada5e0d134fda6792c5b95c5c5cd141b46125bd8e4 webkitgtk-2.50.4.tar.xz
# From https://webkitgtk.org/releases/webkitgtk-2.50.5.tar.xz.sums
sha1 e93f7efa9fbc7304cc159c35d8e76d7febab2515 webkitgtk-2.50.5.tar.xz
sha256 8737631bac3e9c7ad3e5208f9370e076c09d9c45b39980021ce54edadcc6f94f webkitgtk-2.50.5.tar.xz
# Hashes for license files:
sha256 0b5d3a7cc325942567373b0ecd757d07c132e0ebd7c97bfc63f7e1a76094edb4 Source/WebCore/LICENSE-APPLE
+8 -10
View File
@@ -4,7 +4,7 @@
#
################################################################################
WEBKITGTK_VERSION = 2.50.4
WEBKITGTK_VERSION = 2.50.5
WEBKITGTK_SITE = https://www.webkitgtk.org/releases
WEBKITGTK_SOURCE = webkitgtk-$(WEBKITGTK_VERSION).tar.xz
WEBKITGTK_INSTALL_STAGING = YES
@@ -173,18 +173,16 @@ else
WEBKITGTK_CONF_OPTS += -DENABLE_JOURNALD_LOG=OFF
endif
# JIT is not supported for MIPS r6, but the WebKit build system does not
# have a check for these processors. The same goes for ARMv5 and ARMv6.
# JIT is not supported for MIPS, ARMv5, and ARMv6, but the WebKit build
# system does not have a check for some of these target processors.
#
# Disable JIT forcibly here and use the CLoop interpreter instead.
# Also, we have to disable the sampling profiler and WebAssembly, which
# do NOT work with ENABLE_C_LOOP.
#
# Also, we have to disable the sampling profiler and webassembly,
# which does NOT work with ENABLE_C_LOOP.
# Upstream bug: https://bugs.webkit.org/show_bug.cgi?id=278559
#
# Upstream bugs: https://bugs.webkit.org/show_bug.cgi?id=191258
# https://bugs.webkit.org/show_bug.cgi?id=172765
# https://bugs.webkit.org/show_bug.cgi?id=265218
#
ifeq ($(BR2_ARM_CPU_ARMV5)$(BR2_ARM_CPU_ARMV6)$(BR2_MIPS_CPU_MIPS32R6)$(BR2_MIPS_CPU_MIPS64R6),y)
ifeq ($(BR2_ARM_CPU_ARMV5)$(BR2_ARM_CPU_ARMV6)$(BR2_mips)$(BR2_mipsel),y)
WEBKITGTK_CONF_OPTS += -DENABLE_JIT=OFF -DENABLE_C_LOOP=ON \
-DENABLE_SAMPLING_PROFILER=OFF \
-DENABLE_WEBASSEMBLY=OFF
+3 -3
View File
@@ -1,6 +1,6 @@
# From https://www.wireshark.org/download/src/all-versions/SIGNATURES-4.4.9.txt
sha1 dc91c68b03b389645fa6dade92960863d74bca1d wireshark-4.4.9.tar.xz
sha256 60551dc787f41e87aeaa1e9c33304f9008037e3baf9fa11aef9c2d584cc0b54b wireshark-4.4.9.tar.xz
# From https://www.wireshark.org/download/src/all-versions/SIGNATURES-4.4.13.txt
sha1 2e85bc1231775283d3e1593ce700566e0dc4efb9 wireshark-4.4.13.tar.xz
sha256 cdaaf455954b45990651ba334ddcc691ee446fcfb332e78d27b0a8451f22dc0f wireshark-4.4.13.tar.xz
# Locally calculated
sha256 edaef632cbb643e4e7a221717a6c441a4c1a7c918e6e4d56debc3d8739b233f6 COPYING
+1 -1
View File
@@ -4,7 +4,7 @@
#
################################################################################
WIRESHARK_VERSION = 4.4.9
WIRESHARK_VERSION = 4.4.13
WIRESHARK_SOURCE = wireshark-$(WIRESHARK_VERSION).tar.xz
WIRESHARK_SITE = https://www.wireshark.org/download/src/all-versions
WIRESHARK_LICENSE = wireshark license
@@ -0,0 +1,51 @@
From c1452d88114710f5772662b1d8efb9c71edaa34c Mon Sep 17 00:00:00 2001
From: Aleksei Bavshin <alebastr89@gmail.com>
Date: Sat, 7 Feb 2026 17:48:16 -0800
Subject: [PATCH] backend/libinput: fix build with libinput 1.31
Upstream: https://gitlab.freedesktop.org/wlroots/wlroots/-/commit/c1452d88114710f5772662b1d8efb9c71edaa34c
Signed-off-by: Bernd Kuhls <bernd@kuhls.net>
---
backend/libinput/meson.build | 4 ++++
backend/libinput/switch.c | 5 +++++
2 files changed, 9 insertions(+)
diff --git a/backend/libinput/meson.build b/backend/libinput/meson.build
index c244eb77a..091b0e0eb 100644
--- a/backend/libinput/meson.build
+++ b/backend/libinput/meson.build
@@ -29,3 +29,7 @@ features += { 'libinput-backend': true }
wlr_deps += libinput
internal_config.set10('HAVE_LIBINPUT_BUSTYPE', libinput.version().version_compare('>=1.26.0'))
+internal_config.set10(
+ 'HAVE_LIBINPUT_SWITCH_KEYPAD_SLIDE',
+ libinput.version().version_compare('>=1.30.901')
+)
diff --git a/backend/libinput/switch.c b/backend/libinput/switch.c
index abeec86d7..9dde3c9cb 100644
--- a/backend/libinput/switch.c
+++ b/backend/libinput/switch.c
@@ -2,6 +2,7 @@
#include <libinput.h>
#include <wlr/interfaces/wlr_switch.h>
#include "backend/libinput.h"
+#include "config.h"
const struct wlr_switch_impl libinput_switch_impl = {
.name = "libinput-switch",
@@ -36,6 +37,10 @@ void handle_switch_toggle(struct libinput_event *event,
case LIBINPUT_SWITCH_TABLET_MODE:
wlr_event.switch_type = WLR_SWITCH_TYPE_TABLET_MODE;
break;
+#if HAVE_LIBINPUT_SWITCH_KEYPAD_SLIDE
+ case LIBINPUT_SWITCH_KEYPAD_SLIDE:
+ return;
+#endif
}
switch (libinput_event_switch_get_switch_state(sevent)) {
case LIBINPUT_SWITCH_STATE_OFF:
--
GitLab
+2 -2
View File
@@ -1,7 +1,7 @@
# Locally calculated after checking pgp signature
# https://gitlab.freedesktop.org/wlroots/wlroots/-/releases/0.19.0/downloads/wlroots-0.19.0.tar.gz.sig
# https://gitlab.freedesktop.org/wlroots/wlroots/-/releases/0.19.2/downloads/wlroots-0.19.2.tar.gz.sig
# with key 34FF9526CFEF0E97A340E2E40FDE7BE0E88F5E48 "emersion <contact@emersion.fr>"
sha256 aefb0fe2633b0aad1d66123b2f41afab004fb625e2a7790492cdd39a805cac91 wlroots-0.19.0.tar.gz
sha256 09a0a8d60104c8b0772fee4f60ba76a89aed7e59dff7659d00960fba06bdf267 wlroots-0.19.2.tar.gz
# Hashes for license files:
sha256 35d427c043dcafe8893b9e7247348f599847c81d9a067703587c80707f3d58df LICENSE
+1 -1
View File
@@ -4,7 +4,7 @@
#
################################################################################
WLROOTS_VERSION = 0.19.0
WLROOTS_VERSION = 0.19.2
WLROOTS_SITE = https://gitlab.freedesktop.org/wlroots/wlroots/-/releases/$(WLROOTS_VERSION)/downloads
WLROOTS_LICENSE = MIT
WLROOTS_LICENSE_FILES = LICENSE
+5 -7
View File
@@ -156,18 +156,16 @@ else
WPEWEBKIT_CONF_OPTS += -DUSE_GBM=OFF
endif
# JIT is not supported for MIPS r6, but the WebKit build system does not
# have a check for these processors. The same goes for ARMv5 and ARMv6.
# Disable JIT forcibly here and use the CLoop interpreter instead.
# JIT is not supported for MIPS, ARMv5, and ARMv6, but the WebKit build
# system does not have a check for some of these target processors.
#
# Disable JIT forcibly here and use the CLoop interpreter instead.
# Also, we have to disable the sampling profiler and WebAssembly, which
# do NOT work with ENABLE_C_LOOP.
#
# Upstream bugs: https://bugs.webkit.org/show_bug.cgi?id=191258
# https://bugs.webkit.org/show_bug.cgi?id=172765
# https://bugs.webkit.org/show_bug.cgi?id=265218
# Upstream bug: https://bugs.webkit.org/show_bug.cgi?id=278559
#
ifeq ($(BR2_ARM_CPU_ARMV5)$(BR2_ARM_CPU_ARMV6)$(BR2_MIPS_CPU_MIPS32R6)$(BR2_MIPS_CPU_MIPS64R6),y)
ifeq ($(BR2_ARM_CPU_ARMV5)$(BR2_ARM_CPU_ARMV6)$(BR2_mips)$(BR2_mipsel),y)
WPEWEBKIT_CONF_OPTS += \
-DENABLE_JIT=OFF \
-DENABLE_C_LOOP=ON \
+1 -1
View File
@@ -5,7 +5,7 @@
################################################################################
# Buildroot version to use
RELEASE='2025.11'
RELEASE='2026.02'
### Change here for more memory/cores ###
VM_MEMORY=2048
+11 -1
View File
@@ -142,5 +142,15 @@ def main():
if __name__ == "__main__":
multiprocessing.set_start_method("fork")
# python 3.14 changed default start method from fork to
# fork-server, which is not compatible with the nose2 setup
if multiprocessing.get_start_method(allow_none=True) != "fork":
multiprocessing.set_start_method("fork", force=True)
# set_start_method throws a RuntimeError if called more than
# once.
# Debian python3-nose2 0.15.1-2 includes a patch adding
# another set_start_method() call, so monkey patch it out to
# get rid of this
multiprocessing.set_start_method = lambda *args: None
sys.exit(main())