Compare commits

...

132 Commits

Author SHA1 Message Date
Antonin Godard
1ba3cd7c88 ref-manual/variables.rst: document the QB_DEFAULT_BIOS variable
The QB_DEFAULT_BIOS allows setting the -bios parameter of QEMU, which
can be used to emulate U-Boot, for example.

(From yocto-docs rev: dc9a5aa19ca2a0b5ad866f0329b8a030542ca0c6)

Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
(cherry picked from commit f2eef5268aa94b31e986e4eef4ce1fe0094b70c4)
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
Signed-off-by: Paul Barker <paul@pbarker.dev>
2026-08-13 12:33:22 +01:00
Antonin Godard
3cd1dbb582 ref-manual/variables.rst: document qemuboot variables
Document the variables in qemuboot.bbclass that allow customizing how
the QEMU guest is instantiated.

(From yocto-docs rev: 3c485a4838d7ca721d2d00867ff3d98d9e999c69)

Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
(cherry picked from commit 392ef512b05da8170d5e329c2750b2ada0a06cbd)
[AG: remove QB_TAP_NAMESERVER, doesn't exist on scarthgap]
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
Signed-off-by: Paul Barker <paul@pbarker.dev>
2026-08-13 12:33:22 +01:00
Antonin Godard
5a83b18b4d docs-wide: remove CROPS references
The CROPS[1] project hasn't been updated in two years which makes it
incompatible with our current system requirements.

Remove references to CROPS from the documentation, and in most cases
replace them by mentioning that a container can be used (setup for it
left to the user).

Note that the project is working on reference containers[2] which may
replace this at some point (not confirmed).

[1]: https://github.com/crops/poky-container/
[2]: https://lore.kernel.org/yocto/8286fd3b-1b05-47bf-95e4-0b9f0f5411cb@app.fastmail.com/

(From yocto-docs rev: 9d795bc96ad209c1ab7c007c2aae92b60a5d6ee9)

Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
(cherry picked from commit 95cf1ba327a3bcdabadf0ee96d6bf38d05c4c3dc)
[AG: fix conflicts in start.rst]
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
Signed-off-by: Paul Barker <paul@pbarker.dev>
2026-08-13 12:33:22 +01:00
Paul Barker
8ce6b5c8c7 contributor-guide: Note patch complexity requirements for stable branches
Expand the existing note section under "Submitting Changes to Stable
Release Branches" to provide guidance on (not) submitting large or
complex changes.

Concerns around the increased size and complexity of patches being
submitted for the stable branches (mostly driven by complex
vulnerabilities found and/or fixed via LLM agents) were discussed with
the stable maintainer and the Yocto Project TSC. This patch reflects the
TSC decision that we should push back on these changes to preserve the
maintainability of our stable branches.

Cc: Yoann Congal <yoann.congal@smile.fr>
(From yocto-docs rev: 3adedbd203b894924fb75d187a8cea1d92aaa700)

Signed-off-by: Paul Barker <paul@pbarker.dev>
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
(cherry picked from commit 33bf0ff80df6be2aad8eb081752648d3c408a54b)
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
Signed-off-by: Paul Barker <paul@pbarker.dev>
2026-08-13 12:33:21 +01:00
Antonin Godard
c72ed1013c dev-manual/sbom.rst: refresh for SPDX3
SPDX3 support was backported to scarthgap with 9c9b9545049a ("backport:
SPDX 3.0 fixes and tasks from upstream version Walnascar") in OE-Core,
but the Scarthgap documentation doesn't reflect it. Update the
documentation to show how to enable and remove SPDX2 statements.

(From yocto-docs rev: 365377da1b810c456f1d966ae8ffeed1cd534c10)

Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
Signed-off-by: Paul Barker <paul@pbarker.dev>
2026-08-13 12:33:21 +01:00
Devansh Patel
077627338a openssh: set status for CVE-2026-59998
Analysis:
- CVE-2026-59998 concerns an undocumented limitation of
  GSSAPIStrictAcceptorCheck in Windows Active Directory
  environments [1].
- Upstream OpenSSH 10.4 only documents the existing behavior and
  provides no code remediation [2].
- The recipe disables Kerberos/GSSAPI by default. Mark the CVE
  not-applicable-config when PACKAGECONFIG lacks kerberos, and
  unpatched when kerberos is enabled.

Reference:
[1] https://nvd.nist.gov/vuln/detail/CVE-2026-59998
[2] 8058c5bdb5

(From OE-Core rev: 543550522f831479f07d332a40ba343c53ae1065)

Signed-off-by: Devansh Patel <devanshp@cisco.com>
[YC: See previous version of this patch for context about ignoring vs
this CVE vs patching:
https://patchwork.yoctoproject.org/project/oe-core/patch/20260720175518.3546447-3-devanshp@cisco.com/#40497 ]
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
2026-07-31 16:41:23 +01:00
Martin Schwan
e1223f066d cargo-update-recipe-crates: Don't fail for partially empty Cargo.lock
Do not fail if only some Cargo.lock files are empty. Only fail, if there
are absolutely no dependencies found in any Cargo.lock.

This fixes the following error message, which would occur with "bitbake
-c update_crates python3-orjson":

    ERROR: python3-orjson-3.10.17-r0 do_update_crates: Execution of '.../python3-orjson/3.10.17/temp/run.do_update_crates.70693' failed with exit code 1
    ERROR: Logfile of failure stored in: .../python3-orjson/3.10.17/temp/log.do_update_crates.70693
    Log data follows:
    | DEBUG: Executing python function extend_recipe_sysroot
    | NOTE: Direct dependencies are ['.../sources/oe-core/../oe-core/meta/recipes-devtools/quilt/quilt-native_0.69.bb:do_populate_sysroot', 'virtual:native:.../sources/oe-core/../oe-core/meta/recipes-devtools/patch/patch_2.8.bb:do_populate_sysroot', 'virtual:native:.../sources/oe-core/../oe-core/meta/recipes-devtools/python/python3_3.13.9.bb:do_populate_sysroot']
    | NOTE: Installed into sysroot: []
    | NOTE: Skipping as already exists in sysroot: ['gettext-minimal-native', 'cmake-native', 'libtool-native', 'quilt-native', 'texinfo-dummy-native', 'openssl-native', 'expat-native', 'ncurses-native', 'util-linux-libuuid-native', 'zlib-native', 'libedit-native', 'make-native', 'patch-native', 'perl-native', 'python3-native', 'bzip2-native', 'xz-native', 'zstd-native', 'attr-native', 'gdbm-native', 'libffi-native', 'sqlite3-native']
    | DEBUG: Python function extend_recipe_sysroot finished
    | DEBUG: Executing shell function do_update_crates
    | Traceback (most recent call last):
    |   File "<stdin>", line 41, in <module>
    |   File "<stdin>", line 12, in get_crates
    | ValueError: Unable to find any candidate crates that use crates.io
    |
    | The above exception was the direct cause of the following exception:
    |
    | Traceback (most recent call last):
    |   File "<stdin>", line 43, in <module>
    | ValueError: Cannot parse '.../python3-orjson/3.10.17/sources/orjson-3.10.17/include/cargo/simdutf8-0.1.5/Cargo.lock'
    | WARNING: exit code 1 from a shell command.
    ERROR: Task (.../sources/oe-core/../meta-openembedded/meta-python/recipes-devtools/python/python3-orjson_3.10.17.bb:do_update_crates) failed with exit code '1'

(From OE-Core rev: 59f1965358f59457857c920ed836998509450d9a)

Signed-off-by: Martin Schwan <m.schwan@phytec.de>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 1ef39b3fa731fb121d338aea2b1ac004620063e0)
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
2026-07-31 16:41:23 +01:00
João Marcos Costa
c5366e63b1 curl: add annotation for CVE-2026-10536
This CVE is detailed here: https://curl.se/docs/CVE-2026-10536.html

and the fix essentially consolidates the fact that HTTP2 stream
dependency is deprecated.

While oe-core provides a PACKAGECONFIG to enable HTTP2, it is not
actually used so the affected part of the code is not compiled. For
instance, in the do_configure logs:

"""
(...)
HTTP2: no (--with-nghttp2, --with-hyper)
(...)
"""

Ignore this CVE unless 'nghttp2' is enabled.

(From OE-Core rev: 637ce45a66ff7125b98fc126321b31cb0cf6bf0f)

Signed-off-by: João Marcos Costa (Schneider Electric) <joaomarcos.costa@bootlin.com>
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
2026-07-31 16:41:23 +01:00
Deepak Rathore
f1d5865685 sqlite3: fix CVE-2026-11822 and CVE-2026-11824
This patch applies the upstream fix [1], which addresses memory
corruption vulnerabilities in the SQLite FTS5 full-text search extension.
The GitHub mirror commit [1] corresponds to the SQLite Fossil check-in
shown in [2].

[1] e0b995b2a6
[2] https://sqlite.org/src/info/061febcf41ca

Reference:
https://nvd.nist.gov/vuln/detail/CVE-2026-11822
https://nvd.nist.gov/vuln/detail/CVE-2026-11824

(From OE-Core rev: 3de44d1dd09907f620ed349dba563c489a5cecb9)

Signed-off-by: Deepak Rathore <deeratho@cisco.com>
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
2026-07-31 16:41:22 +01:00
Siddharth Doshi
8e0b74b1d8 vim: Security Fix for CVE-2026-47167
Picking patch as per [1], and same patch is mentioned in [2]

References:
[1] https://nvd.nist.gov/vuln/detail/CVE-2026-47167
[2] https://security-tracker.debian.org/tracker/CVE-2026-47167

(From OE-Core rev: 4c3c569a7d9e19f7d613d01afd2ab793a4d35453)

Signed-off-by: Siddharth Doshi <sdoshi@mvista.com>
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
2026-07-31 16:41:22 +01:00
Siddharth Doshi
676f7e731a vim: Security Fix for CVE-2026-47162
Picking patch as per [1], and same patch is mentioned in [2]

References:
[1] https://nvd.nist.gov/vuln/detail/CVE-2026-47162
[2] https://security-tracker.debian.org/tracker/CVE-2026-47162

(From OE-Core rev: 2f2d13412852098c0a9c4d633d9f2f340d34b29b)

Signed-off-by: Siddharth Doshi <sdoshi@mvista.com>
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
2026-07-31 16:41:22 +01:00
Siddharth Doshi
0623e8b986 vim: Security Fix for CVE-2026-43961
Picking patch as per [1], and same patch is mentioned in [2]

References:
[1] https://github.com/vim/vim/commit/8af0f098c3a42a28661d0295364e
[2] https://security-tracker.debian.org/tracker/CVE-2026-43961

(From OE-Core rev: 333839503766bdb995092b09546922a3f4ec968e)

Signed-off-by: Siddharth Doshi <sdoshi@mvista.com>
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
2026-07-31 16:41:22 +01:00
Siddharth Doshi
0939d72e83 vim: Security Fix for CVE-2026-42307
Picking patch as per [1], and same patch is mentioned in [2]

References:
[1] https://nvd.nist.gov/vuln/detail/CVE-2026-42307
[2] https://security-tracker.debian.org/tracker/CVE-2026-42307

(From OE-Core rev: ce14ca9604dfa13c619f17282273eb279a79a3ac)

Signed-off-by: Siddharth Doshi <sdoshi@mvista.com>
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
2026-07-31 16:41:22 +01:00
Siddharth Doshi
1c0ffd724f vim: Security Fix for CVE-2026-28422
Picking patch as per [1], and same patch is mentioned in [2]

References:
[1] https://nvd.nist.gov/vuln/detail/CVE-2026-28422
[2] https://security-tracker.debian.org/tracker/CVE-2026-28422

(From OE-Core rev: 5568c80413e04ffe9a495b28fa1d067bd8cc3209)

Signed-off-by: Siddharth Doshi <sdoshi@mvista.com>
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
2026-07-31 16:41:22 +01:00
Darsh Kelaiya
7a6a4aa3b1 python3-setuptools: Fix CVE-2026-59890
This patch applies the upstream fix as referenced in [2],
using the commit shown in [1].

[1] dd9f436a36
[2] https://nvd.nist.gov/vuln/detail/CVE-2026-59890

(From OE-Core rev: 0c89d54002ed0411ea34a926ccb80c4b6e4d858c)

Signed-off-by: Darsh Kelaiya <dkelaiya@cisco.com>
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
2026-07-31 16:41:22 +01:00
mark.yang
9b68c3fb71 python3-pyasn1: set CVE_PRODUCT
The default python:pyasn1 does not match the NVD/CNA entries which use
pyasn1 as vendor, so CVEs like CVE-2026-30922 are never reported. Use
the exact pyasn1:pyasn1 pair.

Note: Original commit was for python3-pyasn1_0.6.3.bb. This is adjusted
for scarthgap where recipe version is python3-pyasn1_0.5.1.bb.

Suggested-by: Ross Burton <ross.burton@arm.com>
(From OE-Core rev: 4c2a8f74464cf3b7143bd9e978eef976aea6315e)

Signed-off-by: mark.yang <mark.yang@lge.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 4971337840e8855740409e8f5dadb3ab3661f033)
Signed-off-by: Himanshu Jadon <hjadon@cisco.com>
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
2026-07-31 16:41:22 +01:00
mark.yang
26302ae479 python3-ply: set CVE_PRODUCT
NVD registers ply as dabeaz:ply, so the default python:ply vendor
prefix never matches and no CVEs are reported. Use the exact
vendor:product pair.

CVE-2025-56005 will then show as unpatched; no fixed release exists.

Suggested-by: Paul Barker <paul@pbarker.dev>
(From OE-Core rev: 069cda2549b0dd841914c5b860f138f6db8b3977)

Signed-off-by: mark.yang <mark.yang@lge.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit bb80fef9a76649fb1144408fbc7e2903439cd556)
Signed-off-by: Himanshu Jadon <hjadon@cisco.com>
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
2026-07-31 16:41:22 +01:00
mark.yang
860d4b1c86 python3-cryptography: set CVE_PRODUCT
NVD lists it as cryptography.io:cryptography and CNA lists it as
pyca:cryptography, so set both vendor:product pairs to match correctly
and precisely.

Suggested-by: Ross Burton <ross.burton@arm.com>
(From OE-Core rev: f4029c635ce3dc1470352d3d3381d9fef19426ed)

Signed-off-by: mark.yang <mark.yang@lge.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit b721019e0b2ccbaa8de267e14b282c48a5a3de8b)
Signed-off-by: Himanshu Jadon <hjadon@cisco.com>
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
2026-07-31 16:41:22 +01:00
Darsh Kelaiya
cb5f298597 gawk: Fix CVE-2026-40553
This patch applies the upstream fix as referenced in [3], using the
commit shown in [1]. It also applies the corrective follow-up [2],
which fixes the snprintf() truncation boundary check. Both commits
are included in gawk 5.4.1, identified as the fixed release in [4].

[1] https://cgit.git.savannah.gnu.org/cgit/gawk.git/commit/?id=cca0366144336b49aaa7d5d949966ce8e2c70843
[2] https://cgit.git.savannah.gnu.org/cgit/gawk.git/commit/?id=bfa2e4b890a44100a99d26b54af385479528b12e
[3] https://nvd.nist.gov/vuln/detail/CVE-2026-40553
[4] https://cert.pl/en/posts/2026/07/CVE-2026-40467/

(From OE-Core rev: 1f60829da0b2ea7d9f3295ba3cfd3bba972872a2)

Signed-off-by: Darsh Kelaiya <dkelaiya@cisco.com>
Reviewed-by: Leonid Iziumtsev <leonid.iziumtsev@est.tech>
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
2026-07-31 16:41:22 +01:00
Darsh Kelaiya
5cd9ed667f gawk: Fix CVE-2026-40469
NVD [3] identifies upstream merge commit [2] as the fix. The
CVE-specific change is its second parent [1], which adds 32-bit
overflow checking in do_sub().

[1] https://cgit.git.savannah.gnu.org/cgit/gawk.git/commit/?id=aa7272a6e1184cdd21ab8f89200219abd8053eda
[2] https://cgit.git.savannah.gnu.org/cgit/gawk.git/commit/?id=ae1b2d508f46913269a9e62aceda3636afe8147b
[3] https://nvd.nist.gov/vuln/detail/CVE-2026-40469

(From OE-Core rev: 421a3d2166e922c5a8085be0aa9daab13920b613)

Signed-off-by: Darsh Kelaiya <dkelaiya@cisco.com>
Reviewed-by: Leonid Iziumtsev <leonid.iziumtsev@est.tech>
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
2026-07-31 16:41:22 +01:00
Darsh Kelaiya
e84e827496 gawk: Fix CVE-2026-40468
This patch applies the upstream fix as referenced in [2], using the commit shown in [1].

[1] https://cgit.git.savannah.gnu.org/cgit/gawk.git/commit/?id=062f2f2581b991362c046f7f2e238ffa34e6f8c7
[2] https://nvd.nist.gov/vuln/detail/CVE-2026-40468

(From OE-Core rev: a149dbcad38f6f838db303b76fffbfe68052e74e)

Signed-off-by: Darsh Kelaiya <dkelaiya@cisco.com>
Reviewed-by: Leonid Iziumtsev <leonid.iziumtsev@est.tech>
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
2026-07-31 16:41:22 +01:00
Darsh Kelaiya
a59438acc8 gawk: Fix CVE-2026-40467
This patch applies the upstream fix as referenced in [2], using the commit shown in [1].

[1] https://cgit.git.savannah.gnu.org/cgit/gawk.git/commit/?id=a2d18c74109e41bec29a23098eba2e00057286d8
[2] https://nvd.nist.gov/vuln/detail/CVE-2026-40467

(From OE-Core rev: 157c0642e924dc5f53064322ad8b8143a3621d6b)

Signed-off-by: Darsh Kelaiya <dkelaiya@cisco.com>
Reviewed-by: Leonid Iziumtsev <leonid.iziumtsev@est.tech>
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
2026-07-31 16:41:22 +01:00
AshishKumar Mishra
337c659854 package.bbclass: hardcode emit_pkgdata to run last
Ensure emit_pkgdata runs after all PACKAGEFUNCS to allow layers to
extend packaging behavior.
Layers can now append custom functions via PACKAGEFUNCS += "func_name"
and they will run before emit_pkgdata generates package metadata.

(From OE-Core rev: 358a847c9dfaf56291f9eb5e2f150cae56044c7c)

Signed-off-by: AshishKumar Mishra <emailaddress.ashish@gmail.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit aa85baff9ebdd3f932811c3b43d1918c38373cb9)
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
2026-07-31 16:41:22 +01:00
Shubham Pushpkar
32067f2db1 libsolv: Fix CVE-2026-9149
This patch applies the upstream fix as referenced in [1], using the CVE advisory shown in [2].
[1] 210386037c
[2] https://nvd.nist.gov/vuln/detail/CVE-2026-9149

(From OE-Core rev: 6c39677193adf777b9abe22859842ec692bebdc3)

Signed-off-by: Shubham Pushpkar <spushpka@cisco.com>
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
(cherry picked from commit d3fc48836349e81369f5680d808d2e469fce626a)
Signed-off-by: Deepak Rathore <deeratho@cisco.com>
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
2026-07-31 16:41:22 +01:00
Niko Mauno
5de2230907 ref-manual: Fix occurrences of omitted space with :prepend
Add trailing space to value field in :prepend assignments, in
order to avoid providing examples which could lead the users to risk
inadvertent string concatenation.

(From yocto-docs rev: 8496602a28b19fec9ee55dc45572b31a32c70443)

Signed-off-by: Niko Mauno <niko.mauno@vaisala.com>
Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de>
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
(cherry picked from commit b2f611f498eb22ca42dc436e3cde0c60ad2ba72f)
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
Signed-off-by: Paul Barker <paul@pbarker.dev>
2026-07-30 13:21:16 +01:00
Antonin Godard
173c1c523d kernel-dev/common.rst: remove taskhash mismatch note
Running 'devtool modify linux-yocto' with latest version of OE-Core and
linux-yocto did not prompt the error, so remove the note.

(From yocto-docs rev: 6a5efba38c8edf17a28cc0bd9f682df582c71705)

Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
(cherry picked from commit e8debfba3458618a25d21286581adc22bf78a836)
[AG: conflicts: note had different path, remove anyway]
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
Signed-off-by: Paul Barker <paul@pbarker.dev>
2026-07-30 13:21:16 +01:00
Antonin Godard
d8015a395d migration-guides: replace broken link with archive links
Replace broken link with working archives found on
https://web.archive.org/.

Suggested-by: Quentin Schulz <quentin.schulz@cherry.de>
(From yocto-docs rev: 9db9bf1e64efa4fcce193d7f4ca0c5ca0b1bdaf0)

Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
(cherry picked from commit 3288e85934868917f10d66a9130bbdfa5e0ff763)
[AG: conflicts: remove applied hunks for non-existing files]
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
Signed-off-by: Paul Barker <paul@pbarker.dev>
2026-07-30 13:21:16 +01:00
Daniel Turull
9011c7faaa ref-manual/release-process.rst: update LTS supported versions
Add Wrynose and remove Kirkstone as supported versions.

(From yocto-docs rev: 032850b7245c853b947218654f9036cced44c36d)

Signed-off-by: Daniel Turull <daniel.turull@ericsson.com>
[AG: fix Wyrnose -> Wrynose typo]
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
(cherry picked from commit 563e100d5663713e593fd92d2d0fcbddcf25c1c5)
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
Signed-off-by: Paul Barker <paul@pbarker.dev>
2026-07-30 13:21:16 +01:00
Lee Chee Yang
f511852928 migration-guide: add release notes for 5.0.19
(From yocto-docs rev: 40df1e24e6e8f712212071aba010c7b127c8b4c7)

Signed-off-by: Lee Chee Yang <chee.yang.lee@intel.com>
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
(cherry picked from commit 95b59a99896052ef7547a54e376d827bf64da43f)
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
Signed-off-by: Paul Barker <paul@pbarker.dev>
2026-07-30 13:21:16 +01:00
Hongxu Jia
e640c1faf0 bzip2: fix 'bzip2 --version > /tmp/aaa 2>&1' hang
According to [1]

As of the current version 1.0.8, bzip2 --version will print version
info but it will also continue compressing stdin:

  $ ./bzip2 --version
  bzip2, a block-sorting file compressor.  Version 1.0.8, 13-Jul-2019.

     Copyright (C) 1996-2019 by Julian Seward.

     This program is free software; [...]

  bzip2: I won't write compressed data to a terminal.
  bzip2: For help, type: `bzip2 --help'.

This is a long-standing bug, not new to 1.0.8 -- the same code
(license() followed by break, with no exit) exists in bzip2 1.0.6 and
earlier. The upstream bzip2 master branch on GitLab already includes
this fix.

Debian (and its downstreams like Ubuntu) will patch this out [2],
making the < /dev/null unnecessary, port a part of debian patch
to fix the issue

[1] https://stackoverflow.com/questions/59757176/why-using-dev-null-with-a-program-like-bzip2
[2] https://sources.debian.org/src/bzip2/1.0.8-6/debian/patches/20-legacy.patch/

(From OE-Core rev: 762321beb0260b1411c7f98f13458ec99a118280)

Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit ae4fe4263ba9d372f9b9e80df4ec4697b51c1f9b)
[Jaipaul: backport to scarthgap -- added commit message context that this is a
long-standing bug (not new to 1.0.8), updated Upstream-Status in patch
to actual mailing list URL in the patch file, this patch is already present on master,
wrynose and walnascar branches using the same bzip2 1.0.8]
Signed-off-by: Jaipaul Cheernam <jaipaul.cheernam@est.tech>
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
2026-07-30 13:21:16 +01:00
Darsh Kelaiya
6dacef99fb gzip: Fix CVE-2026-41991
This patch applies the upstream fix for CVE-2026-41991 as referenced
in [2], using the upstream commit identified in [1].

[1] https://cgit.git.savannah.gnu.org/cgit/gzip.git/commit/?id=4e6f8b24ab823146ab8776f0b7fe486ab34d4269
[2] https://nvd.nist.gov/vuln/detail/CVE-2026-41991

(From OE-Core rev: 756270e9b67b97b276729daba50febe7093d85b3)

Signed-off-by: Darsh Kelaiya <dkelaiya@cisco.com>
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
2026-07-30 13:21:16 +01:00
Deepak Rathore
11fbd90126 glib-2.0: fix CVE-2026-58014
This patch applies the upstream 2.88.1 backport for
CVE-2026-58014. The upstream fix commit is referenced in [1],
and the public CVE advisory is referenced in [2].

[1] 94ecb5b44a
[2] https://nvd.nist.gov/vuln/detail/CVE-2026-58014

(From OE-Core rev: cb3cbcb16363f6c351492d19e240c0a02f073749)

Signed-off-by: Deepak Rathore <deeratho@cisco.com>
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
2026-07-30 13:21:16 +01:00
Deepak Rathore
6ae62b54aa glib-2.0: fix CVE-2026-58013
This patch applies the upstream 2.88.1 backport for
CVE-2026-58013. The upstream fix commit is referenced in [1],
and the public CVE advisory is referenced in [2].

[1] 6a2583dec3
[2] https://nvd.nist.gov/vuln/detail/CVE-2026-58013

(From OE-Core rev: cb2fd8601b4243183d5e219b901439da3f2d41c8)

Signed-off-by: Deepak Rathore <deeratho@cisco.com>
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
2026-07-30 13:21:16 +01:00
Deepak Rathore
97deef61ea glib-2.0: fix CVE-2026-58012
This patch applies the upstream 2.86.5 backport for
CVE-2026-58012. The upstream fix commit is referenced in [1],
and the public CVE advisory is referenced in [2].

[1] d337aabd24
[2] https://nvd.nist.gov/vuln/detail/CVE-2026-58012

(From OE-Core rev: b11588f572c1ce6af24da9020793e96404a028b4)

Signed-off-by: Deepak Rathore <deeratho@cisco.com>
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
2026-07-30 13:21:16 +01:00
Deepak Rathore
f5a87ca676 glib-2.0: fix CVE-2026-58011
This patch applies the upstream 2.86.5 backport for
CVE-2026-58011. The upstream fix commit is referenced in [1],
and the public CVE advisory is referenced in [2].

[1] ae27363f02
[2] https://nvd.nist.gov/vuln/detail/CVE-2026-58011

(From OE-Core rev: a5fe21f357fc41de52e16ef918a737068b0f47e7)

Signed-off-by: Deepak Rathore <deeratho@cisco.com>
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
2026-07-30 13:21:16 +01:00
Deepak Rathore
bb040b7305 glib-2.0: fix CVE-2026-58010
This patch applies the upstream 2.86.5 backport for
CVE-2026-58010. The upstream fix commit is referenced in [1],
and the public CVE advisory is referenced in [2].

[1] aa1cb87d56
[2] https://nvd.nist.gov/vuln/detail/CVE-2026-58010

(From OE-Core rev: 42905f772f74fd9977bb571380c8512f197a1473)

Signed-off-by: Deepak Rathore <deeratho@cisco.com>
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
2026-07-30 13:21:16 +01:00
Sudhir Dumbhare
d0d68df4c3 libpng: Fix CVE-2026-34757
These patches apply the upstream fixes [1][2], which address
getter-to-setter aliasing issues in libpng chunk setters that could
cause stale-pointer reads, as described in [3].

[1] 398cbe3df0
[2] 55d20aaa32
[3] https://github.com/pnggroup/libpng/issues/836

Reference:
https://security-tracker.debian.org/tracker/CVE-2026-34757
https://nvd.nist.gov/vuln/detail/CVE-2026-34757

Test results on qemux86-64 using ptest-runner:
START: ptest-runner
2026-06-04T11:29
BEGIN: /usr/lib/libpng/ptest
PASS: tests/pnggetset
Testsuite summary
# TOTAL: 33
# PASS:  33
# SKIP:  0
# XFAIL: 0
# FAIL:  0
# XPASS: 0
# ERROR: 0
DURATION: 80
END: /usr/lib/libpng/ptest
2026-06-04T11:31
STOP: ptest-runner
TOTAL: 1 FAIL: 0

(From OE-Core rev: 392fb4216357fd4eefb6abe3788414f2e60b0889)

Signed-off-by: Sudhir Dumbhare <sudumbha@cisco.com>
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
2026-07-30 13:21:16 +01:00
Sudhir Dumbhare
75764cf5d7 gnutls: fix CVE-2026-42009
This patch applies the upstream fix [1] and [2], as referenced in [3],
to address a DTLS packet reordering flaw where duplicate sequence numbers
could lead to unstable ordering or undefined behavior.

[1] f01e21441e
[2] f341441fad
[3] https://security-tracker.debian.org/tracker/CVE-2026-42009

Reference:
https://nvd.nist.gov/vuln/detail/CVE-2026-42009

(From OE-Core rev: 8f3c2010a6bb4b2e7f4508a3ea4c2717294d75a3)

Signed-off-by: Sudhir Dumbhare <sudumbha@cisco.com>
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
2026-07-30 13:21:16 +01:00
Sudhir Dumbhare
ffc5320e51 gnutls: set status for CVE-2026-3832
Analysis:
  - CVE-2026-3832 affects GnuTLS OCSP multi-record response handling.
  - The vulnerable OCSP response handling code was introduced in GnuTLS 3.8.8.
  - This vulnerable code is not present in the current GnuTLS 3.8.4.
  - Hence ignoring the CVE for this version.

Reference:
https://nvd.nist.gov/vuln/detail/CVE-2026-3832
https://security-tracker.debian.org/tracker/CVE-2026-3832
https://gitlab.com/gnutls/gnutls/-/issues/1801

(From OE-Core rev: e07d9d20c8c53b21b57f824a8ea471cb4657e717)

Signed-off-by: Sudhir Dumbhare <sudumbha@cisco.com>
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
2026-07-30 13:21:16 +01:00
Enoch Ng
9747726708 libxpm: fix CVE-2026-4367
Backport the upstream fix for CVE-2026-4367, in which the
`xpmNextWord()` function could attempt to read beyond the file's
end due to improper validation of file boundaries.

Reference: https://nvd.nist.gov/vuln/detail/CVE-2026-4367

(From OE-Core rev: b3f8956f38b2f2cb0f260ab8853e9d028831f420)

Signed-off-by: Enoch Ng <enoch.ng@windriver.com>
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
2026-07-30 13:21:16 +01:00
Deepak Rathore
44fd9295ca cups: fix CVE-2026-39316
Pick the upstream patch [1] as mentioned in [2].

[1] 0142eeb58e
[2] https://security-tracker.debian.org/tracker/CVE-2026-39316

(From OE-Core rev: f7e5b2536577573a9a9a280c1dda9c21140cfb21)

Signed-off-by: Deepak Rathore <deeratho@cisco.com>
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
2026-07-30 13:21:16 +01:00
Deepak Rathore
38a2761a99 cups: fix CVE-2026-39314
Pick the upstream patch [1] as mentioned in [2].

[1] 928a86b1b7
[2] https://security-tracker.debian.org/tracker/CVE-2026-39314

(From OE-Core rev: d3ab2665bb1b99ced4449e85f1a0e0124033b5d3)

Signed-off-by: Deepak Rathore <deeratho@cisco.com>
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
2026-07-30 13:21:16 +01:00
Deepak Rathore
4ae1f9aec6 cups: fix CVE-2026-34990
Pick the upstream patch [1] as mentioned in [2].

[1] e052dc44da
[2] https://security-tracker.debian.org/tracker/CVE-2026-34990

(From OE-Core rev: 5bf5d3da45fcc1494e5e6b3acf23880982518a7b)

Signed-off-by: Deepak Rathore <deeratho@cisco.com>
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
2026-07-30 13:21:15 +01:00
Deepak Rathore
6fa69de2bc cups: fix CVE-2026-34979
Pick the upstream patch [1] as mentioned in [2].

[1] 0ff8897367
[2] https://security-tracker.debian.org/tracker/CVE-2026-34979

(From OE-Core rev: 7aaebb1682f0ea5f75860523efdef6fefda16307)

Signed-off-by: Deepak Rathore <deeratho@cisco.com>
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
2026-07-30 13:21:15 +01:00
Deepak Rathore
335776489f cups: fix CVE-2026-34980
Pick the upstream fix [1] for CVE-2026-34980 as mentioned in [2], where
the scheduler did not filter control characters from option values.

Also include the upstream regression fixes that followed the CVE fix:

- CVE-2026-34980-regression_p1.patch [3] fixes filter PPD keyword
  processing. The CVE fix parsed PPD keywords into a temporary array,
  but the loop did not advance the keyword pointer. This regression was
  reported in OpenPrinting/cups Issue [4].
- CVE-2026-34980-regression_p2.patch [5] fixes a get_options() regression
  where the option-value parser did not advance the input pointer for
  whitespace/control-character paths.

[1] 8d0f51cac2
[2] https://security-tracker.debian.org/tracker/CVE-2026-34980
[3] 3f2bdc2932
[4] https://github.com/OpenPrinting/cups/issues/1562
[5] da0ff58c04

(From OE-Core rev: a64f1bfff50bb9e507705ff671391ec2cafdc692)

Signed-off-by: Deepak Rathore <deeratho@cisco.com>
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
2026-07-30 13:21:15 +01:00
Deepak Rathore
9184e90773 cups: fix CVE-2026-34978
Pick the upstream patch [1] as mentioned in [2].

[1] 730347c5bb
[2] https://security-tracker.debian.org/tracker/CVE-2026-34978

(From OE-Core rev: 511d976c70fb591f3bc72b750df1542c4ee84d6a)

Signed-off-by: Deepak Rathore <deeratho@cisco.com>
[YC: reverted upstream patch indentation]
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
2026-07-30 13:21:15 +01:00
Deepak Rathore
8b7ff1d843 cups: fix CVE-2026-41079
Pick the upstream fix [1] for CVE-2026-41079 as referenced by Debian [2].

[1] b7c2525a88
[2] https://security-tracker.debian.org/tracker/CVE-2026-41079

(From OE-Core rev: bdb4178b04dabbdba1c1f32aa34bb50ee1a8aedf)

Signed-off-by: Deepak Rathore <deeratho@cisco.com>
[YC: reverted modified indentation in imported patch]
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
2026-07-30 13:21:15 +01:00
Deepak Rathore
b9993675ea cups: fix CVE-2026-27447
Pick the upstream backport [1] for CVE-2026-27447 as mentioned in [2], where
the scheduler treated local user and group names as case-insensitive.

Also include the two upstream regression fixes that followed the CVE
fix:
- CVE-2026-27447-regression_p1.patch [3] fixes a cupsd crash when the
  referenced user does not exist on the server. This regression was
  reported in OpenPrinting/cups Issue [5].
- CVE-2026-27447-regression_p2.patch [4] fixes unauthenticated print
  policies for non-local accounts. This regression was reported in
  OpenPrinting/cups Issue [6].

[1] a0c62c1e69
[2] https://security-tracker.debian.org/tracker/CVE-2026-27447
[3] 6d97ee39fe
[4] 849fba7d7a
[5] https://github.com/OpenPrinting/cups/issues/1555
[6] https://github.com/OpenPrinting/cups/issues/1557

(From OE-Core rev: f2aac255fcc1c44ed30a191ba18c4ad46ea4c807)

Signed-off-by: Deepak Rathore <deeratho@cisco.com>
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
2026-07-30 13:21:15 +01:00
Devansh Patel
012eac4b8f openssh: Fix CVE-2026-60000
This patch applies the upstream OpenSSH 10.4 backport for
CVE-2026-60000. The upstream fix commit is referenced in [1],
and the public CVE advisory is referenced in [2].

[1] 5d04ca6af7
[2] https://nvd.nist.gov/vuln/detail/CVE-2026-60000

(From OE-Core rev: c3dad1896c5377635506c87a09234240c5bbca90)

Signed-off-by: Devansh Patel <devanshp@cisco.com>
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
2026-07-30 13:21:15 +01:00
Devansh Patel
cb5e6f65a5 openssh: Fix CVE-2026-60002
This patch applies the upstream OpenSSH 10.4 backport for
CVE-2026-60002. The upstream fix commit is referenced in [1],
and the public CVE advisory is referenced in [2].

[1] e8bdfb151a
[2] https://nvd.nist.gov/vuln/detail/CVE-2026-60002

(From OE-Core rev: c46f65e3f938efa983b24c53206972972d51da24)

Signed-off-by: Devansh Patel <devanshp@cisco.com>
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
2026-07-30 13:21:15 +01:00
Devansh Patel
b2a7dabed0 openssh: Fix CVE-2026-60001
This patch applies the upstream OpenSSH 10.4 backport for
CVE-2026-60001. The upstream fix commit is referenced in [1],
and the public CVE advisory is referenced in [2].

[1] d43ba60c91
[2] https://nvd.nist.gov/vuln/detail/CVE-2026-60001

(From OE-Core rev: 11cf9397c6ca0d8c080fbceb190d2a2b72b40da6)

Signed-off-by: Devansh Patel <devanshp@cisco.com>
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
2026-07-30 13:21:15 +01:00
Devansh Patel
6f56dca72f openssh: Fix CVE-2026-59995
This patch applies the upstream OpenSSH 10.4 backport for
CVE-2026-59995. The upstream fix commit is referenced in [1],
and the public CVE advisory is referenced in [2].

[1] 1b39f39657
[2] https://nvd.nist.gov/vuln/detail/CVE-2026-59995

(From OE-Core rev: 9967952fbfcb130477521324bc9899dafc277439)

Signed-off-by: Devansh Patel <devanshp@cisco.com>
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
2026-07-30 13:21:15 +01:00
Devansh Patel
a116ddae05 openssh: Fix CVE-2026-59996
This patch applies the upstream OpenSSH 10.4 backport for
CVE-2026-59996. The upstream fix commit is referenced in [1],
and the public CVE advisory is referenced in [2].

[1] 36480181fa
[2] https://nvd.nist.gov/vuln/detail/CVE-2026-59996

(From OE-Core rev: c0c407666d264d94091d994f2d468369c37cc336)

Signed-off-by: Devansh Patel <devanshp@cisco.com>
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
2026-07-30 13:21:15 +01:00
Devansh Patel
5c16db6e87 openssh: Fix CVE-2026-59997
This patch applies the upstream OpenSSH 10.4 backport for
CVE-2026-59997. The upstream fix commit is referenced in [1],
and the public CVE advisory is referenced in [2].

[1] e9916c44c1
[2] https://nvd.nist.gov/vuln/detail/CVE-2026-59997

(From OE-Core rev: 171530a1066afd2d420c33d063238af7e73ee784)

Signed-off-by: Devansh Patel <devanshp@cisco.com>
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
2026-07-30 13:21:15 +01:00
Devansh Patel
82cf81a3e9 openssh: Fix CVE-2026-59999
This patch applies the upstream OpenSSH 10.4 backport for
CVE-2026-59999. The upstream fix commit is referenced in [1],
and the public CVE advisory is referenced in [2].

[1] 8dfe7ed6e2
[2] https://nvd.nist.gov/vuln/detail/CVE-2026-59999

(From OE-Core rev: c185f00f350783e8c59b0257eb279f2f7bb0a5de)

Signed-off-by: Devansh Patel <devanshp@cisco.com>
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
2026-07-30 13:21:15 +01:00
Devansh Patel
51d4fee207 libxml2: Fix CVE-2026-11979
This patch applies the upstream fix as referenced in [2],
using the commit shown in [1].

[1] c2e233fc1b
[2] https://nvd.nist.gov/vuln/detail/CVE-2026-11979

(From OE-Core rev: e2a9a776855ea1de5c7c6817d282ea2f555395ef)

Signed-off-by: Devansh Patel <devanshp@cisco.com>
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
2026-07-30 13:21:15 +01:00
Yoann Congal
e5c6f86964 linux-yocto/6.6: update CVE exclusions (6.6.144)
$ ./meta/recipes-kernel/linux/generate-cve-exclusions.py .../cvelistV5/ 6.6.144 > meta/recipes-kernel/linux/cve-exclusion_6.6.inc

Generated at 2026-07-23 08:09:32.765073+00:00 for kernel version 6.6.144
From cvelistV5 cve_2026-07-23_0700Z

(From OE-Core rev: 9b5c90be9cd6dfa5ed42f2e05935068ba31bac1b)

Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
2026-07-30 13:21:15 +01:00
Bruce Ashfield
600aca66db linux-yocto/6.6: update to v6.6.144
Updating linux-yocto/6.6 to the latest korg -stable release that comprises
the following commits:

    da47cbc254661 Linux 6.6.144
    6848a6e39cac4 crypto: qat - remove unused character device and IOCTLs
    1a42f84b0f6b5 crypto: qat - Return pointer directly in adf_ctl_alloc_resources
    30d648e225447 crypto: qat - Replace kzalloc() + copy_from_user() with memdup_user()
    c0b8e6eea1b2b Documentation: ioctl-number: Extend "Include File" column width
    802e113cf120d drivers/base/memory: set mem->altmap after successful device registration
    511d2b92f8d20 serial: 8250_dw: unregister 8250 port if clk_notifier_register() fails
    851e1847f881e serial: qcom_geni: Fix RX DMA stall when SE_DMA_RX_LEN_IN is zero
    36599894fa853 ksmbd: fix out-of-bounds read in smb_check_perm_dacl()
    2ef8f2a5695ae NFS: Prevent resource leak in nfs_alloc_server()
    6c344fff2feff NFSv4/pNFS: reject zero-length r_addr in nfs4_decode_mp_ds_addr
    abc978daffd26 nfsd: check get_user() return when reading princhashlen
    1e96239fddcef nfsd: fix posix_acl leak on SETACL decode failure
    1e04be34cafae NFSD: Fix SECINFO_NO_NAME decode error cleanup
    1a7ee9f9f3957 fbdev: modedb: Fix misaligned fields in the 1920x1080-60 mode
    c7dc382439f7b fbdev: modedb: fix a possible UAF in fb_find_mode()
    7640b4f68acb5 fbdev: Fix fb_new_modelist to prevent null-ptr-deref in fb_videomode_to_var
    c04d606f8b35e power: reset: linkstation-poweroff: fix use-after-free in the linkstation_poweroff_init()
    889c2a9c59897 KVM: SVM: Fix page overflow in sev_dbg_crypt() for ENCRYPT path
    d18756b12aab3 KVM: x86: hyper-v: Bound the bank index when querying sparse banks
    b84f46179c806 9p: avoid putting oldfid in p9_client_walk() error path
    c5a125eadba05 ocfs2: reject oversized group bitmap descriptors
    ddf13f91ca82c rpmsg: char: Fix use-after-free on probe error path
    fbaf509ad7cb2 fpga: region: fix use-after-free in child_regions_with_firmware()
    44567537a2623 irqchip/imgpdc: Fix resource leak, add missing chained handler cleanup on remove
    7e37e9b3e82ad pNFS: Fix use-after-free in pnfs_update_layout()
    eaca7dae02fab tipc: fix slab-use-after-free Read in tipc_aead_decrypt_done
    96e545410c4f7 blk-cgroup: fix UAF in __blkcg_rstat_flush()
    508a0139d3bf6 hdlc_ppp: sync per-proto timers before freeing hdlc state
    4fe388218826d gfs2: fix use-after-free in gfs2_qd_dealloc
    8e0abc17fbd7e exfat: fix potential use-after-free in exfat_find_dir_entry()
    ab465495b1ed5 MIPS: DEC: Prevent initial console buffer from landing in XKPHYS
    81fc9a13acae9 bpf: use kvfree() for replaced sysctl write buffer
    fda128096fc84 f2fs: keep atomic write retry from zeroing original data
    7e4d8f98be63f f2fs: fix incorrect FI_NO_EXTENT handling in __destroy_extent_node()
    1ddf3fd21c4c6 f2fs: validate ACL entry sizes in f2fs_acl_from_disk()
    24f8c87070c3e f2fs: fix to round down start offset of fallocate for pin file
    13e4b59d3a941 f2fs: validate compress cache inode only when enabled
    bd499f138ccf7 wifi: iwlwifi: mvm: fix race condition in PTP removal
    2b2060c2075a7 wifi: rtw88: usb: fix memory leaks on USB write failures
    6579dcb5e0f74 wifi: rtw88: increase TX report timeout to fix race condition
    16eef2a52687b wifi: rtlwifi: rtl8821ae: Fix C2H bit location in RX descriptor
    318703b6f71d1 wifi: ath11k: fix warning when unbinding
    a2e631fa91bb2 wifi: mt76: mt76x2u: Add support for ELECOM WDC-867SU3S
    35ab4db86774d keys: Pin request_key_auth payload in instantiate paths
    5966e4e2ba213 KEYS: fix overflow in keyctl_pkey_params_get_2()
    03ef56495f0be err.h: use __always_inline on all error pointer helpers
    5267eab88fa4c fbdev: fix use-after-free in store_modes()
    06f6dd2ff2bd0 NTB: epf: Avoid pci_iounmap() with offset when PEER_SPAD and CONFIG share BAR
    15fd83a1e42ed apparmor: fix use-after-free in rawdata dedup loop
    faea60deaa05c apparmor: mediate the implicit connect of TCP fast open sendmsg
    0eb4c16c4adb2 net: skmsg: preserve sg.copy across SG transforms
    e28e7fd34c449 mac802154: llsec: add skb_cow_data() before in-place crypto
    82c17e13d404f af_unix: Set gc_in_progress to true in unix_gc().
    5f0b95ef68ab9 nvmet-tcp: fix race between ICReq handling and queue teardown
    e8852ae29868e ntfs3: reject direct userspace writes to reserved $LX* xattrs
    ce494707a9c07 ipv4: account for fraggap on the paged allocation path
    f79f0db614160 inet: add indirect call wrapper for getfrag() calls
    65fb14cbebb0c ipv6: account for fraggap on the paged allocation path
    2660bd8333ab6 batman-adv: tvlv: avoid race of cifsnotfound handler state
    9c9f4e69368a4 batman-adv: tvlv: enforce 2-byte alignment
    d7fdbab25eae6 batman-adv: dat: prevent false sharing between VLANs
    a8da361cdd929 batman-adv: tt: track roam count per VID
    e82a02a0c1aa2 batman-adv: tt: don't merge change entries with different VIDs
    0e868200cf042 batman-adv: tp_meter: handle overlapping packets
    31dec4dc86cf6 batman-adv: tp_meter: prevent parallel modifications of last_recv
    be3af0c705a13 batman-adv: tp_meter: annotate last_recv_time access with READ/WRITE_ONCE
    f8c499fd275e5 batman-adv: tp_meter: restrict number of unacked list entries
    97644fdaaf644 batman-adv: v: prevent OGM aggregation on disabled hardif
    3af7f10d5fe44 batman-adv: frag: avoid underflow of TTL
    cb96aa1737200 batman-adv: frag: ensure fragment is writable before modifying TTL
    5263ff0bbd132 batman-adv: fix (m|b)cast csum after decrementing TTL
    4741001ca0b04 batman-adv: ensure bcast is writable before modifying TTL
    29f59324e61fc batman-adv: tp_meter: initialize last_recv_time during init
    b88f8f4e5e78e batman-adv: prevent ELP transmission interval underflow
    b5cf66cdc49b1 batman-adv: bla: annotate lasttime access with READ/WRITE_ONCE
    75445cf501ac7 batman-adv: tp_meter: add only finished tp_vars to lists
    4774a32baec46 batman-adv: tp_meter: handle seqno wrap-around for fast recovery detection
    ec8ef37fea33c batman-adv: tp_meter: fix fast recovery precondition
    cd74176cf1685 batman-adv: tp_meter: avoid divide-by-zero for dec_cwnd
    f58e5df92180e batman-adv: tp_meter: avoid window underflow
    774d22045a8fa batman-adv: tp_meter: initialize dec_cwnd explicitly
    0c610db91bbde batman-adv: tp_meter: initialize dup_acks explicitly
    edae04afb11f6 batman-adv: tp_meter: keep unacked list in ascending ordered
    bc6c380c1159d selinux: fix overlayfs mmap() and mprotect() access checks
    41c5b269af8b1 lsm: add backing_file LSM hooks
    ba3ebdd89fa20 fs: prepare for adding LSM blob to backing_file
    922a03b26e354 Bluetooth: btmtk: accept too short WMT FUNC_CTRL events
    36c85f7029484 Bluetooth: btmtk: validate WMT event SKB length before struct access
    7536ebe0473d9 Revert "ptp: add testptp mask test"
    48b91ed7e22bb KVM: x86/mmu: Ensure hugepage is in by slot before checking max mapping level
    9291654d69e08 KVM: x86: Fix shadow paging use-after-free due to unexpected role
    2de4db145b299 eventpoll: fix ep_remove struct eventpoll / struct file UAF
    a0e685da1efe0 eventpoll: move epi_fget() up
    20423e2c1c84a eventpoll: rename ep_remove_safe() back to ep_remove()
    0a4a2db528b0e eventpoll: drop vestigial __ prefix from ep_remove_{file,epi}()
    f484ab90b2290 eventpoll: kill __ep_remove()
    903070f8f3552 eventpoll: split __ep_remove()
    ff4fe83a9aabb eventpoll: use hlist_is_singular_node() in __ep_remove()
    44e8907b81fea file: add fput() cleanup helper
    2181a09ba980f virtiofs: fix UAF on submount umount
    cd923dadefadb media: vidtv: fix NULL pointer dereference in vidtv_mux_push_si
    d2bbbb6c55812 ksmbd: reject non-VALID session in compound request branch
    8232fca738011 vc_screen: fix null-ptr-deref in vcs_notifier() during concurrent vcs_write
    08fbcba06e968 scripts/sorttable: Fix endianness handling in build-time mcount sort
    80514e97c50ab scripts/sorttable: Allow matches to functions before function entry
    9ba53f9808e1e scripts/sorttable: Use normal sort if theres no relocs in the mcount section
    e115e9fa69b48 ftrace: Check against is_kernel_text() instead of kaslr_offset()
    379e755ec2c54 ftrace: Test mcount_loc addr before calling ftrace_call_addr()
    bf802b936a7b2 ftrace: Do not over-allocate ftrace memory
    4c30b173b6176 ftrace: Have ftrace pages output reflect freed pages
    dc06779d338de ftrace: Update the mcount_loc check of skipped entries
    4893af6318fe8 scripts/sorttable: Zero out weak functions in mcount_loc table
    bbfbacec9e000 scripts/sorttable: Always use an array for the mcount_loc sorting
    38be2ffe9808b scripts/sorttable: Have mcount rela sort use direct values
    fe0434d604a94 arm64: scripts/sorttable: Implement sorting mcount_loc at boot for arm64
    8297f13962063 scripts/sorttable: Use a structure of function pointers for elf helpers
    ff7e015d63849 scripts/sorttable: Get start/stop_mcount_loc from ELF file directly
    ecbb09356560c scripts/sorttable: Move code from sorttable.h into sorttable.c
    7fbddce9a2685 scripts/sorttable: Use uint64_t for mcount sorting
    23b5a9659a27d scripts/sorttable: Add helper functions for Elf_Sym
    8cd6caaa4a244 scripts/sorttable: Add helper functions for Elf_Shdr
    a03240485cf57 scripts/sorttable: Add helper functions for Elf_Ehdr
    1dd7def1ae877 scripts/sorttable: Convert Elf_Sym MACRO over to a union
    1afca399cc4d5 scripts/sorttable: Replace Elf_Shdr Macro with a union
    7ce5ed40d976e scripts/sorttable: Convert Elf_Ehdr to union
    e6bb2482b5b17 scripts/sorttable: Make compare_extable() into two functions
    d5e14532a8b86 scripts/sorttable: Have the ORC code use the _r() functions to read
    4f2fba2de0620 scripts/sorttable: Remove unneeded Elf_Rel
    c13a4c1fd1b74 scripts/sorttable: Remove unused write functions
    d9e259e63b36b scripts/sorttable: Remove unused macro defines
    030fe3e9d8abd fuse: re-lock request before replacing page cache folio
    fe95e90559bce slimbus: qcom-ngd-ctrl: Balance pm_runtime enablement for NGD
    e65ae7c948640 slimbus: qcom-ngd-ctrl: Fix up platform_driver registration
    5d1ae4e17a3ec rxrpc: Fix the ACK parser to extract the SACK table for parsing
    09c9b92c20104 net: phonet: free phonet_device after RCU grace period
    210ac54bdd8df phonet: Pass net and ifindex to phonet_address_notify().
    cf30797ea8cea phonet: Pass ifindex to fill_addr().
    6707d7e0b7174 locking/rtmutex: Skip remove_waiter() when waiter is not enqueued
    67fde21e4522e Drivers: hv: vmbus: Improve the logic of reserving fb_mmio on Gen2 VMs
    5df8310a41391 hv: utils: handle and propagate errors in kvp_register
    23e5a1b9ae954 mptcp: pm: fix extra_subflows underflow on userspace PM subflow creation
    4830fb44d12f5 netfilter: nf_tables: always walk all pending catchall elements
    7109d69bec6ed dlm: prevent NPD when writing a positive value to event_done
    c84860dac7af7 regulator: core: fix locking in regulator_resolve_supply() error path
    c2716362ec335 ring-buffer: Remove ring_buffer_read_prepare_sync()
    f155b8f1c9576 selftests/bpf: Update comments find_equal_scalars->sync_linked_regs
    8e655dbef4c9e selftests/bpf: Tests for per-insn sync_linked_regs() precision tracking
    78da8e1be90c5 bpf: Remove mark_precise_scalar_ids()
    0252b9d262222 bpf: Track equal scalars history on per-instruction level
    b741c9c6ef59f af_unix: Reject SIOCATMARK on non-stream sockets
    f68f34033d403 selftests/bpf: Add test to ensure kprobe_multi is not sleepable
    89327ed787746 bpf: Reject sleepable kprobe_multi programs at attach time
    eb045714bc6a2 agp/amd64: Fix broken error propagation in agp_amd64_probe()
    1078ae8175777 net: qualcomm: rmnet: fix endpoint use-after-free in rmnet_dellink()
    1c4ffe6b4f043 i2c: stub: Reject I2C block transfers with invalid length
    c19b360fa10c5 RDMA/bnxt_re: zero shared page before exposing to userspace
    218c24bfc3334 KVM: VMX: Update SVI during runtime APICv activation
    de1ba6c93868f ARM: fix branch predictor hardening
    1f7cc85046f1c ARM: fix hash_name() fault
    98b209cd62ef9 ARM: allow __do_kernel_fault() to report execution of memory faults
    89b37df6f805f ARM: group is_permission_fault() with is_translation_fault()
    5d95f6b267f3d debugobjects: Dont call fill_pool() in early boot hardirq context
    a3383df76f0d7 debugobjects: Do not fill_pool() if pi_blocked_on
    c8cd2ca8f085c debugobjects: Use LD_WAIT_CONFIG instead of LD_WAIT_SLEEP
    0d2a64411b097 debugobjects: Allow to refill the pool before SYSTEM_SCHEDULING
    40fe77146137b batman-adv: tt: prevent TVLV entry number overflow
    abb069fdf51a9 drm/v3d: Skip CSD when it has zeroed workgroups
    756724002c5a6 drm/v3d: Store the active job inside the queue's state
    f4b6b4af7ef06 ip6_vti: set netns_immutable on the fallback device.
    499c6b43a79dd drm/amd/display: Bound VBIOS record-chain walk loops
    b685d6ef6f07a net/sched: fix pedit partial COW leading to page cache corruption
    8bef2f840b43e fuse: limit FUSE_NOTIFY_RETRIEVE to uptodate folios

(From OE-Core rev: 6eeed0e2fee69c3c13f3b20f419d0ca25c9d8def)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
2026-07-30 13:21:15 +01:00
Bruce Ashfield
9852ff8b42 linux-yocto/6.6: update to v6.6.143
Updating linux-yocto/6.6 to the latest korg -stable release that comprises
the following commits:

    d1cfde2d5d15 Linux 6.6.143
    726abf975668 netfilter: require Ethernet MAC header before using eth_hdr()
    05bd072e97fe x86/CPU/AMD: Rename init_amd_zn() to init_amd_zen_common()
    4a83b435acf8 x86/CPU/AMD: Call the spectral chicken in the Zen2 init function
    5e0c93dca433 x86/CPU/AMD: Move the Zen3 BTC_NO detection to the Zen3 init function
    217f53b5e3c6 Revert "selftest/ptp: update ptp selftest to exercise the gettimex options"
    189c7e57826f mptcp: fix missing wakeups in edge scenarios
    c12e67a0ef93 mptcp: add-addr: always drop other suboptions
    1111ab94fd49 arm64: errata: Mitigate TLBI errata on Microsoft Azure Cobalt 100 CPU
    e5b6bdc3d8b8 arm64: errata: Mitigate TLBI errata on NVIDIA Olympus CPU
    e717a4d08779 arm64: errata: Mitigate TLBI errata on various Arm CPUs
    baf63e6a6435 arm64: cputype: Add C1-Premium definitions
    1e4a5225b4d3 arm64: cputype: Add C1-Ultra definitions
    f58e88f8653f arm64: cputype: Add NVIDIA Olympus definitions
    2602d4b53925 ALSA: hda/hdmi: Add quirk for TUXEDO IBS14G6
    9aa7edc1347b ipvs: skip ipv6 extension headers for csum checks
    2de5c8eea0a9 net: bonding: fix use-after-free in bond_xmit_broadcast()
    8fe0231adebe RDMA/umem: Fix truncation for block sizes >= 4G
    3faebd387ed1 RDMA: Move DMA block iterator logic into dedicated files
    a7c6be320c0e RDMA/umem: fix kernel-doc warnings
    09dc18894148 RDMA: During rereg_mr ensure that REREG_ACCESS is compatible
    09b8a7aa5a34 hv_netvsc: use kmap_local_page in netvsc_copy_to_send_buf
    77b73b54801a mm/memory-failure: fix hugetlb_lock AA deadlock in get_huge_page_for_hwpoison
    252bb328b36f mm/memory-failure: fix missing ->mf_stats count in hugetlb poison
    05f1ad6d62a3 mm/hugetlb: rename folio_putback_active_hugetlb() to folio_putback_hugetlb()
    471f5d78ea4b mm/migrate: don't call folio_putback_active_hugetlb() on dst hugetlb folio
    411fa5113da0 mm/hugetlb: rename isolate_hugetlb() to folio_isolate_hugetlb()
    eb8a8124484d netfilter: nft_fib: fix stale stack leak via the OIFNAME register
    46582b0fd381 usb: typec: ucsi: Don't update power_supply on power role change if not connected
    c91ea13375f7 serial: qcom_geni: fix kfifo underflow when flush precedes DMA completion IRQ
    d3e9b79aa794 scsi: target: iscsi: Fix CRC overread and double-free in iscsit_handle_text_cmd()
    b4621e5ef634 thunderbolt: property: Cap recursion depth in __tb_property_parse_dir()
    078c11224c7f usb: typec: ucsi: Check if power role change actually happened before handling
    e15c414092b3 usb: gadget: uvc: hold opts->lock across XU walks in uvc_function_bind
    5542d2c35930 usb: dwc3: xilinx: fix error handling in zynqmp init error paths
    b987f380620b usb: musb: omap2430: Fix use-after-free in omap2430_probe()
    a9c22e0f93ba tty: serial: samsung: Remove redundant port lock acquisition in rx helpers
    8809b7941c4a tty: serial: samsung: use u32 for register interactions
    33da47d4a003 serial: samsung_tty: Use port lock wrappers
    1cdb07d8946c ALSA: firewire-motu: Protect register DSP event queue positions
    b3f4f82d1315 memfd: deny writeable mappings when implying SEAL_WRITE
    2619d9d2aac3 iio: dac: ad5686: fix ref bit initialization for single-channel parts
    f8dcef820161 usb: cdns3: plat: fix leaked usb2_phy initialization on usb3_phy acquisition failure
    e85bc501947f iio: chemical: scd30: fix division by zero in write_raw
    73d8bf36f217 iio: chemical: scd30: Use guard(mutex) to allow early returns
    86298fb6829c iio: gyro: adis16260: fix division by zero in write_raw
    b35e71b7cc7a mptcp: handle first subflow closing consistently
    792fa6eee73e Bluetooth: hci_qca: Convert timeout from jiffies to ms
    c3fc351d256c Bluetooth: hci_qca: Migrate to serdev specific shutdown function
    123724bb6ee5 serdev: Provide a bustype shutdown function
    ca2f48b9c03d serdev: make serdev_bus_type const
    c0e37017a452 mm/damon/sysfs-schemes: delete tried region in regions_rmdirs()
    e7af1b15c884 mm/memory: fix spurious warning when unmapping device-private/exclusive pages
    fe76413677e7 mptcp: do not drop partial packets
    293b0e63136b mptcp: introduce the mptcp_init_skb helper
    681d14ef45b1 iio: adc: npcm: fix unbalanced clk_disable_unprepare()
    4ed1366f9f90 iio: adc: npcm: Convert to platform remove callback returning void
    d766a49d9b55 arm64: tlb: Flush walk cache when unsharing PMD tables
    4c29603498b0 octeontx2-pf: avoid double free of pool->stack on AQ init failure
    26342087fac9 af_unix: Fix UAF read of tail->len in unix_stream_data_wait()
    db9389042db4 af_unix: Cache state->msg in unix_stream_read_generic().
    c2c764b00c0f rxrpc: Fix RESPONSE packet verification to extract skb to a linear buffer
    a05bf6d9e621 rxrpc: Fix DATA decrypt vs splice() by copying data to buffer in recvmsg
    7713f4aafb57 net: hsr: defer node table free until after RCU readers
    1dca7e491f07 ipv6: ioam: add NULL check for idev in ipv6_hop_ioam()
    dcc42d701529 ipv6/addrconf: annotate data-races around devconf fields (II)
    ada8dcfd5298 mptcp: pm: fix ADD_ADDR timer infinite retry on option space insufficient
    04318e252c58 ice: fix VF queue configuration with low MTU values
    d37a60086ee7 selftests: mptcp: drop nanoseconds width specifier
    00ffe9893f4b mptcp: reset rcv wnd on disconnect
    1521fecf44fc mptcp: cleanup fallback dummy mapping generation
    78f9d747f386 mptcp: use plain bool instead of custom binary enum
    e043017ac429 octeontx2-af: CGX: add bounds check to cgx_speed_mbps index
    1132ca7a1ba8 octeontx2-af: replace deprecated strncpy with strscpy
    557edaf01062 platform/x86/intel/vsec: Fix enable_cnt imbalance on PCIe error recovery
    969bc6370334 smb: client: require net admin for CIFS SWN netlink
    e19eff331240 genetlink: Use internal flags for multicast groups
    14897ef9341c cgroup/cpuset: Reset DL migration state on can_attach() failure
    850452af77f5 ksmbd: fix OOB write in QUERY_INFO for compound requests
    6d8f52f3f80a fbdev/vt8500lcdfb: Initialize fb_ops with fbdev macros
    666bd0598f37 ipmi:ssif: NULL thread on error
    318a0403b270 ipmi:ssif: Remove unnecessary indention
    ae9d4caf6f13 mm/huge_memory: update file PMD counter before folio_put()
    310a8cc74612 soc: qcom: ice: Fix race between qcom_ice_probe() and of_qcom_ice_get()
    428a33573dcb mm/hugetlb: avoid false positive lockdep assertion
    000e8f55fbc7 driver core: reject devices with unregistered buses
    b5fa9e32fb67 fs/fcntl: fix SOFTIRQ-unsafe lock order in fasync signaling
    201151e120f0 drm/amd/display: Use krealloc_array() in dal_vector_reserve()
    7fc4fab4acc3 drm/amd/display: Fix NULL deref and buffer over-read in SDP debugfs
    4d1c3c26c2ab drm/amd/display: Clamp VBIOS HDMI retimer register count to array size
    79e0273272a0 drm/amd/display: Clamp HDMI HDCP2 rx_id_list read to buffer size
    3fe2c6af3f51 drm/amdgpu: restart the CS if some parts of the VM are still invalidated
    16dad1fb0d78 drm/amdkfd: Fix buffer overflow in SDMA queue checkpoint/restore on GFX11
    62bd09e23a23 drm/amdkfd: fix NULL dereference in get_queue_ids()
    d54a221b0f3c slimbus: qcom-ngd-ctrl: Avoid ABBA on tx_lock/ctrl->lock
    9f4a76c7e9fa slimbus: qcom-ngd-ctrl: fix OF node refcount
    fc261397295b thunderbolt: Limit XDomain response copy to actual frame size
    0dd61ba03d05 thunderbolt: Validate XDomain request packet size before type cast
    5db10c8ad8c0 thunderbolt: Clamp XDomain response data copy to allocation size
    4d0b1524caad thunderbolt: Bound root directory content to block size
    5f56bc6bddff thunderbolt: Reject zero-length property entries in validator
    7dd9a42b044a sctp: stream: fully roll back denied add-stream state
    e97c2a535e23 sctp: diag: reject stale associations in dump_one path
    7e60d675288d mmc: sdhci: add signal voltage switch in sdhci_resume_host
    b46521877611 mmc: renesas_sdhi: Add OF entry for RZ/G2H SoC
    6dc14b9b431e mmc: litex_mmc: Set mandatory idle clocks before CMD0
    30e727657185 mmc: core: Fix host controller programming for fixed driver type
    8d6e1dd3ad13 mm/hugetlb: restore reservation on error in hugetlb folio copy paths
    f0ca9c7f44a9 octeontx2-af: fix memory leak in rvu_setup_hw_resources()
    033d498b0f47 nvmem: layouts: onie-tlv: fix hang on unknown types
    e7cf30aa5f1f net: rds: clear i_sends on setup unwind
    1ccad3ee7998 net: mv643xx: fix OF node refcount
    a629418d463f net: bonding: fix NULL pointer dereference in bond_do_ioctl()
    c090df5be6bc net/mlx5: Reorder completion before putting command entry in cmd_work_handler
    8fb4a23df5b7 misc: fastrpc: Fix NULL pointer dereference in rpmsg callback
    d3e26df2e8eb misc: fastrpc: fix DMA address corruption due to find_vma misuse
    8b080c891831 misc: fastrpc: fix use-after-free race in fastrpc_map_create
    df08fadcf0e5 misc: fastrpc: fix use-after-free of fastrpc_user in workqueue context
    6560be3f6a5b ipc/shm: serialize orphan cleanup with shm_nattch updates
    7a395a147f06 Input: atkbd - skip deactivate for HONOR BCC-N's internal keyboard
    81d60181ed55 Input: atkbd - add DMI quirk for Lenovo Yoga Air 14 (83QK)
    2d175d6aae9c i2c: tegra: Fix NOIRQ suspend/resume
    5bebff5e8492 i2c: stm32f7: fix timing computation ignoring i2c-analog-filter
    7107627b8b35 i2c: qcom-cci: Fix NULL pointer dereference in cci_remove()
    dd92773d4d9c fuse: reject fuse_notify() pagecache ops on directories
    254c469a404a pidfd: refuse access to tasks that have started exiting harder
    0e823ca0e739 inet: frags: fix use-after-free caused by the fqdir_pre_exit() flush
    c1234229399f IB/isert: Reject login PDUs shorter than ISER_HEADERS_LEN
    1a418ad0e5e5 bnxt_en: Fix NULL pointer dereference
    6f5285a6054a ASoC: fsl_sai: Fix 32 slots TDM broken by integer shift UB in xMR write
    dfd853197615 vsock/vmci: fix sk_ack_backlog leak on failed handshake
    688fcac7054a wifi: nl80211: reject oversized EMA RNR lists
    eb13ab2f66e2 selftests: mptcp: add test for extra_subflows underflow on userspace PM
    026c4a70e2a9 mptcp: sockopt: check timestamping ret value
    b1fd13074f22 mptcp: allow subflow rcv wnd to shrink
    907ac6b1658e mptcp: close TOCTOU race while computing rcv_wnd
    f2c9012fc115 mptcp: fix retransmission loop when csum is enabled
    c2e3aadc8fef ARM: 9475/1: entry: use byte load for KASAN VMAP stack shadow
    b6290cc96dc8 ARM: 9474/1: io: avoid KASAN instrumentation of raw halfword I/O
    c35c0763af34 ARM: socfpga: Fix OF node refcount leak in SMP setup
    1b585673a224 udp: clear skb->dev before running a sockmap verdict
    0c2821665ff7 zram: fix use-after-free in zram_bvec_write_partial()
    0d64bc200ebe RDMA/srp: bound SRP_RSP sense copy by the received length
    5c97ae9382de mm/damon/ops-common: call folio_test_lru() after folio_get()
    5242b5f3c77f drm/amd/display: Reject gpio_bitshift >= 32 in bios_parser_get_gpio_pin_info()
    898bd0ccfed7 drm/virtio: fix dma_fence refcount leak on error in virtio_gpu_dma_fence_wait()
    e2331730175f ALSA: timer: Fix UAF at snd_timer_user_params()
    a1288cd700f7 USB: serial: kl5kusb105: fix bulk-out buffer overflow
    f71f8f99a9cd USB: serial: option: add usb-id for Dell Wireless DW5826e-m
    4cb722747ed2 USB: serial: io_ti: fix heap overflow in build_i2c_fw_hdr()
    d92f17af7097 USB: serial: io_ti: fix heap overflow in get_manuf_info()
    aa82a078f70f xfrm: espintcp: do not reuse an in-progress partial send
    0da2e073f9cb ksmbd: fix use-after-free of a deferred file_lock on double SMB2_CANCEL
    07c33be968d9 drm/i915/gem: Fix phys BO pread/pwrite with offset
    033d39e41fc3 KVM: Don't WARN if memory is dirtied without a vCPU when the VM is dying
    88520b2fecc4 mmc: litex_mmc: Use DIV_ROUND_UP for more accurate clock calculation
    1e927a468500 tracing/probes: Point the error offset correctly for eprobe argument error
    214a2042b16b Bluetooth: L2CAP: reject BR/EDR signaling packets over MTUsig
    1338ee049a89 Bluetooth: hci_sync: reject oversized Broadcast Announcement prepend
    8767fe4079af netfilter: nft_tunnel: fix use-after-free on object destroy
    e0ce103e89d6 drm/vc4: fix krealloc() memory leak
    ed3e134700a2 drm/virtio: Fix driver removal with disabled KMS
    c5f438dd2fd8 clk: qcom: dispcc-sc8280xp: Don't park mdp_clk_src at registration time
    5e1c1d22268a netfilter: ctnetlink: ensure safe access to master conntrack
    5f82b02b4059 ipv6: Fix a potential NPD in cleanup_prefix_route()
    ccdd7f1949bb net: mvpp2: build skb from XDP-adjusted data on XDP_PASS
    580f92f27cb8 net: mvpp2: refill RX buffers before XDP or skb use
    26c0986cb613 net: mvpp2: Add metadata support for xdp mode
    3b8b0c3631b1 net: mvpp2: limit XDP frame size to the RX buffer
    bede0f481b91 net: mvpp2: sync RX data at the hardware packet offset
    cd513e43b4b2 netfilter: nft_exthdr: fix register tracking for F_PRESENT flag
    8a81e336da68 netfilter: nf_log: validate MAC header was set before dumping it
    a0d16941adf3 netfilter: x_tables: avoid leaking percpu counter pointers
    29d8cc44bbdf netfilter: nf_conntrack: destroy stale expectfn expectations on unregister
    eb7e77342e3e rds: mark snapshot pages dirty in rds_info_getsockopt()
    f513f308cc4b ip6_vti: fix incorrect tunnel matching in vti6_tnl_lookup()
    0f22412a2f4f net/rds: fix NULL deref in rds_ib_send_cqe_handler() on masked atomic completion
    b903e9b5629e net: guard timestamp cmsgs to real error queue skbs
    8ce96f118264 sctp: fix uninit-value in __sctp_rcv_asconf_lookup()
    22f4ee66614e r8152: handle the return value of usb_reset_device()
    25fdf5369853 net: openvswitch: fix possible kfree_skb of ERR_PTR
    0bfa7bba1f41 ipv6: sit: reload inner IPv6 header after GSO offloads
    41781f278930 net/mlx5: Fix slab-out-of-bounds in mlx5_query_nic_vport_mac_list
    2047c2aa0963 net: qrtr: fix refcount saturation and potential UAF in qrtr_port_remove
    12fb84dc4dc8 net: phy: clean the sfp upstream if phy probing fails
    838f411b8ef8 net/mlx4: avoid GCC 10 __bad_copy_from() false positive
    ecfe9171b26a tcp: restrict SO_ATTACH_FILTER to priv users
    10def23b67b4 ASoC: wm_adsp: Fix NULL dereference when removing firmware controls
    7db09011ce62 gpio: mvebu: fix NULL pointer dereference in suspend/resume
    07a18f5c90dd netlabel: validate unlabeled address and mask attribute lengths
    42827d03f800 xfrm: policy: fix use-after-free on inexact bin in xfrm_policy_bysel_ctx()
    f4e4b98cee82 iomap: don't revert iov_iter on partially completed buffered writes
    fed65bc9de8e arm64: tlb: Optimize ARM64_WORKAROUND_REPEAT_TLBI
    b7d3add1884c arm64: tlb: Allow XZR argument to TLBI ops
    523bc49979b9 KVM: arm64: Remove VPIPT I-cache handling
    d30aac0fa00c tap: free page on error paths in tap_get_user_xdp()
    ceafb893b12f net: skbuff: fix missing zerocopy reference in pskb_carve helpers
    9eaa4e8d5561 tools/rv: Fix cleanup after failed trace setup
    7fce959e9be3 usb: gadget: u_ether: Fix NULL pointer deref in eth_get_drvinfo
    36c41e9724c9 usb: gadget: f_ncm: Fix net_device lifecycle with device_move
    d68b621bb5a4 ALSA: PCM: Fix wait queue list corruption in snd_pcm_drain() on linked streams
    c12c4cae0cd7 time: Fix off-by-one in settimeofday() usec validation
    f4aae11abb44 signal: clear JOBCTL_PENDING_MASK for caller in zap_other_threads()
    6e39863cefe4 ipmi: Fix rcu_read_unlock to srcu_read_unlock in handle_read_event_rsp
    2afc9e684dc7 sctp: purge outqueue on stale COOKIE-ECHO handling
    6d6e42e8e17f net/802/mrp: fix vector attribute parsing in mrp_pdu_parse_vecattr
    1a827b95e62b ieee802154: 6lowpan: only accept IPv6 packets in lowpan_xmit()
    9db4dd019a6b vxlan: vnifilter: fix spurious notification on VNI update
    5a7ad529fd53 vxlan: vnifilter: send notification on VNI add
    e4e7428349d9 octeontx2-af: npc: Fix CPT channel mask in npc_install_flow
    72775977e89c net: ethernet: mtk_eth_soc: Fix use-after-free in metadata dst teardown
    cecdc6574a82 ptp: vclock: Switch from RCU to SRCU
    8ff85dbabbbf ipv4: restrict IPOPT_SSRR and IPOPT_LSRR options
    ba760c38b38b Bluetooth: MGMT: Fix backward compatibility with userspace
    0622e527a31d Bluetooth: fix memory leak in error path of hci_alloc_dev()
    691f14b6a48b Bluetooth: bnep: reject short frames before parsing
    10e90715e68f Bluetooth: bnep: fix incorrect length parsing in bnep_rx_frame() extension handling
    98377e6b1a1a Bluetooth: RFCOMM: validate skb length in MCC handlers
    74c08e4db35a Bluetooth: MGMT: validate advertising TLV before type checks
    de31973ef00e Bluetooth: RFCOMM: hold listener socket in rfcomm_connect_ind()
    28a6a3762796 net: fec: fix pinctrl default state restore order on resume
    caeb42f28f00 net: lan743x: permit VLAN-tagged packets up to configured MTU
    74e02121be1d net: garp: fix unsigned integer underflow in garp_pdu_parse_attr
    271355c2ef61 hsr: Remove WARN_ONCE() in hsr_addr_is_self().
    91cdbb9b308f net: Annotate sk->sk_write_space() for UDP SOCKMAP.
    daf5a9eef894 pcnet32: stop holding device spin lock during napi_complete_done
    e732c4444bcf drm/imx: Fix three kernel-doc warnings in dcss-scaler.c
    06ce6fc106b1 6lowpan: fix off-by-one in multicast context address compression
    8b136f18ac4b net/sched: act_api: use RCU with deferred freeing for action lifecycle
    b4892561552d dm cache policy smq: check allocation under invalidate lock
    afd64b59c3de netfilter: bridge: make ebt_snat ARP rewrite writable
    af80f78ce984 netfilter: nft_ct: bail out on template ct in get eval
    7c34f9130529 netfilter: conntrack_irc: fix possible out-of-bounds read
    0f8ba5e4c53d netfilter: synproxy: add mutex to guard hook reference counting
    c6376b9b1b4d ipvs: clear the svc scheduler ptr early on edit
    8122abd4fd92 netfilter: xt_NFQUEUE: prefer raw_smp_processor_id
    945a86b21b40 ksmbd: fix NULL-deref of opinfo->conn in oplock/lease break notifiers
    9a0dc9279d09 tee: optee: prevent use-after-free when the client exits before the supplicant
    5d27d2ffe487 net/smc: fix sleep-inside-lock in __smc_setsockopt() causing local DoS
    2a613bf49702 ipv6: mcast: Fix use-after-free when processing MLD queries
    aa6ef7340169 i2c: dev: prevent integer overflow in I2C_TIMEOUT ioctl
    067579d5cf8c Disable -Wattribute-alias for clang-23 and newer
    b26849cffaa7 hwmon: (pmbus/core) Protect regulator operations with mutex
    d859e53596d1 RDMA/rxe: Fix "trying to register non-static key in rxe_qp_do_cleanup" bug
    7502c1cf303b Bluetooth: hci_conn: fix potential UAF in set_cig_params_sync
    90dbad14b109 USB: serial: mct_u232: fix memory corruption with small endpoint
    f8b8f1d4bb76 bpf: Free reuseport cBPF prog after RCU grace period.
    37f488be2a82 usb: core: Fix SuperSpeed root hub wMaxPacketSize
    ff3c2b623bfa HID: core: Fix size_t specifier in hid_report_raw_event()
    9e36568e67f8 HID: pass the buffer size to hid_report_raw_event
    20a816422e98 HID: core: Add printk_ratelimited variants to hid_warn() etc
    bb2040484f90 serial: zs: Convert to use a platform device
    c9e78361fe92 serial: dz: Convert to use a platform device
    5fc2943ad6a1 serial: dz: Fix bootconsole handover lockup
    bef9e8bdbc60 xhci: tegra: Fix ghost USB device on dual-role port unplug
    8a65db5edd7b USB: serial: digi_acceleport: fix memory corruption with small endpoints
    fbf718d5afe2 landlock: Fix handling of disconnected directories
    0e96cd314c0d x86/kexec: Disable KCOV instrumentation after load_segments()
    a55618c0f4ce Bluetooth: hci_sync: fix UAF in hci_le_create_cis_sync
    4bcaa59f403d USB: serial: cypress_m8: fix memory corruption with small endpoint
    36f07474f2b9 serial: zs: Switch to using channel reset
    633a33fe1a34 serial: zs: Fix bootconsole handover lockup
    6f22119afe53 serial: dz: Fix bootconsole message clobbering at chip reset
    a8bd09d3d843 drm/amdkfd: Check for pdd drm file first in CRIU restore path
    4e5f808b4541 drm/amdkfd: fix a vulnerability of integer overflow in kfd debugger
    6495cc09f7e6 drm/amdkfd: fix NULL pointer bug in svm_range_set_attr
    c33322ef3ce5 serial: fsl_lpuart: fix rx buffer and DMA map leaks in start_rx_dma
    ea7bdbee9fc3 serial: zs: Fix swapped RI/DSR modem line transition counting
    4860f9821baf serial: sh-sci: fix memory region release in error path
    70982b7ac673 serial: qcom-geni: fix UART_RX_PAR_EN bit position
    3c29f8af029b serial: altera_jtaguart: handle uart_add_one_port() failures
    a1b9535768ed drm/amd/pm/si: Disregard vblank time when no displays are connected
    28b22dbaf407 drm/i915: Fix potential UAF in TTM object purge
    049a6b474823 drm/hyperv: validate VMBus packet size in receive callback
    1fb565b77b8f drm/hyperv: validate resolution_count and fix WIN8 fallback
    edd06675a023 scsi: target: iscsi: Validate CHAP_R length before base64 decode
    4e9f0c4a645c scsi: target: iscsi: Bound iscsi_encode_text_output() appends to rsp_buf
    163bd704d751 scsi: scsi_transport_fc: Widen FPIN pname walker counter to u32
    0e3c6e5a8fc1 scsi: fcoe: Reject FIP descriptors with zero fip_dlen in CVL walker
    5506c825f14d thunderbolt: property: Reject dir_len < 4 to prevent size_t underflow
    8d4a758b407a thunderbolt: property: Reject u32 wrap in tb_property_entry_valid()
    e835bf9a055f usb: gadget: f_fs: copy only received bytes on short ep0 read
    a183b47fee46 usb: gadget: dummy_hcd: Reject hub port requests for non-existent ports
    046870ff6b6f usb: gadget: composite: fix integer underflow in WebUSB GET_URL handling
    5d39924ae38c usb: gadget: f_hid: fix device reference leak in hidg_alloc()
    085652fda7f3 usb: gadget: net2280: Fix double free in probe error path
    70bb9a2661d3 USB: serial: mct_u232: fix missing interrupt-in transfer sanity check
    be3a1ed4ae51 USB: serial: mxuport: fix memory corruption with small endpoint
    0bde5431037a USB: serial: keyspan: fix missing indat transfer sanity check
    be50533fe706 USB: serial: cypress_m8: validate interrupt packet headers
    ffb739a49186 USB: serial: belkin_sa: validate interrupt status length
    37a2ac9f5125 USB: serial: option: add missing RSVD(5) flag for Rolling RW135R-GL
    5a0e65d56ffd USB: serial: option: add MeiG SRM813Q
    17587492179c usb: usbtmc: reject interrupt endpoints with small wMaxPacketSize
    5de7df75ef3a usb: usbtmc: check URB actual_length for interrupt-IN notifications
    a0638db2340e usbip: vudc: Fix use after free bug in vudc_remove due to race condition
    02c76e026c06 usb: storage: Add quirks for PNY Elite Portable SSD
    aec4d38ac605 USB: quirks: add NO_LPM for Lenovo ThinkPad USB-C Dock Gen2 hub controllers
    e21f5abf80ad usb: core: Fix up Interrupt IN endpoints with bogus wBytesPerInterval
    028cc2555eca usb: chipidea: core: convert ci_role_switch to local variable
    6dd5c0ea139b tty: serial: pch_uart: add check for dma_alloc_coherent()
    68f603bb8622 counter: Fix refcount leak in counter_alloc() error path
    9fa854ea4318 comedi: comedi_test: Fix limiting of convert_arg in waveform_ai_cmdtest()
    422af0f9ce0c comedi: comedi_test: fix check for valid scan_begin_src in waveform_ai_cmdtest()
    2ad3397f3cc5 Input: synaptics - add LEN2058 to SMBus passlist for ThinkPad E490
    e9b62996ba53 Input: atmel_mxt_ts - fix boundary check in mxt_prepare_cfg_mem
    0fe08c5776a7 ksmbd: OOB read regression in smb_check_perm_dacl() ACE-walk loops
    ba451cf21f1d Input: xpad - add support for ASUS ROG RAIKIRI II
    6e6de3eba8e4 Input: xpad - add "Nova 2 Lite" from GameSir
    322e48187e02 xfrm: esp: restore combined single-frag length gate
    d780c61bd2ef ASoC: qcom: q6asm-dai: do not set stream state in event and trigger callbacks
    ed4e2ff1ddd1 ASoC: qcom: q6asm-dai: close stream only when running
    2bb6d82b586e netfilter: conntrack: tcp: do not force CLOSE on invalid-seq RST without direction check
    32aa292fbcb9 xfrm: ah: use skb_to_full_sk in async output callbacks
    00f2c451e57d xfrm: route MIGRATE notifications to caller's netns
    c4cc6b3b0013 nfc: hci: fix out-of-bounds read in HCP header parsing
    1552b979a0b6 iommu, debugobjects: avoid gcc-16.1 section mismatch warnings
    ed598de9f615 HID: wacom: Fix OOB write in wacom_hid_set_device_mode()
    f1e89a943ee5 ip6: vti: Use ip6_tnl.net in vti6_changelink().
    48ce101cd630 xfrm: input: hold netns during deferred transport reinjection
    a29768d56eb3 ipv6: validate extension header length before copying to cmsg
    1acfb7d9c6fc ip6: vti: Use ip6_tnl.net in vti6_siocdevprivate().
    12d957979e4a ipv6: exthdrs: refresh nh after handling HAO option
    f21a9285147a ASoC: qcom: q6asm-dai: fix error handling in prepare and set_params
    bddaa4dfc7f3 ipv6: exthdrs: refresh nh pointer after ipv6_hop_jumbo()
    679e13a65e68 macsec: fix replay protection at XPN lower-PN wrap
    96b72672ce84 bpf: sockmap: fix tail fragment offset in bpf_msg_push_data
    48b0aa9c08a3 Input: elan_i2c - validate firmware size before use
    0584af4fe40f usb: dwc2: Fix use after free in debug code
    c28bfafa9d70 usb: cdns3: plat: fix unbalanced pm_runtime_forbid() call permanently leaks the runtime PM usage counter across bind/unbind cycles
    96291794d162 usb: cdns3: gadget: fix request skipping after clearing halt
    9a3860454bdf USB: serial: omninet: fix memory corruption with small endpoint
    29783e6b6ec0 iio: buffer: hw-consumer: fix use-after-free in error path
    d291f76e4231 iio: light: cm3323: fix reg_conf not being initialized correctly
    d534936cf3ac iio: magnetometer: st_magn: fix default DRDY pin selection for LIS2MDL
    c43741113cd6 iio: temperature: tsys01: fix broken PROM checksum validation
    b5d9befff543 iio: ssp_sensors: cancel delayed work_refresh on remove
    31bbd4b87dd6 iio: gyro: itg3200: fix i2c read into the wrong stack location
    d434a6abd101 iio: adc: viperboard: Fix error handling in vprbrd_iio_read_raw
    1c375f2c4a7a iio: dac: ad5686: acquire lock when doing powerdown control
    99d8feee7560 iio: dac: ad5686: fix input raw value check
    9a8fca2af3aa iio: dac: max5821: fix return value check in powerdown sync
    baff1f00d8b5 iio: adc: xilinx-xadc: Fix sequencer mode in postdisable for dual mux
    7b9dcbe89d7a wireguard: send: append trailer after expanding head
    a452ca80b7ad KVM: SVM: Flush the current TLB when transitioning from xAVIC => x2AVIC
    c881af73ae98 KVM: arm64: PMU: Preserve AArch32 counter low bits
    ecc9635e7501 USB: cdc-acm: Fix bit overlap and move quirk definitions to header
    15b1723c1472 parport: Fix race between port and client registration
    bcfb4833cd40 Input: xpad - fix out-of-bounds access for Share button
    35f68f36d988 Bluetooth: ISO: serialize iso_sock_clear_timer with socket lock
    119fb6f80c44 Bluetooth: ISO: fix UAF in iso_recv_frame
    d313683d6ccd Bluetooth: HIDP: fix missing length checks in hidp_input_report()
    63cd225cc13d Bluetooth: L2CAP: fix chan ref leak in l2cap_chan_timeout() on !conn
    89dec9204171 Bluetooth: L2CAP: use chan timer to close channels in cleanup_listen()
    8776032fe989 auxdisplay: line-display: fix OOB read on zero-length message_store()
    157ce2c6836c ipc: limit next_id allocation to the valid ID range
    7c58c55a2a16 hpfs: fix a crash if hpfs_map_dnode_bitmap fails
    dcd2b02b095f Bluetooth: btusb: Allow firmware re-download when version matches
    4c52e31e9ea6 HID: quirks: Add ALWAYS_POLL quirk for SIGMACHIP USB mouse
    0cd7b3a15a49 Input: ims-pcu - fix usb_free_coherent() size in ims_pcu_buffers_free()
    060fca8e0983 media: rc: igorplugusb: fix control request setup packet
    9b3145b3001f USB: serial: safe_serial: fix memory corruption with small endpoint
    156b6f0aec61 usb: typec: ucsi: validate connector number in ucsi_connector_change()
    0af00f1459f5 usb: typec: tcpm/tcpci_maxim: validate header NDO against RX_BYTE_CNT
    5cd0e7ac4eef usb: typec: wcove: don't write past struct pd_message in wcove_read_rx_buffer()
    70e7045849e9 usb: typec: altmodes/displayport: validate count before reading Status Update VDO
    592cbdc644c6 usb: typec: ucsi: displayport: NAK DP_CMD_CONFIGURE without a payload VDO
    3f432b820306 usb: typec: ucsi: ccg: reject firmware images without a ':' record header
    d42ac0bfb6a1 iio: imu: st_lsm6dsx: fix stack leak in tagged FIFO buffer
    d1c9c79eb06e soc/tegra: pmc: Fix unsafe generic_handle_irq() call
    0bb1522d3081 hwmon: (pmbus/adm1266) serialize NVMEM blackbox read with pmbus_lock
    96852c116071 hwmon: (pmbus/adm1266) serialize GPIO PMBus accesses with pmbus_lock
    7e2476057950 x86/kexec: add a sanity check on previous kernel's ima kexec buffer
    566db3370f12 of/kexec: refactor ima_get_kexec_buffer() to use ima_validate_range()
    43308106a176 ima: verify the previous kernel's IMA buffer lies in addressable RAM
    e1d839efc1e4 phy: mscc: Use PHY_ID_MATCH_EXACT for VSC8584, VSC8582, VSC8575, VSC856X
    64858b76ec67 arm64: io: Extract user memory type in ioremap_prot()
    4356c4d85050 arm64: io: Rename ioremap_prot() to __ioremap_prot()
    05ff52238039 drm/i915/psr: Apply Intel DPCD workaround when SDP on prior line used
    45e27857b24e drm/dp: Add eDP 1.5 bit definition
    ac7045d3f6d3 drm/i915/psr: Read Intel DPCD workaround register
    28557e9deb23 drm/i915/psr: Add defininitions for INTEL_WA_REGISTER_CAPS DPCD register
    22ee4010866d inet: frags: flush pending skbs in fqdir_pre_exit()
    e0fc5427d6a8 inet: frags: add inet_frag_queue_flush()
    711ebd961190 drm, fbcon, vga_switcheroo: Avoid race condition in fbcon setup
    f707f53f9ff5 drm/fbdev-helper: Set and clear VGA switcheroo client from fb_info
    228cc232079d media: rc: ttusbir: fix inverted error logic
    a7becb58f6b8 media: rc: fix race between unregister and urb/irq callbacks
    3edb8ebbf79b mm/page_alloc: clear page->private in free_pages_prepare()
    a9393751ecf7 batman-adv: bla: avoid double decrement of bla.num_requests
    99f17d1cdb37 batman-adv: tt: avoid empty VLAN responses
    65a1e67339aa batman-adv: tt: fix TOCTOU race for reported vlans
    5bc2d50fb66b batman-adv: tp_meter: directly shut down timer on cleanup
    3c19cb8a84ef net: af_key: zero aligned sockaddr tail in PF_KEY exports
    100953b5011d batman-adv: tp_meter: avoid role confusion in tp_list
    cf12f8881832 batman-adv: iv: recover OGM scheduling after forward packet error
    13493b00dd1e batman-adv: tvlv: reject oversized TVLV packets
    2a8c9e865291 batman-adv: bla: avoid NULL-ptr deref for claim via dropped interface
    a5904f2c92b0 batman-adv: tt: reject oversized local TVLV buffers
    fcedc98bd03c batman-adv: tvlv: abort OGM send on tvlv append failure
    31dcb9711abd batman-adv: v: stop OGMv2 on disabled interface
    ae1ada0af162 perf: Fix dangling cgroup pointer in cpuctx
    1488367423a6 net: skbuff: fix pskb_carve leaking zcopy pages
    c87cd3cb3096 ipv6: fix possible infinite loop in fib6_select_path()
    279853aec9f5 ipv6: fix possible infinite loop in rt6_fill_node()
    634a9af8a26a sctp: fix race between sctp_wait_for_connect and peeloff
    95e414f83243 net: mana: Add NULL guards in teardown path to prevent panic on attach failure
    88403b42faa8 gpio: rockchip: convert bank->clk to devm_clk_get_enabled()
    6319b38fe69f Bluetooth: L2CAP: Fix possible crash on l2cap_ecred_conn_rsp
    cc2b4f749de0 Bluetooth: l2cap: clear chan->ident on ECRED reconfiguration success
    97e06791368c ipv6: rpl: fix hdrlen overflow in ipv6_rpl_srh_decompress()
    65674d2489a1 ethtool: eeprom: add more safeties to EEPROM Netlink fallback
    091b58d9a65b ethtool: eeprom: add missing ethnl_ops_begin() / _complete() during fallback
    f4d78a81f57d bonding: refuse to enslave CAN devices
    b06203ac5f12 Bluetooth: 6lowpan: check skb_clone() return value in send_mcast_pkt()
    5fe860af8630 ASoC: codecs: simple-mux: Fix enum control bounds check
    3127a884525d ksmbd: fix FSCTL permission bypass by adding a permission check for FSCTL_SET_SPARSE
    e917d0c69f01 tunnels: do not assume transport header in iptunnel_pmtud_check_icmp()
    dc3bfa050f87 vxlan: do not reuse cached ip_hdr() value after skb_tunnel_check_pmtu()
    76cd9398a047 tunnels: load network headers after skb_cow() in iptunnel_pmtud_build_icmp[v6]()
    5165922a8b5c gpio: mxc: fix irq_high handling
    a4b64f3e9c7b net: hsr: fix potential OOB access in supervision frame handling
    e9e1dbdee16e ASoC: Intel: bytcht_es8316: Fix MCLK leak on init errors
    8e59d4d0dcde ipv4: free net->ipv4.sysctl_local_reserved_ports after unregister_net_sysctl_table()
    15fb19af49f2 scsi: core: Run queues for all non-SDEV_DEL devices from scsi_run_host_queues
    cd691beafea0 net/iucv: fix locking in .getsockopt
    ed7a75831301 net/smc: Do not re-initialize smc hashtables
    e523bb6d1de3 net: netlink: don't set nsid on local notifications
    490a6ef32ab2 net: netlink: fix sending unassigned nsid after assigned one
    20f977a75333 vsock: keep poll shutdown state consistent
    60d9c0d6cdde tun: free page on build_skb failure in tun_xdp_one()
    5b34f9e4fe2f tun: free page on short-frame rejection in tun_xdp_one()
    b80ef316e978 netfilter: nf_tables: fix dst corruption in same register operation
    ce0712149e21 netfilter: bitwise: add support for doing AND, OR and XOR directly
    45cb4821021e netfilter: bitwise: rename some boolean operation functions
    a27cb7325a6c netfilter: ebtables: fix OOB read in compat_mtw_from_user
    21994d11461b netfilter: xt_cpu: prefer raw_smp_processor_id
    af2c22ccb1f6 netfilter: synproxy: refresh tcphdr after skb_ensure_writable
    d0cbeaa85b58 nfc: nxp-nci: i2c: use rising-edge IRQ on ACPI systems
    fccd685b32df xfrm: Check for underflow in xfrm_state_mtu
    ee2d1a8a1833 nfc: llcp: Fix use-after-free race in nfc_llcp_recv_cc()
    e00f50f86977 nfc: llcp: Fix use-after-free in llcp_sock_release()
    67cca9df4d17 net: cpsw_new: Fix potential unregister of netdev that has not been registered yet
    4f33d74ccf69 bcache: fix uninitialized closure object
    b4a659bae3b8 drm: Remove plane hsub/vsub alignment requirement for core helpers
    6c153d97c100 net/sched: sch_sfb: Replace direct dequeue call with peek and qdisc_dequeue_peeked
    963537a26fd8 net: mctp: ensure our nlmsg responses are initialised
    5df49f0579f7 net/sched: cls_fw: fix NULL dereference of "old" filters before change()
    d883312061cc Input: usbtouchscreen - clamp NEXIO data_len/x_len to URB buffer size

(From OE-Core rev: f716609076112c273dda2809694d6db10ff856e6)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
2026-07-30 13:21:15 +01:00
Yoann Congal
fe1d12b1a4 scripts/install-buildtools: Update to 5.0.19
Update to the 5.0.19 release of the 5.0 series for buildtools

(From OE-Core rev: 250d7a18a7a1478f4bce0be8b07a12654059727d)

Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
2026-07-30 13:21:14 +01:00
Richard Purdie
f8b89ba589 bitbake: utils: Add NFS EEXISTS/isdir failure workaround
We're seeing cases where we see tracebacks when creating directories in
SSTATE_DIR on an NFS server. The issue is that we see EEXISTS being returned
but isdir() is False, likely when multiple clients try and create the same
directory at the same time.

This is likely a relatively well known issue with NFS's attribute cache.
There is also a way to clear the attribute cache, which is to call
opendir() on the parent directory. That is what this workaround does. In
the rare case we're about to fail, try that using os.listdir() and
see if it helps. Testing showed that it would "fix" several cases
where we'd have had failures otherwise.

[YOCTO #16351]

(Bitbake rev: cff3be6f664f8f07a40727ff63eeeb24d6f5e00b)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 3a99c26fa581d70ed67bd08a5e0e0d0b18369a7c)
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
2026-07-30 13:21:14 +01:00
Yoann Congal
83fd2a9ab4 bitbake: README: Add "2.8" subject-prefix to git-send-email suggestion
That might help new users send correct first stable patches.

(Bitbake rev: 40f0570bdad3d008268a1085dfad2da97b1ddbd1)

Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
2026-07-30 13:21:14 +01:00
Joshua Watt
9916b7471e glibc-testsuite: Do not generate SPDX
glibc-testsuite does not run on target or factor into the build supply
chain, since its purpose is run tests in Qemu at build time

(From OE-Core rev: 3217490cc554069ae53aa54cf8ad7327ce85fa10)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 32801348ca231978498612f3ebee121ca27459c1)
[YC: See https://lore.kernel.org/all/20260708115052.71740-1-jaipaul.cheernam@est.tech/ ]
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
2026-07-22 21:08:55 +01:00
Harish Sadineni
7d7d132471 binutils: Add CVE-2025-69646 to "CVE:" tag
Bugzilla bug 33641 (assigned CVE-2025-69648) has been resolved as a
duplicate of bug 33638 (assigned CVE-2025-69646):

https://sourceware.org/bugzilla/show_bug.cgi?id=33641

The existing patch already fixes the issue associated with both CVEs.

Update the "CVE:" tag to reference both identifiers.

(From OE-Core rev: b6cffcce711a1285ffba7f39e7acf5861fda6486)

Signed-off-by: Harish Sadineni <Harish.Sadineni@windriver.com>
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
2026-07-22 21:08:55 +01:00
Ankur Tyagi
e895f7c264 ca-certificates: upgrade 20260223 -> 20260601
License-Update: ca-certificates-local example removed[1]

[1] 0ba2e089da

(From OE-Core rev: a1c01fc4fe6235d86ab9ceb739d96a69dd91b87d)

Signed-off-by: Ankur Tyagi <ankur.tyagi85@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 366cfc1103661f98020d7b7c8d249f2b7f9432af)
Signed-off-by: Ankur Tyagi <ankur.tyagi85@gmail.com>
[YC: Changelog:
https://metadata.ftp-master.debian.org/changelogs/main/c/ca-certificates/ca-certificates_20260601_changelog
]
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
2026-07-22 21:08:55 +01:00
Ankur Tyagi
211a713181 wireless-regdb: upgrade 2026.03.18 -> 2026.05.30
(From OE-Core rev: 2fd02dbbf0328724de521fffdb1dfc56e4ca098e)

Signed-off-by: Ankur Tyagi <ankur.tyagi85@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 86e35bc1ab5fb2132b06b666fe73fc9bd6446ab6)
Signed-off-by: Ankur Tyagi <ankur.tyagi85@gmail.com>
[YC: Changelog:
https://git.kernel.org/pub/scm/linux/kernel/git/wens/wireless-regdb.git/log/?qt=range&q=master-2026-03-18..master-2026-05-30
]
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
2026-07-22 21:08:55 +01:00
Ankur Tyagi
4f83b7b498 wireless-regdb: upgrade 2026.02.04 -> 2026.03.18
(From OE-Core rev: 67786616508c010b3dfb7f0951b5a70bb69050d7)

Signed-off-by: Ankur Tyagi <ankur.tyagi85@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 97a940bfdeaa3f9f4442a6fbb0fabe1ce5eaff69)
Signed-off-by: Ankur Tyagi <ankur.tyagi85@gmail.com>
[YC: Changelog:
https://git.kernel.org/pub/scm/linux/kernel/git/wens/wireless-regdb.git/log/?qt=range&q=master-2026-02-04..master-2026-03-18
"wireless-regdb: Replace M2Crypto with cryptography package" only
impacts signing code that maintainers run.
]
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
2026-07-22 21:08:55 +01:00
Ross Burton
bdb543e713 xmlto: update SRC_URI
xmlto was previously hosted on Fedora's pagure.io server, but this is
being decomissioned. As xmlto isn't Fedora-specific the repository has
migrated to codeberg.org.

>From discussion with Michal Schorm <mschorm@redhat.com>:

  I became the new maintainer of the project upstream and after a
  discussion with Kevin Fenzi, migrated it to a new home on the
  codeberg.org: https://codeberg.org/xmlto/xmlto

(From OE-Core rev: 514e5212a304f879ca73b0008baea56e9626d0e5)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 0046c780bf612aa7946023f8993c45f0c0b65c08)
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
2026-07-22 21:08:55 +01:00
Benjamin Robin (Schneider Electric)
91ed772bf3 glib-2.0: fix CVE-2026-58016
A flaw was found in GLib. A state confusion issue exists in
g_dbus_node_info_new_for_xml() in the gio/gdbusintrospection.c file when
processing malformed D-Bus introspection XML, specifically with a <node>
element nested within other elements like <method>, <signal>, <property>
or <arg>. This issue can cause an unsigned integer overflow and lead to an
out-of-bounds read, resulting in a denial of service.

The CVE NVD entry is wrong, it indicates that the CVE is fixed in 2.88.1
but the fix was realized in 2.89.0, see [1]. The fix is not present in 2.88.2.

[1] c9da977c17

(From OE-Core rev: b7bb8b7eace676556d50d130a08a1363088c98d5)

Signed-off-by: Benjamin Robin (Schneider Electric) <benjamin.robin@bootlin.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit d52f4d582cc71ada3c8ebe54be1a5b70278ea1ca)
[YC: re-added the removed Signed-off-bys from the patches]
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
2026-07-22 21:08:55 +01:00
Hitendra Prajapati
82f8ecb35d vim: Fix for CVE-2026-52858,CVE-2026-52859,CVE-2026-52860
Pick patch from [1], [2] & [3] also mentioned at NVD report in [4,5 & 6]

[1] 4b850457e1
[2] 63680c6d3d
[3] c8c63673bc
[4] https://nvd.nist.gov/vuln/detail/CVE-2026-52858
[5] https://nvd.nist.gov/vuln/detail/CVE-2026-52859
[6] https://nvd.nist.gov/vuln/detail/CVE-2026-52860

(From OE-Core rev: 1c08fa48b6765ace24a261ecf43f871e850cee88)

Signed-off-by: Hitendra Prajapati <hprajapati@mvista.com>
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
2026-07-22 21:08:55 +01:00
Sudhir Dumbhare
247c484238 openssh: set status for CVE-2026-3497
Analysis:
 - CVE-2026-3497 affects downstream OpenSSH GSSAPI Key Exchange patches.
 - The vulnerable code uses sshpkt_disconnect() in the GSSAPI KEX server path.
 - Upstream OpenSSH/OE-Core does not carry the vulnerable GSSAPI key-exchange delta.
 - Hence ignoring the CVE for this version.

Reference:
https://nvd.nist.gov/vuln/detail/CVE-2026-3497
https://github.com/advisories/ghsa-wcpp-3x59-h8vp
https://ubuntu.com/security/CVE-2026-3497
https://security-tracker.debian.org/tracker/CVE-2026-3497
https://www.openwall.com/lists/oss-security/2026/03/12/3

(From OE-Core rev: d8d7b0e9fa678bc67de3da8b7cddbda6c43086b8)

Signed-off-by: Sudhir Dumbhare <sudumbha@cisco.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit c2bd43b373d65d717e606cab3793b8a64facd946)
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
2026-07-22 21:08:55 +01:00
Aleksandar Nikolic
3b4d998c7a wic: Fix updating fstab for nvme devices
In case wks file references nvme, update_fstab() function will not add
prefix 'p' before the partition number, as the if condition only takes
mmcblk into consideration.

In case of nvme0n1 this leads that following entries are added to fstab:

    /dev/nvme0n11
    /dev/nvme0n13

instead of:

    /dev/nvme0n1p1
    /dev/nvme0n1p3

The patch fixes this as it extends the if condition and adds prefix 'p' for
both mmcblk and nvme.

Upstream-Status: Backport [https://git.yoctoproject.org/wic/commit/?id=f20cda73b495b75ef399c331f59b0e2401a3e76a]
(From OE-Core rev: 5dde0ae4c9592091935eca63beacd3af28ac508a)

Signed-off-by: Aleksandar Nikolic <aleksandar.nikolic@zeiss.com>
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
2026-07-22 21:08:55 +01:00
Sudhir Dumbhare
a184998193 python3-urllib3: fix CVE-2026-44431
Applies the upstream fix [1] referenced in [2] and addresses the
sensitive-header redirect handling issue in proxied low-level urllib3 requests.

[1] 5ec0de499b
[2] https://ubuntu.com/security/CVE-2026-44431

References:
https://nvd.nist.gov/vuln/detail/CVE-2026-44431

(From OE-Core rev: a7f0523f5ff7a8fef611d30ad41b12d73eecec8c)

Signed-off-by: Sudhir Dumbhare <sudumbha@cisco.com>
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
2026-07-22 21:08:55 +01:00
Hugo SIMELIERE (Schneider Electric)
3d80d019e6 libcap: Fix CVE-2026-4878
Pick patch from [1] as mentioned in Debian report in [2].

[1] https://git.kernel.org/pub/scm/libs/libcap/libcap.git/commit/?id=286ace1259992bd0c5d9016715833f2e148ac596
[2] https://security-tracker.debian.org/tracker/CVE-2026-4878

(From OE-Core rev: f53beec471b04c818db7c3834c9af67956c548ec)

Signed-off-by: Hugo SIMELIERE (Schneider Electric) <hsimeliere.opensource@witekio.com>
Reviewed-by: Bruno VERNAY <bruno.vernay@se.com>
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
2026-07-22 21:08:55 +01:00
Theo Gaige
8a839ef416 expat: patch CVE-2026-45186
Backport patches from [1] also mentioned in [2].

[1] https://github.com/libexpat/libexpat/pull/1216
[2] https://security-tracker.debian.org/tracker/CVE-2026-45186

(From OE-Core rev: aa81f5c9a7e1243b9467b51388798dc0dd5a7aad)

Signed-off-by: Theo Gaige <tgaige.opensource@witekio.com>
Reviewed-by: Bruno Vernay <bruno.vernay@se.com>
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
2026-07-22 21:08:55 +01:00
Peter Marko
c5f228145b expat: patch CVE-2026-41080
Pick github PR [1] mentioned in [2].
* 969af8f4654ce50d837bb9199a73d1d02d2c7e16..4ba09dc471b39a78d77e5179d0243186c0c4ff7a
* dropped code which doesn't exist in 2.6.4 yet (github actions, map
  file)
* resolved minor conflicts (formatting)
* picked 2 additional commits to apply the code cleanly

[1] https://github.com/libexpat/libexpat/pull/1183
[2] https://security-tracker.debian.org/tracker/CVE-2026-41080

(From OE-Core rev: 273968c71fbf4a376996df555a8283bf63674ae8)

Signed-off-by: Peter Marko <peter.marko@siemens.com>
[YC: See discussion :
https://lore.kernel.org/openembedded-core/2030b4435c8bc81bb4452637c0517ac33ab94d20.camel@pbarker.dev/T/#m56c5da4033c2f3571027c2745431178064ea1b5d ]
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
2026-07-22 21:08:55 +01:00
Vijay Anusuri
9c72283ec8 tzdata/tzcode-native: upgrade 2026b -> 2026c
This release contains the following changes:

   Briefly:
     Alberta moved to permanent -06 on 2026-06-18.
     Morocco moves to permanent +00 on 2026-09-20.
     More integer overflow bugs have been fixed in zic.

   Changes to future timestamps

     Alberta’s 2026-03-08 spring forward was its last foreseeable clock
     change, as it moved to permanent -06 thereafter.  (Thanks to Roozbeh
     Pournader and others.)  Model this with its traditional abbreviation
     CST.  Although the change to permanent -06 legally took place on
     2026-06-18, temporarily model the change to occur on 2026-11-01 at
     02:00 instead, for the same reason we introduced a similarly
     temporary hack for British Columbia in 2026b.

       Although another TZDB release will likely be needed soon because
       Northwest Territories will likely follow Alberta, the legal
       formalities have not yet taken place.

     Morocco plans to move back to permanent UTC, without daylight
     saving time transitions, on 2026-09-20 at 02:00.  This also
     affects Western Sahara.

   Changes to code

     zic no longer overflows integers when processing outlandish input
     like ‘Zone Ouch 0 - LMT 9223372036854775807’, ‘Zone Ouch 0
     2562047788015215 LMT’, ‘Zone Ouch -2562047788015215:30:08 - LMT’,
     and ‘Zone Ouch -2562047788015215:30:08 - %%z’.  This avoids
     undefined behavior in C.  (Problems reported by Naveed Khan.)

     On platforms that have EFTYPE, tzalloc now fails with errno set to
     EFTYPE, not EINVAL, if it detects that the TZif file has an
     invalid format or is not a regular file.  Formerly it did this
     only on NetBSD, and only when the file was not a regular file.

     Unprivileged programs no longer require TZif files to be regular
     files or reject relative names containing ".." components.  This
     reverts to the more-permissive 2025b behavior, as the stricter
     behavior did not catch on in FreeBSD.

     zic now reports any failure to remove a temporary file when
     cleaning up after a previous failure.  (Problem reported by Tom
     Lane.)

   Changes to commentary

     Northwest Territories is expected to move to permanent -06 prior to
     2026-11-01 02:00, when clocks would otherwise fall back.  (Thanks to
     Tim Parenti and James Bellaire.)  Model this with its traditional
     abbreviation CST.  Unfortunately the change is not yet official, so
     it is currently present only as comments that can be uncommented as
     needed.

   Changes to build procedure

     The undocumented ‘typecheck’ Makefile check rule has been removed.
     It stopped working in 2025a and evidently nobody noticed.
     The rule was superseded by ‘check_time_t_alternatives’ in 2013d.

Ref: https://lists.iana.org/hyperkitty/list/tz-announce@iana.org/thread/NVHSX2PAQIT44U5FCCEVNJJYXQMMTJSA/

(From OE-Core rev: 41f3415d03bf85e9bf18fc960ab6e08c376a4abf)

Signed-off-by: Vijay Anusuri <vanusuri@mvista.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 33a7e1170b0c8ba83cdb4c7d6d9f83f6c194baed)
Signed-off-by: Vijay Anusuri <vanusuri@mvista.com>
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
2026-07-22 21:08:55 +01:00
Deepak Rathore
fca50b3652 util-linux: fix CVE-2026-13595
This patch applies the upstream stable/v2.41 backport for
CVE-2026-13595. The upstream fix merge or commit is referenced in [1],
and the public CVE advisory is referenced in [2]. The individual
backported commit links are recorded in the embedded patch headers
when the fix expands to multiple commits.

[1] 132d9c8aa1
[2] https://access.redhat.com/security/cve/CVE-2026-13595

(From OE-Core rev: 9f4a0789961def89303e6e8a211c944e41c29cab)

Signed-off-by: Deepak Rathore <deeratho@cisco.com>
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
2026-07-22 21:08:55 +01:00
Jaipaul Cheernam
865d0fd2d6 gzip: fix CVE-2026-41992
Backport upstream fix for a global buffer overflow in the LZH
decompression logic (unlzh.c). The left[] and right[] global arrays
shared across LZW and LZH decompression routines are not reinitialized
between files processed in the same invocation, allowing an
out-of-bounds read in the LZH decoder.

Adapted for gzip 1.13:
- Refreshed NEWS and THANKS hunks to match 1.13 release context.

Reference: https://nvd.nist.gov/vuln/detail/CVE-2026-41992
(From OE-Core rev: db470c65798b4a90a5c1c333d61f3a531cca75cc)

Signed-off-by: Jaipaul Cheernam <jaipaul.cheernam@est.tech>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit deaaaacabbf8d21fb9271e3f6f83055893510cff)
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
2026-07-22 21:08:54 +01:00
Peter Marko
9a906f991a rootfs: move tasks using image_list_installed_packages to postuninstall
Since some packages can be uninstalled, any task querying installed
packages should be run only after both installation and uninstallation
is completed.

(From OE-Core rev: d79423d3a1b8cabdf7c0383de2b5460a9725d912)

Signed-off-by: Peter Marko <peter.marko@siemens.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(From OE-Core rev: c3097962ac925538e99b17b771c541950a8b8c26)
Signed-off-by: Peter Marko <peter.marko@siemens.com>
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
2026-07-22 21:08:54 +01:00
Peter Marko
46891dba64 vex: remove obsolete semicolon
Usage of semicolon as separator in ROOTFS/IMAGE_*COMMAND was deprecated
long time ago.
Remove it.

(From OE-Core rev: cf0d89407e6b44c8fa4033cc0032dd270351172a)

Signed-off-by: Peter Marko <peter.marko@siemens.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(From OE-Core rev: 311d418d22a609fb54b87bfc909bdd1861892228)
Signed-off-by: Peter Marko <peter.marko@siemens.com>
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
2026-07-22 21:08:54 +01:00
Peter Marko
21137ce7bb socat: patch CVE-2026-56123
Pick the only commit in release 1.8.1.2.
This release has a note for this CVE which was added by this commit.

Drop change in VERSION file (as we're not upgrading).
Resolve minor conflicts in CHANGES and test.sh.

Since we're not running tests, it's not worth to pick next commit from
1.8.1.3 which is fixing test on non-bash shell systems.

(From OE-Core rev: 043f99712f596054d54dded6a0f8bb3c77e36566)

Signed-off-by: Peter Marko <peter.marko@siemens.com>
[YC: project git repo seem down. A mirror is here:
https://third-party-mirror.googlesource.com/socat/+/d44cd1cc4fbb70a9ae9e71890024ae8367fcb912%5E%21/ ]
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
2026-07-22 21:08:54 +01:00
Jaipaul Cheernam
515c8e27b7 bzip2: Fix CVE-2026-42250
This patch applies the upstream fix as referenced in [1], using the commit shown in [2].

[1] https://nvd.nist.gov/vuln/detail/CVE-2026-42250
[2] https://sourceware.org/cgit/bzip2/commit/?id=35d122a3df8b0cc4082a4d89fdc6ee99f375fe67

(From OE-Core rev: 2ae360e0f03c70f376226f4cbb5fd7d61b7bae99)

Signed-off-by: Jaipaul Cheernam <jaipaul.cheernam@est.tech>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit bf39a3c0497023e96de11444579ffef31f968bcd)
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
2026-07-22 21:08:54 +01:00
Benjamin Robin (Schneider Electric)
0c2fa146c5 python3: fix CVE-2026-9669
bz2.BZ2Decompressor objects could be reused after a decompression error.
If an application caught the resulting OSError and retried with the same
decompressor, crafted input could cause the decompressor to resume from an
invalid internal state and perform out-of-bounds writes to a stack buffer.
This could crash the process when processing untrusted data.

This CVE has a CVSS 4.0 score of 8.2. The patch (5755d0f08394) is
referenced in the CVEList database.

(From OE-Core rev: 226831c16d13133e89d3405b5e2298bb6571bed6)

Signed-off-by: Benjamin Robin (Schneider Electric) <benjamin.robin@bootlin.com>
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
2026-07-22 21:08:54 +01:00
Benjamin Robin (Schneider Electric)
96f1bb2af7 python3: fix CVE-2026-11972
When using the "tarfile" module with a file opened in "streaming mode"
(mode="r|") the tarfile module did not properly handle EOF, making archive
parsing take exponentially longer.

(From OE-Core rev: 9c066bcd634e7b938a10c64ef1eaf322a99ec434)

Signed-off-by: Benjamin Robin (Schneider Electric) <benjamin.robin@bootlin.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit bbd9c82298880ab61b9befea97dfe8a0a4943836)
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
2026-07-22 21:08:54 +01:00
Benjamin Robin (Schneider Electric)
ca405952dc python3: fix CVE-2026-11940
tarfile.extractall() with the 'data' or 'tar' filter could be bypassed
by a crafted archive where a hardlink references a symlink stored at a
deeper name than the hardlink itself.

(From OE-Core rev: a76513212f1830fbda2dc6a243943a3c1a011239)

Signed-off-by: Benjamin Robin (Schneider Electric) <benjamin.robin@bootlin.com>
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
2026-07-22 21:08:54 +01:00
Kris Gavvala
f55e6c80f1 python3: skiptest tracemalloc_track_race
In python3 ptests, tracemalloc_track_race fails with a segfault.
To avoid ptest failures for now, skip the test.

Fixes [YOCTO #16182]
Upstream Issue: https://github.com/python/cpython/issues/143143

(From OE-Core rev: 09adf3945b681bbc9eaa89cdad8fbb17191fd7d3)

Signed-off-by: Kris Gavvala <kris.gavvala@windriver.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 7504490ba5e6ce0317dd12bdb961542062f05830)
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
2026-07-22 21:08:54 +01:00
Mathieu Dubois-Briand
cd6939b8ba python3: Simplify ptest exclusion list
Makes the exclusion list a bit more readable, avoiding very long sed
expression lines.

[Kris Gavvala]:
this commit was modified to fit scarthgap. the original commit expects
to skip test_timerfd_TFD_TIMER_ABSTIME, test_date_locale2 and test_null_dlsym.
These tests were not being skipped on scarthgap so were removed from the
backport.

(From OE-Core rev: 649b6848ccd4aa3842b2b42b03058511e4f07ce3)

Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Kris Gavvala <kris.gavvala@windriver.com>
(cherry picked from commit d9a44e7390d7c8f2c2b73572825a6f8ceeb729ac)
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
2026-07-22 21:08:54 +01:00
Roland Kovacs
082c373810 binutils: fix CVE-2025-69645
Binutils objdump contains a denial-of-service vulnerability when processing
a crafted binary with malformed DWARF debug information. A logic error in
the handling of DWARF compilation units can result in an invalid offset_size
value being used inside byte_get_little_endian, leading to an abort (SIGABRT).
A local attacker can trigger the crash by supplying a malicious input file.

(From OE-Core rev: ca101b2ff0b91630df25ee619c809e0621d41b21)

Signed-off-by: Roland Kovacs <roland.kovacs@est.tech>
[YC: The patch is referenced on the NVD page:
     https://nvd.nist.gov/vuln/detail/CVE-2025-69645 ]
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
2026-07-22 21:08:54 +01:00
Roland Kovacs
72b30efa58 binutils: fix CVE-2025-69649, and CVE-2025-69652
CVE-2025-69649:
  Null pointer dereference in readelf before 2.46 results in segfault when
  processing a crafted ELF binary with malformed header fields.
  No evidence of memory corruption beyond the null pointer dereference, nor
  any possibility of code execution, was observed.

CVE-2025-69652:
  Null pointer dereference in readelf when processing a crafted ELF binary
  with malformed DWARF abbrev or debug information which leads to SIGABORT.
  No evidence of memory corruption or code execution was observed; the impact
  is limited to denial of service.

(From OE-Core rev: 86dd1306e350c4cd3b36a39254d6f17587960a60)

Signed-off-by: Roland Kovacs <roland.kovacs@est.tech>
[YC: patches are referenced in the NVD database:
     https://nvd.nist.gov/vuln/detail/CVE-2025-69649
     https://nvd.nist.gov/vuln/detail/CVE-2025-69652 ]
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
2026-07-22 21:08:54 +01:00
Ashishkumar Parmar
5f7a875f6d bind: Upgrade 9.18.44 -> 9.18.49
This upgrade fixes CVE-2026-1519, CVE-2026-3039, CVE-2026-3592, CVE-2026-5946 and CVE-2026-5950.

Changelog
=========
https://downloads.isc.org/isc/bind9/9.18.49/doc/arm/html/notes.html

The 9.18.45 changelog includes a Python 3.10 requirement change for ISC's
upstream system test suite, but OE-Core's bind recipe does not enable or package
that test suite and does not inherit ptest. This change is therefore not part of
the target build, installed packages, runtime dependencies, or runtime behavior.

(From OE-Core rev: dee1f392d5294bc5a228ff185bd0c105243a26d4)

Signed-off-by: Ashishkumar Parmar <asparmar@cisco.com>
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
2026-07-22 21:08:54 +01:00
Jaipaul Cheernam
74551a4b4b glibc: stable 2.39 branch updates
git log --oneline ce65d944e38a20cb70af2a48a4b8aa5d8fabe1cc..be1e627cd72db31161a3b4ce1c8114674f0895eb
be1e627cd7 Linux: Only define OPEN_TREE_* macros in <sys/mount.h> if undefined (bug 33921)
98bc06a361 include: isolate __O_CLOEXEC flag for sys/mount.h and fcntl.h
3e13579841 Use pending character state in IBM1390, IBM1399 character sets (CVE-2026-4046)
0dc95ae109 elf: parse /proc/self/maps as the last resort to find the gap for tst-link-map-contiguous-ldso
9344c796f7 resolv: Check hostname for validity (CVE-2026-4438)
5663ab0b83 resolv: Count records correctly (CVE-2026-4437)
c53cd6e738 posix: Run tst-wordexp-reuse-mem test
2760e4c5ed iconvdata: Fix invalid pointer arithmetic in ANSI_X3.110 module
ba29a36aa3 posix: Fix invalid flags test for p{write,read}v2
60b039bf6a socket: Add new test for shutdown

Testing Results:
             Before    After    Diff
PASS         4892      4896     +4
XPASS        4         4         0
FAIL         371       372      +1
XFAIL        16        16        0
UNSUPPORTED  224       224       0

Changes in testcases:

testcase-name                                before  after
posix/tst-wordexp-reuse-mem(new)               -     PASS (native)

[Note: posix/tst-wordexp-reuse-mem is a new test added by this uplift
(c53cd6e738). It fails under QEMU user-mode because the test-wrapper
cannot support LD_PRELOAD and MALLOC_TRACE needed for mtrace. Running
natively with LD_PRELOAD=libc_malloc_debug.so confirms the test passes
with no memory leaks.

nptl/tst-getpid3 is a flaky test under QEMU user-mode (passes 7/10
re-runs). No nptl code was changed in this uplift.]

(From OE-Core rev: 2afc207fb9d2b720912a5eedb0f368e40f5a236e)

Signed-off-by: Jaipaul Cheernam <jaipaul.cheernam@est.tech>
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
2026-07-22 21:08:54 +01:00
Eric Meyers
a8a3e88a5e create-spdx-image-3.0: correct SSTATE_SKIP_CREATION key for do_create_image_sbom_spdx
The override was "task-create-image-sbom" but BitBake derives it as
"task-create-image-sbom-spdx" (do_ stripped, underscores to hyphens), so
the skip was never applied. The task then cached an ${IMAGE_NAME}-stamped
SBOM in sstate, letting a stale spdx.json be restored via setscene. A
later do_sbom_cve_check would compute the current IMAGE_NAME and fail with
"No such file or directory" on the missing timestamped SBOM. Correct the
key so the image SBOM is always regenerated, never restored from sstate.

(From OE-Core rev: 4acdac4caaed1179ff52c4ff3064f014d08a4664)

Signed-off-by: Eric Meyers <eric.meyers@arthrex.com>
Cc: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 45302ff5cfaf91ece74d4065acf710507f27da15)
Signed-off-by: Benjamin Robin (Schneider Electric) <benjamin.robin@bootlin.com>
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
2026-07-22 21:08:54 +01:00
Paul Barker
6ccffb86e8 cve-update: Avoid NFS caching issues
When moving the updated CVE database file to the downloads directory,
ensure that it has a different inode number to the previous version of
this file.

We have seen "sqlite3.DatabaseError: database disk image is malformed"
exceptions on our autobuilder when trying to read the CVE database in
do_cve_check tasks. The context here is that the downloads directory
(where the updated database file is copied to) is shared between workers
as an NFS mount. Different autobuilder workers were seeing different
checksums for the database file, which indicates that a mix of both new
and stale data was being read. Forcing each new version of the database
file to have a different inode number will prevent stale data from being
read from local caches.

This should fix [YOCTO #16086].

(From OE-Core rev: 8aca19cff468c5f15c919c973c46be58e020af46)

Signed-off-by: Paul Barker <paul@pbarker.dev>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit f63622bbec1cfaca6d0b3e05e11466e4c10fa86e)
[YC: removed cve-update-db-native part, file was removed in
17eb0788514 (cve-update-db-native: remove, 2023-06-23)]
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
2026-07-20 09:04:33 +01:00
Jakub Szczudlo
c574139f59 libgcrypt: upgrade 1.10.3 -> 1.10.4
Release notes are here:
https://dev.gnupg.org/T8233.html
Update contains fix for CVE-2026-41989 and because of building error patch need to be
updated to fix compile flags in new version.

(From OE-Core rev: b06db09b3e8199014b125e3307ba4ae351ad2938)

Signed-off-by: Jakub Szczudlo <jakubszczudlo40@gmail.com>
[YC: upgrades contains
"mpi/ec-inline: refactor i386 assembly to reduce register usage" which
looks like optimisation but it is actually a fix for a build failure.
See: https://dev.gnupg.org/T6892.html]
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
2026-07-20 09:04:33 +01:00
Benjamin Robin (Schneider Electric)
95ac28ddfa openssh: CVE-2026-35387 patch also fixes CVE-2026-35414
The openssh commit fd1c7e131f331942d20f42f31e79912d570081fa fixes 2 CVEs:
CVE-2026-35414 and CVE-2026-35387.

CVE-2026-35414:
| OpenSSH before 10.3 mishandles the authorized_keys principals option
| in uncommon scenarios involving a principals list in conjunction
| with a Certificate Authority that makes certain use of comma
| characters.

The match_principals_option() function is fixed. Before this fix:
When matching an authorized_keys principals="" option against a list of
principals in a certificate, an incorrect algorithm was used that could
allow inappropriate matching in cases where a principal name in the
certificate contains a comma character. Exploitation of the condition
requires an authorized_keys principals="" option that lists more than
one principal *and* a CA that will issue a certificate that encodes more
than one of these principal names separated by a comma (typical CAs
strongly constrain which principal names they will place in a
certificate). This condition only applies to user- trusted CA keys in
authorized_keys, the main certificate authentication path
(TrustedUserCAKeys/AuthorizedPrincipalsFile) is not affected.

CVE-2026-35387:
| OpenSSH before 10.3 can use unintended ECDSA algorithms. Listing of
| any ECDSA algorithm in PubkeyAcceptedAlgorithms or
| HostbasedAcceptedAlgorithms is misinterpreted to mean all ECDSA
| algorithms.

The rest of the patch allows to correctly match ECDSA signature algorithms
against algorithm allowlists.

The full explanation can be found on debian repository:
ae190b6440

(From OE-Core rev: c871a726471a37e46ba10afe7d93b5e0e3de8cdb)

Signed-off-by: Benjamin Robin (Schneider Electric) <benjamin.robin@bootlin.com>
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
2026-07-20 09:04:32 +01:00
Anil Dongare
7aad94e82e cargo: Fix CVE-2026-5223
This patch applies the upstream fix as referenced in [2], using the commit shown in [1].

[1] 285cebf589
[2] https://security-tracker.debian.org/tracker/CVE-2026-5223

(From OE-Core rev: 9a7fa66844042347a01347538c221115eb40856b)

Signed-off-by: Anil Dongare <adongare@cisco.com>
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
2026-07-20 09:04:32 +01:00
Anil Dongare
ae2f076ef7 cargo: Fix CVE-2026-5222
This patch applies the upstream fix as referenced in [2], using the commit shown in [1].

[1] c4d63a4423
[2] https://security-tracker.debian.org/tracker/CVE-2026-5222

(From OE-Core rev: 1f38e3b8ea709fb8e7ef7a13991809ede5d24d09)

Signed-off-by: Anil Dongare <adongare@cisco.com>
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
2026-07-20 09:04:32 +01:00
Ashishkumar Parmar
8cb3e690c5 qemu: Fix CVE-2026-2243
This patch applies the upstream v10.0.9 stable backport for
CVE-2026-2243. The upstream fix commit is referenced in [1],
and the public CVE advisory is referenced in [2]. The individual
backported commit links are recorded in the embedded patch headers
when the fix expands to multiple commits.

[1] 37ff880a12
[2] https://access.redhat.com/security/cve/CVE-2026-2243

(From OE-Core rev: 9d20ff0a25cf9822c1164baaf0a319985c5cc88f)

Signed-off-by: Ashishkumar Parmar <asparmar@cisco.com>
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
2026-07-20 09:04:32 +01:00
Ashishkumar Parmar
8f694f00c4 qemu: Fix CVE-2026-0665
This patch applies the upstream v10.0.8 stable backport for
CVE-2026-0665. The upstream fix commit is referenced in [1],
and the public CVE advisory is referenced in [2]. The individual
backported commit links are recorded in the embedded patch headers
when the fix expands to multiple commits.

[1] 4ba877461e
[2] https://access.redhat.com/security/cve/CVE-2026-0665

(From OE-Core rev: c66315d7276db8f65794cf514689301b027b13eb)

Signed-off-by: Ashishkumar Parmar <asparmar@cisco.com>
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
2026-07-20 09:04:32 +01:00
Ashishkumar Parmar
de00d925c6 qemu: Fix CVE-2025-14876
This patch applies the upstream v10.0.8 stable backport for
CVE-2025-14876. The upstream fix commit is referenced in [1],
and the public CVE advisory is referenced in [2]. The individual
backported commit links are recorded in the embedded patch headers
when the fix expands to multiple commits.

[1] e649201bb9
[2] https://access.redhat.com/security/cve/CVE-2025-14876

(From OE-Core rev: 2e1f2bbf21f332dd34cff915e06a8545bc974cca)

Signed-off-by: Ashishkumar Parmar <asparmar@cisco.com>
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
2026-07-20 09:04:32 +01:00
Shubham Pushpkar
db642a22a1 binutils: Fix CVE-2026-6846
This patch applies the upstream fix as referenced in [2], using the commit shown in [1].

[1] https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=7a089e0302382f4d4e077941156e1eaa68d01393
[2] https://security-tracker.debian.org/tracker/CVE-2026-6846

(From OE-Core rev: c4773d5fb3b9d17c80c0ba717a07d113c3784249)

Signed-off-by: Shubham Pushpkar <spushpka@cisco.com>
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
2026-07-20 09:04:32 +01:00
Esa Jaaskela
dbf61c2308 linux-yocto/6.6: update CVE exclusions (6.6.142)
Regenerated to fix this warning:
WARNING: linux-yocto-6.6.142+git-r0 do_cve_check: Kernel CVE status needs updating: generated for 6.6.127 but kernel is 6.6.142

$ ./meta/recipes-kernel/linux/generate-cve-exclusions.py .../cvelistV5/ 6.6.142 > meta/recipes-kernel/linux/cve-exclusion_6.6.inc

Generated at 2026-07-07 17:39:10.952928+00:00 for kernel version 6.6.142
From cvelistV5 cve_2026-07-07_1600Z

(From OE-Core rev: 923038b75d09c0966ec42b1460faf306adecc8c2)

Signed-off-by: Esa Jaaskela <esa.jaaskela@suomi24.fi>
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
2026-07-20 09:04:32 +01:00
Adarsh Jagadish Kamini
502e6c40a5 curl: fix CVE-2026-6276
Backport patch to fix CVE-2026-6276.
https://nvd.nist.gov/vuln/detail/CVE-2026-6276

The upstream fix moves cookiehost from the connection-scoped aptr struct
to the per-request SingleRequest struct, preventing cookie data from
leaking across reused handles.

Adapted for curl 8.7.1:
- Use Curl_safefree (renamed to curlx_safefree in later versions)
- Use conn->host.name (changed to data->conn->host.name upstream)
- Keep existing header parsing structure (refactored upstream)
- Dropped tests

Upstream fix:
  3a19987a87

Tested with ptest:
Before: PASSED: 857, FAILED: 0, SKIPPED: 0
After: PASSED: 857, FAILED: 0, SKIPPED: 0

(From OE-Core rev: 6459b4629bfd71ab147257f9d257e3e1626b74f3)

Signed-off-by: Adarsh Jagadish Kamini <adarsh.jagadish.kamini@est.tech>
[YC: copy the backport info from commit message into the patch file itself]
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
2026-07-20 09:04:32 +01:00
Theo Gaige (Schneider Electric)
94181a64fd perl: patch CVE-2026-8376
Backport patches from [1]

[1] https://github.com/Perl/perl5/pull/24433

(From OE-Core rev: 918bf1dd78104c833497f7766cabe9cba4fa35b0)

Signed-off-by: Theo Gaige (Schneider Electric) <tgaige.opensource@witekio.com>
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
2026-07-20 09:04:32 +01:00
Hitendra Prajapati
ca2b19114c vim: Security fix for CVE-2026-28420 & CVE-2026-46483
Pick patch from [1] & [2] also mentioned at NVD report in 3 & 4

[1] bb6de2105b
[2] 3fb5e58fbc
[3] https://nvd.nist.gov/vuln/detail/CVE-2026-28420
[4] https://nvd.nist.gov/vuln/detail/CVE-2026-46483

(From OE-Core rev: ef42f90ce86f9139e6618b351aaa58129813f544)

Signed-off-by: Hitendra Prajapati <hprajapati@mvista.com>
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
2026-07-20 09:04:32 +01:00
Hitendra Prajapati
bac60a09b6 vim: Fix for CVE-2026-28417, CVE-2026-32249, CVE-2026-45130
Pick patch from [1], [2] & [3] also mentioned at NVD report in [4,5 & 6]

[1] 79348dbbc0
[2] 36d6e87542
[3] 9299332917
[4] https://nvd.nist.gov/vuln/detail/CVE-2026-28417
[5] https://nvd.nist.gov/vuln/detail/CVE-2026-32249
[6] https://nvd.nist.gov/vuln/detail/CVE-2026-45130

(From OE-Core rev: e61095581f25a79964ee426899ee72236118f570)

Signed-off-by: Hitendra Prajapati <hprajapati@mvista.com>
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
2026-07-20 09:04:32 +01:00
Hitendra Prajapati
ba66043d77 vim: fix for CVE-2026-28421, CVE-2026-41411 & CVE-2026-44656
Pick patch from [1], [2] & [3] also mentioned at NVD report in [4,5 & 6]

[1] 65c1a143c3
[2] c78194e41d
[3] 190cb3c2b9
[4] https://nvd.nist.gov/vuln/detail/CVE-2026-28421
[5] https://nvd.nist.gov/vuln/detail/CVE-2026-41411
[6] https://nvd.nist.gov/vuln/detail/CVE-2026-44656

More info :
CVE-2026-28421 - Validate block tree indices and readfile() line bounds.
CVE-2026-41411 - Disallow backticks before attempting to expand filenames.
CVE-2026-44656 - Prevent shell execution from 'path' backticks via modelines.

(From OE-Core rev: 3fe9e5132aab67f1ee3139c88a89d5c6c94313c1)

Signed-off-by: Hitendra Prajapati <hprajapati@mvista.com>
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
2026-07-20 09:04:32 +01:00
Hitendra Prajapati
623f85f957 vim: fix for CVE-2026-34982, CVE-2026-34714 & CVE-2026-35177
Pick patch from [1], [2] & [3] also mentioned at NVD report in [4,5 & 6]

[1] 75661a66a1
[2] 664701eb75
[3] 7088926316
[4] https://nvd.nist.gov/vuln/detail/CVE-2026-34982
[5] https://nvd.nist.gov/vuln/detail/CVE-2026-34714
[6] https://nvd.nist.gov/vuln/detail/CVE-2026-35177

More info :
CVE-2026-34982 - vim: arbitrary command execution via modeline sandbox bypass.
CVE-2026-34714 - vim: Arbitrary code execution via crafted file.
CVE-2026-35177 - vim zip.vim plugin: Arbitrary file overwrite via path traversal bypass.

(From OE-Core rev: 1b4ee99b86262ade31b69a2ba9f80791b15ea130)

Signed-off-by: Hitendra Prajapati <hprajapati@mvista.com>
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
2026-07-20 09:04:32 +01:00
Theo Gaige (Schneider Electric)
d29b27fb31 dhcpcd: patch CVE-2026-56117
Backport patch [1] mentionned in [2]

[1] 78ea09ed16

[2] https://security-tracker.debian.org/tracker/CVE-2026-56117

(From OE-Core rev: 5c94b031f12c8623dc6eb9e05b87a004826345c1)

Signed-off-by: Theo Gaige (Schneider Electric) <tgaige.opensource@witekio.com>
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
2026-07-20 09:04:32 +01:00
Theo Gaige (Schneider Electric)
4e6df49262 dhcpcd: patch CVE-2026-56114
Backport patch [1] mentionned in [2]

[1] 2f00c7bfc4

[2] https://security-tracker.debian.org/tracker/CVE-2026-56114

(From OE-Core rev: daaaedd30aac04f3440e11682b0a9ecbb2b75b1f)

Signed-off-by: Theo Gaige (Schneider Electric) <tgaige.opensource@witekio.com>
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
2026-07-20 09:04:32 +01:00
Theo Gaige (Schneider Electric)
c223541984 dhcpcd: patch CVE-2026-56113
Backport patch [1] mentionned in [2]

[1] 5733d3c59a

[2] https://security-tracker.debian.org/tracker/CVE-2026-56113

(From OE-Core rev: fbfee67ed5d0c799bc1011f8463741c3b0910885)

Signed-off-by: Theo Gaige (Schneider Electric) <tgaige.opensource@witekio.com>
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
2026-07-20 09:04:31 +01:00
Jaipaul Cheernam
37b718ecb9 curl: fix CVE-2026-5773 - wrong reuse of SMB connection
libcurl's SMB handler marks connections for reuse (connkeep) without
verifying that subsequent requests target the same share. This allows
a second SMB request to the same host to reuse a connection
authenticated for a different share, potentially accessing data
without proper authorization.

The upstream fix removes connection reuse for SMB entirely in
lib/protocol.c, a file introduced in curl 8.20.0. For 8.7.1, the
equivalent fix is changing connkeep() to connclose() in lib/smb.c,
which prevents the connection from being returned to the pool.

Tested with SMBv1 server (Docker dperson/samba):
  Without patch: "Re-using existing connection" for different shares
  With patch: New connection per request, no reuse

Binary verified: Curl_conncontrol arg changes from 0 (KEEP) to 1 (CLOSE)

Reference: https://curl.se/docs/CVE-2026-5773.html

(From OE-Core rev: 7736f905e78162ac657d7a1c790dfa5701dd6b19)

Signed-off-by: Jaipaul Cheernam <jaipaul.cheernam@est.tech>
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
2026-07-20 09:04:31 +01:00
Nate Kent
b8085938de sudo: fix pam-wheel sed for sudo 1.9.17p2 sudoers
[YOCTO #16321]

In version 1.9.17p2, the line that the recipe uses to add the 'wheel'
group to the sudoers file does not exist. This updates the sed usage to
the actual line in question.

(From OE-Core rev: 55f7bf8cd9516971d6d01c1c890bc4c1df62b008)

Signed-off-by: Nate Kent <nathan@otiv.ai>
Tested-by: Siva Balasubramanian <sivakumar.bs@gmail.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 76231f202a437be221c2580d4fa0fc100c453e92)
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
2026-07-20 09:04:31 +01:00
Himanshu Jadon
75cbb0daa1 tar: Fix CVE-2026-5704
Backport the upstream 3-commit fix chain for CVE-2026-5704.

The final CVE fix is [1], which depends on the earlier cleanup in [2]
and the behavioral change in [3]. Keep this patch order so the final
fix applies cleanly and preserves the upstream logic.

Also include upstream follow-up [4] to fix the --no-overwrite-dir ptest
regression caused by the CVE backport. Without this follow-up, tar can
temporarily chmod an existing directory even when --no-overwrite-dir is
used, which breaks the upstream --no-overwrite-dir ptest.

[1] https://cgit.git.savannah.gnu.org/cgit/tar.git/commit/?id=b8d8a61b25588caca4efaf9bdd2e3f1a49da77e3
[2] https://cgit.git.savannah.gnu.org/cgit/tar.git/commit/?id=112ead79312ea308e58414b74623f101b8c06f0b
[3] https://cgit.git.savannah.gnu.org/cgit/tar.git/commit/?id=b009124ffde415515081db844d7a104e1d1c6c58
[4] https://cgit.git.savannah.gnu.org/cgit/tar.git/commit/?id=4e742fc8674064a9fa00d4483d06aca48d5b0463
[5] https://security-tracker.debian.org/tracker/CVE-2026-5704

(From OE-Core rev: 86360db7d1ea4e5d2bac9889cf8fefe6148a90b4)

Signed-off-by: Himanshu Jadon <hjadon@cisco.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 872d86b99ad3e77a105b386331a41f7fa40c2b72)
Signed-off-by: Himanshu Jadon <hjadon@cisco.com>
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
2026-07-20 09:04:31 +01:00
Daniel Turull
c70d4a799a libssh2: fix CVE-2026-55199
Backport patch to fix CVE-2026-55199.
https://nvd.nist.gov/vuln/detail/CVE-2026-55199

Upstream fix:
  17626857d2

Tested with ptest:
Before: PASSED: 3, FAILED: 0, SKIPPED: 0
After: PASSED: 3, FAILED: 0, SKIPPED: 0

Reviewed-by: Anders Heimer <anders.heimer@est.tech>
(From OE-Core rev: 2da74d75a8719db63979f132b456afdbd80395ef)

Signed-off-by: Daniel Turull <daniel.turull@ericsson.com>
(cherry picked from commit 5b52af4a02849c1ce74491056a2d13e4e3b6ad2d)
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
2026-07-20 09:04:31 +01:00
Daniel Turull
af5ab14071 libssh2: fix CVE-2026-55200
Backport patch to fix CVE-2026-55200.
https://nvd.nist.gov/vuln/detail/CVE-2026-55200

Upstream fix:
  97acf3dfda

Tested with ptest:
Before: PASSED: 3, FAILED: 0, SKIPPED: 0
After: PASSED: 3, FAILED: 0, SKIPPED: 0

Reviewed-by: Anders Heimer <anders.heimer@est.tech>
(From OE-Core rev: a610461f9040644bec9f1b9be23dcfff121df888)

Signed-off-by: Daniel Turull <daniel.turull@ericsson.com>
(cherry picked from commit 42c8c6ec3066dc47b9eeeba0247ffa927193abff)
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
2026-07-20 09:04:31 +01:00
Antonin Godard
e146cbbc73 docs-wide: fix various broken links
Fix various broken links found using the linkcheck builder, in various
places of the documentation. For most, the replacing link is the
equivalent new link.

(From yocto-docs rev: 5f708a1bc31ae94dd3513615b0ce079aa7897628)

Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
(cherry picked from commit 358519ca6406a89fee42c45dcaf63a37a374f33c)
[AG: fix conflict in variables.rst, due to changes to new variables in master]
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
Signed-off-by: Paul Barker <paul@pbarker.dev>
2026-07-15 18:39:01 +01:00
Antonin Godard
cbaaf0dcf7 migration-guides/release-notes-5.0.rst: remove broken link
https://no-color.org seems down, so remove the link.

(From yocto-docs rev: 615ae29b1d00e56b76bc86982848a152392ee691)

Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
(cherry picked from commit 45f54eca0f7ba4a56ce7dd8a1a388eef1eeffc45)
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
Signed-off-by: Paul Barker <paul@pbarker.dev>
2026-07-15 18:39:01 +01:00
Antonin Godard
84db80f823 ref-manual/images.rst: update obsolete VMWare links
VMWare Player has been discontinued in 2024 so remove the link. What
seems to be remaining is VMWare Fusions and Workstation so provide that
link only.

(From yocto-docs rev: f139c98f658e83328169cb90d119855e43a5bc83)

Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
(cherry picked from commit 7c969dcbebf5cccb28ccbf2370dc8b52cbd08974)
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
Signed-off-by: Paul Barker <paul@pbarker.dev>
2026-07-15 18:39:01 +01:00
Antonin Godard
6dc01c1e09 ref-manual/classes.rst: replace obsolete mailing list thread
I found this one by looking at the archive of the link on
https://web.archive.org and then locating the thread on
lists.yoctoproject.org by its title.

(From yocto-docs rev: a39ce713ec34964776cb7562c6bd7dad9e4b675d)

Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
(cherry picked from commit 5e792ff01d463a7eca21b7be50124d7c10ff8559)
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
Signed-off-by: Paul Barker <paul@pbarker.dev>
2026-07-15 18:39:01 +01:00
Antonin Godard
be96cd2ddb docs-wide: fix broken path links
Fix link that forget to add a leading '/', by looking at the output of
'grep -E -r --no-filename -o 'href="http.://[^/"]+' | sort | uniq' in
the HTML output.

(From yocto-docs rev: 5e1aade33c75ce58bfb20f0118a0c862b03f7b7b)

Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
(cherry picked from commit 12a5d2add529e789480fa782af3803dada982869)
[AG: fix conflicts: only applies to
 migration-guides/release-notes-3.4.2.rst]
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
Signed-off-by: Paul Barker <paul@pbarker.dev>
2026-07-15 18:39:01 +01:00
Antonin Godard
fbbf0d711c migration-guides/release-notes-3.4.2.rst: fix a broken link
Remove the extra '`'.

(From yocto-docs rev: 95ca2f097165b7689498575db282937a0fb0212a)

Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
(cherry picked from commit 4fd8cc10d3749f6ab3a372f943b5586f465565fb)
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
Signed-off-by: Paul Barker <paul@pbarker.dev>
2026-07-15 18:39:01 +01:00
Robert P. J. Day
be05e58dcf ref-manual: add "KERNEL_IMAGE_STRIP_EXTRA_SECTIONS" to variables
Add this variable to the variables glossary, and add links to it and
back to the do_strip() task for completeness.

(From yocto-docs rev: cc4b7ffb3b2558ae796decbd216302e253addf02)

Signed-off-by: Robert P. J. Day <rpjday@crashcourse.ca>
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
(cherry picked from commit f43fc622d2fd6bc832a2993841b2020f86c6475c)
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
Signed-off-by: Paul Barker <paul@pbarker.dev>
2026-07-15 18:39:01 +01:00
Robert P. J. Day
9ba4cbc08e ref-manual: expand on kernel "do_sizecheck" task
Expand on the description of do_sizecheck() to mention that it will
size-check on *all* kernel images listed in KERNEL_IMAGETYPES.

(From yocto-docs rev: 0a7d6b399d6354985527ed5fa7c2a0b132e0b640)

Signed-off-by: Robert P. J. Day <rpjday@crashcourse.ca>
[AG: kilobytes -> kibibytes
 See https://lore.kernel.org/r/DJUQAEXAC03Q.2T7IDXHKVIX95@bootlin.com]
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
(cherry picked from commit b01fb11a4909fe2d3afa6cb01bd7b179429e382c)
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
Signed-off-by: Paul Barker <paul@pbarker.dev>
2026-07-15 18:39:01 +01:00
Antonin Godard
84ecefc9f2 ref-manual/variables.rst: document the LOCALE_UTF8_IS_DEFAULT variable
Added by commit fcde0c43f7b5 ("libc-package.bbclass: add
LOCALE_UTF8_IS_DEFAULT") in OE-Core.

(From yocto-docs rev: dcf4ecb7f0dfab1b33d4ce557d04f53dff94a8ed)

Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
(cherry picked from commit 0d5a45cb46f89bd09ed9ac59e09cff77f2868b2d)
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
Signed-off-by: Paul Barker <paul@pbarker.dev>
2026-07-15 18:39:01 +01:00
Antonin Godard
6b7474f7ca ref-manual/variables.rst: document the IMAGE_*_DEBUGFS variables
Added by commit 41316293e442 ("lib/oe/image.py: Add image generation
for companion debug filesystem") in OE-Core.

(From yocto-docs rev: 51c53ef1e8b4ec4afbb84252e59dd5501f405064)

Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
(cherry picked from commit 75a69c94f5ba556fbe182c96a9bab2c561a0358e)
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
Signed-off-by: Paul Barker <paul@pbarker.dev>
2026-07-03 11:19:21 +01:00
Antonin Godard
2f9c3b01d1 ref-manual/variables.rst: document the LOCALE_PATHS variable
Added by commit 0ffc7cf01225 ("lib/oe/package: add LOCALE_PATHS to
add define all locations for locales") in OE-Core.

(From yocto-docs rev: f8c795f6e9b94d0a747b6ccbd3fcc55c84b16919)

Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
(cherry picked from commit b2267d27de5ac5ac163be4c740d725a181f3f2cf)
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
Signed-off-by: Paul Barker <paul@pbarker.dev>
2026-07-03 11:19:21 +01:00
Antonin Godard
4d3cdfe6ce ref-manual/variables.rst: document missing CONFLICT_*_FEATURES variables
Those are part of the features_check class.

(From yocto-docs rev: 297003a537798e6a4beafdd4ad520ed1c47c355a)

Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
(cherry picked from commit fb38ef19e67b31f855bddb61ad990020d5cef234)
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
Signed-off-by: Paul Barker <paul@pbarker.dev>
2026-07-03 11:19:21 +01:00
Antonin Godard
26efce957c ref-manual/variables.rst: document the CCACHE_NATIVE_RECIPES_ALLOWED variable
Added by commit 87cb2be71e0c ("ccache.bbclass: Add allowed list for
native recipes") in OE-Core.

(From yocto-docs rev: 67abd242b2fa08d3ebc3f1147058d683a4e1ef85)

Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
(cherry picked from commit 8881547719215a86a4a2e51ae3362462419a335b)
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
Signed-off-by: Paul Barker <paul@pbarker.dev>
2026-07-03 11:19:21 +01:00
Robert P. J. Day
3899ca2590 ref-manual: remove all traces of "kernel_menuconfig" task
It's not clear why the non-existent "kernel_menuconfig" task was
documented in the reference manual, but it does not appear to have
ever existed so delete all references to it and replace with pointers
to rewritten "menuconfig" task.

(From yocto-docs rev: 5bd2aab3ad66bcc9f0b58e1b0643d71697a63da7)

Signed-off-by: Robert P. J. Day <rpjday@crashcourse.ca>
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
(cherry picked from commit fdeabae4ba20e34c428ceb133ad41c4f3fedcf24)
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
Signed-off-by: Paul Barker <paul@pbarker.dev>
2026-07-03 11:19:21 +01:00
Paul Barker
a448bff87a recipe-style-guide: Clarify when License-Update tag is needed
As discussed in a patch review call, we don't need License-Update tags
in commits where the upstream license has not changed, and we are
instead changing the LICENSE variable to fix incorrect data.

(From yocto-docs rev: d4e19136ffee4fabfdfc5048835da64f0cfbb3eb)

Signed-off-by: Paul Barker <paul@pbarker.dev>
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
(cherry picked from commit db04faf56afded6c5f846cc60a9062e0a1ffa741)
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
Signed-off-by: Paul Barker <paul@pbarker.dev>
2026-07-03 11:19:21 +01:00
187 changed files with 16831 additions and 1148 deletions

View File

@@ -24,7 +24,7 @@ for full details on how to submit changes.
As a quick guide, patches should be sent to bitbake-devel@lists.openembedded.org
The git command to do that would be:
git send-email -M -1 --to bitbake-devel@lists.openembedded.org
git send-email -M -1 --to bitbake-devel@lists.openembedded.org --subject-prefix='2.8][PATCH'
If you're sending a patch related to the BitBake manual, make sure you copy
the Yocto Project documentation mailing list:

View File

@@ -763,8 +763,20 @@ def mkdirhier(directory):
try:
os.makedirs(directory)
except OSError as e:
if e.errno != errno.EEXIST or not os.path.isdir(directory):
if e.errno != errno.EEXIST:
raise e
if os.path.isdir(directory):
return
# We can end up here if there is a race between two mkdirs on an NFS mount,
# which happens more often with sstate that you'd think. The server returns
# EEXIST but the local attribute cache is out of date. It can be refreshed with
# an opendir call, so try that (via listdir) and check the directory again
# before we really fail.
os.listdir(os.path.dirname(directory))
if os.path.isdir(directory):
return
bb.warn("mkdir: %s is not a directory?")
raise e
def movefile(src, dest, newmtime = None, sstat = None):
"""Moves a file from src to dest, preserving all permissions and

View File

@@ -19,11 +19,8 @@ build a reference embedded OS called Poky.
you want to use Yocto Project on to build an image
(:term:`Build Host`) is not
a native Linux system, you can still perform these steps by using
CROss PlatformS (CROPS) and setting up a Poky container. See the
:ref:`dev-manual/start:setting up to use cross platforms (crops)`
section
in the Yocto Project Development Tasks Manual for more
information.
an :wikipedia:`OCI container <Open_Container_Initiative>` (using
`Docker <https://www.docker.com/>`__ or `Podman <https://podman.io/>`__).
- You may use version 2 of Windows Subsystem For Linux (WSL 2) to set
up a build host using Windows 10 or later, Windows Server 2019 or later.

View File

@@ -147,8 +147,7 @@ section.
#. *Set Up the Build Environment:* Be sure you are set up to use BitBake
in a shell. See the ":ref:`dev-manual/start:preparing the build host`"
section in the Yocto Project Development Tasks Manual for information on how
to get a build host ready that is either a native Linux machine or a machine
that uses CROPS.
to get a :term:`build host` ready.
#. *Clone the poky Repository:* You need to have a local copy of the
Yocto Project :term:`Source Directory` (i.e. a local

View File

@@ -268,14 +268,19 @@ License Updates
~~~~~~~~~~~~~~~
When you change the :term:`LICENSE` or :term:`LIC_FILES_CHKSUM` in the recipe
you need to briefly explain the reason for the change via a ``License-Update:``
tag. Often it's quite trivial, such as::
due to upstream making modifications to the license files, you need to briefly
explain the reason for the change via a ``License-Update:`` tag. Often it's
quite trivial, such as::
License-Update: copyright years refreshed
Less often, the actual licensing terms themselves will have changed. If so, do
try to link to upstream making/justifying that decision.
The ``License-Update:`` tag is not needed for commits which fix incorrect
license data in our metadata (for an example see OE-Core commit
:oecore_rev:`6c8b76d240d2457578a58787121bc5873d724ee2`).
Tips and Guidelines for Writing Recipes
---------------------------------------

View File

@@ -702,6 +702,12 @@ page.
.. note::
Patches submitted for a stable branch need to be isolated changes that are
human readable and understandable. Fixes for CVEs or other issues which have
a high complexity, consist of a large number of commits and/or a large
numbers of changed lines are unlikely to be accepted due to the difficulty
they cause with maintainability and scalability.
Changes will not typically be accepted for branches which are marked as
End-Of-Life (EOL).

View File

@@ -825,7 +825,7 @@ different ways:
- *systemd:* System Management Daemon (systemd) was designed to replace
SysVinit and to provide enhanced management of services. For more
information on systemd, see the systemd homepage at
https://freedesktop.org/wiki/Software/systemd/.
https://systemd.io/.
To enable a service using systemd, your recipe needs to inherit the
:ref:`ref-classes-systemd` class. See the ``systemd.bbclass`` file

View File

@@ -31,9 +31,18 @@ If needed, it can be disabled from a :term:`configuration file`::
INHERIT_DISTRO:remove = "create-spdx"
SPDX version 3 support is available on Yocto &DISTRO_NAME;, but disabled by
default. To enable it, add the following statements from a :term:`configuration
file`::
INHERIT_DISTRO:remove = "create-spdx"
INHERIT_DISTRO:append = " create-spdx-3.0"
The following documentation will make the assumption that SPDX3 is used.
Upon building an image, you will then get the compressed archive
``IMAGE-MACHINE.spdx.tar.zst`` contains the index and the files for the single
recipes.
``IMAGE-MACHINE.spdx.json`` file in ``tmp/deploy/images/MACHINE/`` inside
the :term:`Build Directory`.
The :ref:`ref-classes-create-spdx` class offers options to include
more information in the output :term:`SPDX` data:
@@ -50,19 +59,7 @@ more information in the output :term:`SPDX` data:
Though the toplevel :term:`SPDX` output is available in
``tmp/deploy/images/MACHINE/`` inside the :term:`Build Directory`, ancillary
generated files are available in ``tmp/deploy/spdx`` too, such as:
- The individual :term:`SPDX` JSON files in the ``IMAGE-MACHINE.spdx.tar.zst``
archive.
- Compressed archives of the files in the generated target packages,
in ``packages/packagename.tar.zst`` (when :term:`SPDX_ARCHIVE_PACKAGED`
is set).
- Compressed archives of the source files used to build the host tools
and the target packages in ``recipes/recipe-packagename.tar.zst``
(when :term:`SPDX_ARCHIVE_SOURCES` is set). Those are needed to fulfill
"source code access" license requirements.
generated files are available in ``tmp/deploy/spdx`` too.
See also the :term:`SPDX_CUSTOM_ANNOTATION_VARS` variable which allows
to associate custom notes to a recipe.

View File

@@ -251,11 +251,10 @@ Preparing the Build Host
This section provides procedures to set up a system to be used as your
:term:`Build Host` for
development using the Yocto Project. Your build host can be a native
Linux machine (recommended), it can be a machine (Linux, Mac, or
Windows) that uses `CROPS <https://github.com/crops/poky-container>`__,
which leverages `Docker Containers <https://www.docker.com/>`__ or it
can be a Windows machine capable of running version 2 of Windows Subsystem
For Linux (WSL 2).
Linux machine (recommended), it can be an :wikipedia:`OCI container
<Open_Container_Initiative>` (such as `Docker <https://www.docker.com/>`__ or
`Podman <https://podman.io/>`__), or it can be a Windows machine capable of
running version 2 of Windows Subsystem For Linux (WSL 2).
.. note::
@@ -339,101 +338,6 @@ the `Yocto Project BitBake
<https://marketplace.visualstudio.com/items?itemName=yocto-project.yocto-bitbake>`__
extension accordingly.
Setting Up to Use CROss PlatformS (CROPS)
-----------------------------------------
With `CROPS <https://github.com/crops/poky-container>`__, which
leverages `Docker Containers <https://www.docker.com/>`__, you can
create a Yocto Project development environment that is operating system
agnostic. You can set up a container in which you can develop using the
Yocto Project on a Windows, Mac, or Linux machine.
Follow these general steps to prepare a Windows, Mac, or Linux machine
as your Yocto Project build host:
#. *Determine What Your Build Host Needs:*
`Docker <https://www.docker.com/what-docker>`__ is a software
container platform that you need to install on the build host.
Depending on your build host, you might have to install different
software to support Docker containers. Go to the Docker installation
page and read about the platform requirements in "`Supported
Platforms <https://docs.docker.com/engine/install/#supported-platforms>`__"
your build host needs to run containers.
#. *Choose What To Install:* Depending on whether or not your build host
meets system requirements, you need to install "Docker CE Stable" or
the "Docker Toolbox". Most situations call for Docker CE. However, if
you have a build host that does not meet requirements (e.g.
Pre-Windows 10 or Windows 10 "Home" version), you must install Docker
Toolbox instead.
#. *Go to the Install Site for Your Platform:* Click the link for the
Docker edition associated with your build host's native software. For
example, if your build host is running Microsoft Windows Version 10
and you want the Docker CE Stable edition, click that link under
"Supported Platforms".
#. *Install the Software:* Once you have understood all the
pre-requisites, you can download and install the appropriate
software. Follow the instructions for your specific machine and the
type of the software you need to install:
- Install `Docker Desktop on
Windows <https://docs.docker.com/docker-for-windows/install/#install-docker-desktop-on-windows>`__
for Windows build hosts that meet requirements.
- Install `Docker Desktop on
MacOs <https://docs.docker.com/docker-for-mac/install/#install-and-run-docker-desktop-on-mac>`__
for Mac build hosts that meet requirements.
- Install `Docker Engine on
CentOS <https://docs.docker.com/engine/install/centos/>`__
for Linux build hosts running the CentOS distribution.
- Install `Docker Engine on
Debian <https://docs.docker.com/engine/install/debian/>`__
for Linux build hosts running the Debian distribution.
- Install `Docker Engine for
Fedora <https://docs.docker.com/engine/install/fedora/>`__
for Linux build hosts running the Fedora distribution.
- Install `Docker Engine for
Ubuntu <https://docs.docker.com/engine/install/ubuntu/>`__
for Linux build hosts running the Ubuntu distribution.
#. *Optionally Orient Yourself With Docker:* If you are unfamiliar with
Docker and the container concept, you can learn more here -
https://docs.docker.com/get-started/.
#. *Launch Docker or Docker Toolbox:* You should be able to launch
Docker or the Docker Toolbox and have a terminal shell on your
development host.
#. *Set Up the Containers to Use the Yocto Project:* Go to
https://github.com/crops/docker-win-mac-docs/wiki and follow
the directions for your particular build host (i.e. Linux, Mac, or
Windows).
Once you complete the setup instructions for your machine, you have
the Poky, Extensible SDK, and Toaster containers available. You can
click those links from the page and learn more about using each of
those containers.
Once you have a container set up, everything is in place to develop just
as if you were running on a native Linux machine. If you are going to
use the Poky container, see the
":ref:`dev-manual/start:cloning the \`\`poky\`\` repository`"
section. If you are going to use the Extensible SDK container, see the
":doc:`/sdk-manual/extensible`" Chapter in the Yocto
Project Application Development and the Extensible Software Development
Kit (eSDK) manual. If you are going to use the Toaster container, see
the ":doc:`/toaster-manual/setup-and-use`"
section in the Toaster User Manual. If you are a VSCode user, you can configure
the `Yocto Project BitBake
<https://marketplace.visualstudio.com/items?itemName=yocto-project.yocto-bitbake>`__
extension accordingly.
Setting Up to Use Windows Subsystem For Linux (WSL 2)
-----------------------------------------------------

View File

@@ -3,8 +3,8 @@
Using x32 psABI
***************
x32 processor-specific Application Binary Interface (`x32
psABI <https://software.intel.com/en-us/node/628948>`__) is a native
x32 processor-specific Application Binary Interface (:wikipedia:`x32
psABI <X32_ABI>`) is a native
32-bit processor-specific ABI for Intel 64 (x86-64) architectures. An
ABI defines the calling conventions between functions in a processing
environment. The interface determines what registers are used and what

View File

@@ -696,21 +696,6 @@ the ":ref:`kernel-dev/common:getting ready to develop using ``devtool```" Sectio
$ devtool modify linux-yocto
.. note::
During the checkout operation, there is a bug that could cause
errors such as the following:
.. code-block:: none
ERROR: Taskhash mismatch 2c793438c2d9f8c3681fd5f7bc819efa versus
be3a89ce7c47178880ba7bf6293d7404 for
/path/to/esdk/layers/poky/meta/recipes-kernel/linux/linux-yocto_4.10.bb.do_unpack
You can safely ignore these messages. The source code is correctly
checked out.
#. *Edit the Source Files* Follow these steps to make some simple
changes to the source files:

View File

@@ -25,3 +25,4 @@ Release 5.0 (scarthgap)
release-notes-5.0.16
release-notes-5.0.17
release-notes-5.0.18
release-notes-5.0.19

View File

@@ -200,7 +200,7 @@ openembedded-core
meta-mingw
- Repository Location: :yocto_git:`meta-mingw`
- Repository Location: :yocto_git:`/meta-mingw`
- Branch: :yocto_git:`honister </meta-mingw/log/?h=honister>`
- Tag: :yocto_git:`yocto-3.4.2 </meta-mingw/tag/?h=yocto-3.4.2>`
- Git Revision: :yocto_git:`f5d761cbd5c957e4405c5d40b0c236d263c916a8 </meta-mingw/commit/?id=f5d761cbd5c957e4405c5d40b0c236d263c916a8>`
@@ -239,4 +239,4 @@ yocto-docs
- Repository Location: :yocto_git:`/yocto-docs`
- Branch: :yocto_git:`honister </yocto-docs/log/?h=honister>`
- Tag: :yocto_git:`yocto-3.4.2 </yocto-docs/tag/?h=yocto-3.4.2>`
- Git Revision: :yocto_git:`3061d3d62054a5c3b9e16bfce4bcd186fa7a23d2` </yocto-docs/commit/?3061d3d62054a5c3b9e16bfce4bcd186fa7a23d2>`
- Git Revision: :yocto_git:`3061d3d62054a5c3b9e16bfce4bcd186fa7a23d2 </yocto-docs/commit/?3061d3d62054a5c3b9e16bfce4bcd186fa7a23d2>`

View File

@@ -73,7 +73,7 @@ New Features / Enhancements in 4.3
for the latest long-term release (6.1).
- The list of fixed kernel CVEs is updated regularly using data from
`linuxkernelcves.com <https://linuxkernelcves.com>`__.
`linuxkernelcves.com <https://web.archive.org/web/20240420122324/https://www.linuxkernelcves.com/>`__.
- A ``showconfig`` task was added to the :ref:`ref-classes-cml1` class, to
easily examine the final generated ``.config`` file.

View File

@@ -0,0 +1,663 @@
Release notes for Yocto-5.0.19 (Scarthgap)
------------------------------------------
gawk-native is now built from source instead of used from the host when
building grub2 & glibc to avoid reproducibility issues on newer host
distros.
Security Fixes in Yocto-5.0.19
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- avahi: Remove a reference to the rejected :cve_nist:`2021-36217`
- binutils: Fix :cve_nist:`2025-69644`
- busybox: Fix :cve_nist:`2026-29004`
- dpkg: Fix :cve_nist:`2026-2219`
- go: Fix :cve_nist:`2025-58183`, :cve_mitre:`2026-25679`, :cve_nist:`2026-27140`,
:cve_nist:`2026-27142`, :cve_nist:`2026-27143`, :cve_nist:`2026-27144`, :cve_nist:`2026-27145`,
:cve_nist:`2026-32280`, :cve_nist:`2026-32283`, :cve_nist:`2026-32288`, :cve_nist:`2026-32289`,
:cve_nist:`2026-33811`, :cve_nist:`2026-39817`, :cve_nist:`2026-39819`, :cve_nist:`2026-39820`,
:cve_nist:`2026-39825`, :cve_nist:`2026-39826`, :cve_nist:`2026-42499`, :cve_nist:`2026-42501`,
:cve_nist:`2026-42504` and :cve_nist:`2026-42507`
- go: Ignore :cve_nist:`2026-39836`
- libarchive: Fix :cve_nist:`2026-4424`
- libexif: Fix :cve_nist:`2026-32775`, :cve_nist:`2026-40385` and :cve_nist:`2026-40386`
- libinput: Fix :cve_nist:`2026-50292`
- libpng: Fix :cve_nist:`2026-33416`
- libsolv: Fix :cve_nist:`2026-9150`
- libsoup: Fix :cve_nist:`2025-11021` and :cve_nist:`2026-2369`
- libssh2: Fix :cve_nist:`2026-7598`
- libusb1: Fix :cve_nist:`2026-23679` and :cve_nist:`2026-47104`
- libxml-parser-perl: Fix :cve_nist:`2006-10003`
- linux-yocto/6.6: Fix :cve_nist:`2023-52920`, :cve_nist:`2024-14027`, :cve_nist:`2024-27022`,
:cve_nist:`2024-56647`, :cve_nist:`2025-21739`, :cve_nist:`2025-22125`, :cve_nist:`2025-38531`,
:cve_nist:`2025-38584`, :cve_nist:`2025-38710`, :cve_nist:`2025-39981`, :cve_nist:`2025-40219`,
:cve_nist:`2025-68315`, :cve_nist:`2025-71184`, :cve_nist:`2025-71239`, :cve_nist:`2025-71265`,
:cve_nist:`2025-71266`, :cve_nist:`2025-71267`, :cve_nist:`2025-71269`, :cve_nist:`2025-71274`,
:cve_nist:`2025-71286`, :cve_nist:`2025-71287`, :cve_nist:`2025-71288`, :cve_nist:`2025-71291`,
:cve_nist:`2025-71292`, :cve_nist:`2025-71295`, :cve_nist:`2025-71297`, :cve_nist:`2025-71304`,
:cve_nist:`2025-71305`, :cve_nist:`2026-23004`, :cve_nist:`2026-23171`, :cve_nist:`2026-23231`,
:cve_nist:`2026-23242`, :cve_nist:`2026-23243`, :cve_nist:`2026-23244`, :cve_nist:`2026-23245`,
:cve_nist:`2026-23246`, :cve_nist:`2026-23253`, :cve_nist:`2026-23255`, :cve_nist:`2026-23268`,
:cve_nist:`2026-23269`, :cve_nist:`2026-23270`, :cve_nist:`2026-23271`, :cve_nist:`2026-23272`,
:cve_nist:`2026-23273`, :cve_nist:`2026-23274`, :cve_nist:`2026-23277`, :cve_nist:`2026-23279`,
:cve_nist:`2026-23281`, :cve_nist:`2026-23284`, :cve_nist:`2026-23285`, :cve_nist:`2026-23286`,
:cve_nist:`2026-23287`, :cve_nist:`2026-23289`, :cve_nist:`2026-23290`, :cve_nist:`2026-23291`,
:cve_nist:`2026-23292`, :cve_nist:`2026-23293`, :cve_nist:`2026-23296`, :cve_nist:`2026-23298`,
:cve_nist:`2026-23300`, :cve_nist:`2026-23302`, :cve_nist:`2026-23303`, :cve_nist:`2026-23304`,
:cve_nist:`2026-23306`, :cve_nist:`2026-23307`, :cve_nist:`2026-23308`, :cve_nist:`2026-23310`,
:cve_nist:`2026-23312`, :cve_nist:`2026-23313`, :cve_nist:`2026-23315`, :cve_nist:`2026-23317`,
:cve_nist:`2026-23318`, :cve_nist:`2026-23319`, :cve_nist:`2026-23321`, :cve_nist:`2026-23324`,
:cve_nist:`2026-23325`, :cve_nist:`2026-23330`, :cve_nist:`2026-23334`, :cve_nist:`2026-23335`,
:cve_nist:`2026-23336`, :cve_nist:`2026-23339`, :cve_nist:`2026-23340`, :cve_nist:`2026-23343`,
:cve_nist:`2026-23347`, :cve_nist:`2026-23351`, :cve_nist:`2026-23352`, :cve_nist:`2026-23356`,
:cve_nist:`2026-23357`, :cve_nist:`2026-23359`, :cve_nist:`2026-23360`, :cve_nist:`2026-23362`,
:cve_nist:`2026-23364`, :cve_nist:`2026-23365`, :cve_nist:`2026-23367`, :cve_nist:`2026-23368`,
:cve_nist:`2026-23370`, :cve_nist:`2026-23372`, :cve_nist:`2026-23374`, :cve_nist:`2026-23378`,
:cve_nist:`2026-23379`, :cve_nist:`2026-23381`, :cve_nist:`2026-23382`, :cve_nist:`2026-23386`,
:cve_nist:`2026-23387`, :cve_nist:`2026-23388`, :cve_nist:`2026-23389`, :cve_nist:`2026-23391`,
:cve_nist:`2026-23392`, :cve_nist:`2026-23395`, :cve_nist:`2026-23396`, :cve_nist:`2026-23397`,
:cve_nist:`2026-23398`, :cve_nist:`2026-23399`, :cve_nist:`2026-23401`, :cve_nist:`2026-23403`,
:cve_nist:`2026-23404`, :cve_nist:`2026-23405`, :cve_nist:`2026-23406`, :cve_nist:`2026-23407`,
:cve_nist:`2026-23408`, :cve_nist:`2026-23409`, :cve_nist:`2026-23410`, :cve_nist:`2026-23411`,
:cve_nist:`2026-23412`, :cve_nist:`2026-23413`, :cve_nist:`2026-23414`, :cve_nist:`2026-23419`,
:cve_nist:`2026-23420`, :cve_nist:`2026-23422`, :cve_nist:`2026-23426`, :cve_nist:`2026-23427`,
:cve_nist:`2026-23428`, :cve_nist:`2026-23434`, :cve_nist:`2026-23438`, :cve_nist:`2026-23439`,
:cve_nist:`2026-23440`, :cve_nist:`2026-23441`, :cve_nist:`2026-23442`, :cve_nist:`2026-23443`,
:cve_nist:`2026-23444`, :cve_nist:`2026-23446`, :cve_nist:`2026-23447`, :cve_nist:`2026-23448`,
:cve_nist:`2026-23449`, :cve_nist:`2026-23450`, :cve_nist:`2026-23452`, :cve_nist:`2026-23454`,
:cve_nist:`2026-23455`, :cve_nist:`2026-23456`, :cve_nist:`2026-23457`, :cve_nist:`2026-23458`,
:cve_nist:`2026-23460`, :cve_nist:`2026-23461`, :cve_nist:`2026-23462`, :cve_nist:`2026-23463`,
:cve_nist:`2026-23465`, :cve_nist:`2026-23468`, :cve_nist:`2026-23474`, :cve_nist:`2026-23475`,
:cve_nist:`2026-31389`, :cve_nist:`2026-31391`, :cve_nist:`2026-31392`, :cve_nist:`2026-31393`,
:cve_nist:`2026-31396`, :cve_nist:`2026-31399`, :cve_nist:`2026-31400`, :cve_nist:`2026-31402`,
:cve_nist:`2026-31403`, :cve_nist:`2026-31405`, :cve_nist:`2026-31407`, :cve_nist:`2026-31408`,
:cve_nist:`2026-31409`, :cve_nist:`2026-31411`, :cve_nist:`2026-31412`, :cve_nist:`2026-31414`,
:cve_nist:`2026-31415`, :cve_nist:`2026-31416`, :cve_nist:`2026-31417`, :cve_nist:`2026-31418`,
:cve_nist:`2026-31421`, :cve_nist:`2026-31422`, :cve_nist:`2026-31423`, :cve_nist:`2026-31424`,
:cve_nist:`2026-31425`, :cve_nist:`2026-31426`, :cve_nist:`2026-31427`, :cve_nist:`2026-31428`,
:cve_nist:`2026-31429`, :cve_nist:`2026-31430`, :cve_nist:`2026-31431`, :cve_nist:`2026-31433`,
:cve_nist:`2026-31434`, :cve_nist:`2026-31439`, :cve_nist:`2026-31440`, :cve_nist:`2026-31441`,
:cve_nist:`2026-31446`, :cve_nist:`2026-31447`, :cve_nist:`2026-31448`, :cve_nist:`2026-31449`,
:cve_nist:`2026-31450`, :cve_nist:`2026-31451`, :cve_nist:`2026-31452`, :cve_nist:`2026-31453`,
:cve_nist:`2026-31454`, :cve_nist:`2026-31455`, :cve_nist:`2026-31458`, :cve_nist:`2026-31464`,
:cve_nist:`2026-31466`, :cve_nist:`2026-31467`, :cve_nist:`2026-31469`, :cve_nist:`2026-31473`,
:cve_nist:`2026-31474`, :cve_nist:`2026-31476`, :cve_nist:`2026-31477`, :cve_nist:`2026-31478`,
:cve_nist:`2026-31480`, :cve_nist:`2026-31482`, :cve_nist:`2026-31483`, :cve_nist:`2026-31485`,
:cve_nist:`2026-31488`, :cve_nist:`2026-31489`, :cve_nist:`2026-31492`, :cve_nist:`2026-31494`,
:cve_nist:`2026-31495`, :cve_nist:`2026-31496`, :cve_nist:`2026-31497`, :cve_nist:`2026-31498`,
:cve_nist:`2026-31500`, :cve_nist:`2026-31503`, :cve_nist:`2026-31504`, :cve_nist:`2026-31507`,
:cve_nist:`2026-31508`, :cve_nist:`2026-31509`, :cve_nist:`2026-31510`, :cve_nist:`2026-31512`,
:cve_nist:`2026-31515`, :cve_nist:`2026-31518`, :cve_nist:`2026-31519`, :cve_nist:`2026-31520`,
:cve_nist:`2026-31521`, :cve_nist:`2026-31522`, :cve_nist:`2026-31523`, :cve_nist:`2026-31524`,
:cve_nist:`2026-31525`, :cve_nist:`2026-31528`, :cve_nist:`2026-31532`, :cve_nist:`2026-31533`,
:cve_nist:`2026-31540`, :cve_nist:`2026-31542`, :cve_nist:`2026-31545`, :cve_nist:`2026-31546`,
:cve_nist:`2026-31548`, :cve_nist:`2026-31549`, :cve_nist:`2026-31550`, :cve_nist:`2026-31551`,
:cve_nist:`2026-31552`, :cve_nist:`2026-31555`, :cve_nist:`2026-31563`, :cve_nist:`2026-31565`,
:cve_nist:`2026-31566`, :cve_nist:`2026-31570`, :cve_nist:`2026-31576`, :cve_nist:`2026-31577`,
:cve_nist:`2026-31578`, :cve_nist:`2026-31580`, :cve_nist:`2026-31581`, :cve_nist:`2026-31583`,
:cve_nist:`2026-31584`, :cve_nist:`2026-31585`, :cve_nist:`2026-31586`, :cve_nist:`2026-31587`,
:cve_nist:`2026-31588`, :cve_nist:`2026-31590`, :cve_nist:`2026-31594`, :cve_nist:`2026-31595`,
:cve_nist:`2026-31596`, :cve_nist:`2026-31597`, :cve_nist:`2026-31598`, :cve_nist:`2026-31599`,
:cve_nist:`2026-31602`, :cve_nist:`2026-31603`, :cve_nist:`2026-31604`, :cve_nist:`2026-31605`,
:cve_nist:`2026-31607`, :cve_nist:`2026-31610`, :cve_nist:`2026-31611`, :cve_nist:`2026-31612`,
:cve_nist:`2026-31613`, :cve_nist:`2026-31614`, :cve_nist:`2026-31615`, :cve_nist:`2026-31616`,
:cve_nist:`2026-31617`, :cve_nist:`2026-31618`, :cve_nist:`2026-31619`, :cve_nist:`2026-31622`,
:cve_nist:`2026-31623`, :cve_nist:`2026-31624`, :cve_nist:`2026-31625`, :cve_nist:`2026-31626`,
:cve_nist:`2026-31627`, :cve_nist:`2026-31628`, :cve_nist:`2026-31629`, :cve_nist:`2026-31634`,
:cve_nist:`2026-31637`, :cve_nist:`2026-31638`, :cve_nist:`2026-31639`, :cve_nist:`2026-31642`,
:cve_nist:`2026-31646`, :cve_nist:`2026-31648`, :cve_nist:`2026-31649`, :cve_nist:`2026-31651`,
:cve_nist:`2026-31655`, :cve_nist:`2026-31656`, :cve_nist:`2026-31657`, :cve_nist:`2026-31658`,
:cve_nist:`2026-31659`, :cve_nist:`2026-31660`, :cve_nist:`2026-31661`, :cve_nist:`2026-31662`,
:cve_nist:`2026-31664`, :cve_nist:`2026-31665`, :cve_nist:`2026-31667`, :cve_nist:`2026-31668`,
:cve_nist:`2026-31669`, :cve_nist:`2026-31670`, :cve_nist:`2026-31671`, :cve_nist:`2026-31672`,
:cve_nist:`2026-31673`, :cve_nist:`2026-31674`, :cve_nist:`2026-31675`, :cve_nist:`2026-31676`,
:cve_nist:`2026-31678`, :cve_nist:`2026-31679`, :cve_nist:`2026-31680`, :cve_nist:`2026-31681`,
:cve_nist:`2026-31682`, :cve_nist:`2026-31683`, :cve_nist:`2026-31684`, :cve_nist:`2026-31685`,
:cve_nist:`2026-31686`, :cve_nist:`2026-31689`, :cve_nist:`2026-31693`, :cve_nist:`2026-31694`,
:cve_nist:`2026-31695`, :cve_nist:`2026-31696`, :cve_nist:`2026-31697`, :cve_nist:`2026-31698`,
:cve_nist:`2026-31699`, :cve_nist:`2026-31700`, :cve_nist:`2026-31701`, :cve_nist:`2026-31702`,
:cve_nist:`2026-31704`, :cve_nist:`2026-31705`, :cve_nist:`2026-31707`, :cve_nist:`2026-31708`,
:cve_nist:`2026-31709`, :cve_nist:`2026-31711`, :cve_nist:`2026-31712`, :cve_nist:`2026-31714`,
:cve_nist:`2026-31715`, :cve_nist:`2026-31716`, :cve_nist:`2026-31718`, :cve_nist:`2026-31720`,
:cve_nist:`2026-31721`, :cve_nist:`2026-31726`, :cve_nist:`2026-31728`, :cve_nist:`2026-31730`,
:cve_nist:`2026-31737`, :cve_nist:`2026-31738`, :cve_nist:`2026-31740`, :cve_nist:`2026-31741`,
:cve_nist:`2026-31747`, :cve_nist:`2026-31748`, :cve_nist:`2026-31749`, :cve_nist:`2026-31751`,
:cve_nist:`2026-31752`, :cve_nist:`2026-31754`, :cve_nist:`2026-31755`, :cve_nist:`2026-31756`,
:cve_nist:`2026-31758`, :cve_nist:`2026-31759`, :cve_nist:`2026-31761`, :cve_nist:`2026-31762`,
:cve_nist:`2026-31763`, :cve_nist:`2026-31768`, :cve_nist:`2026-31770`, :cve_nist:`2026-31773`,
:cve_nist:`2026-31778`, :cve_nist:`2026-31779`, :cve_nist:`2026-31780`, :cve_nist:`2026-31781`,
:cve_nist:`2026-31786`, :cve_nist:`2026-31787`, :cve_nist:`2026-31788`, :cve_nist:`2026-43007`,
:cve_nist:`2026-43011`, :cve_nist:`2026-43013`, :cve_nist:`2026-43014`, :cve_nist:`2026-43015`,
:cve_nist:`2026-43016`, :cve_nist:`2026-43017`, :cve_nist:`2026-43018`, :cve_nist:`2026-43020`,
:cve_nist:`2026-43023`, :cve_nist:`2026-43024`, :cve_nist:`2026-43025`, :cve_nist:`2026-43026`,
:cve_nist:`2026-43027`, :cve_nist:`2026-43028`, :cve_nist:`2026-43030`, :cve_nist:`2026-43032`,
:cve_nist:`2026-43033`, :cve_nist:`2026-43035`, :cve_nist:`2026-43037`, :cve_nist:`2026-43038`,
:cve_nist:`2026-43040`, :cve_nist:`2026-43041`, :cve_nist:`2026-43043`, :cve_nist:`2026-43044`,
:cve_nist:`2026-43046`, :cve_nist:`2026-43047`, :cve_nist:`2026-43050`, :cve_nist:`2026-43051`,
:cve_nist:`2026-43054`, :cve_nist:`2026-43056`, :cve_nist:`2026-43057`, :cve_nist:`2026-43058`,
:cve_nist:`2026-43060`, :cve_nist:`2026-43061`, :cve_nist:`2026-43062`, :cve_nist:`2026-43064`,
:cve_nist:`2026-43065`, :cve_nist:`2026-43066`, :cve_nist:`2026-43067`, :cve_nist:`2026-43068`,
:cve_nist:`2026-43069`, :cve_nist:`2026-43071`, :cve_nist:`2026-43072`, :cve_nist:`2026-43074`,
:cve_nist:`2026-43075`, :cve_nist:`2026-43076`, :cve_nist:`2026-43077`, :cve_nist:`2026-43078`,
:cve_nist:`2026-43079`, :cve_nist:`2026-43080`, :cve_nist:`2026-43081`, :cve_nist:`2026-43082`,
:cve_nist:`2026-43085`, :cve_nist:`2026-43086`, :cve_nist:`2026-43089`, :cve_nist:`2026-43091`,
:cve_nist:`2026-43092`, :cve_nist:`2026-43093`, :cve_nist:`2026-43094`, :cve_nist:`2026-43098`,
:cve_nist:`2026-43099`, :cve_nist:`2026-43103`, :cve_nist:`2026-43104`, :cve_nist:`2026-43105`,
:cve_nist:`2026-43109`, :cve_nist:`2026-43110`, :cve_nist:`2026-43111`, :cve_nist:`2026-43112`,
:cve_nist:`2026-43113`, :cve_nist:`2026-43114`, :cve_nist:`2026-43117`, :cve_nist:`2026-43120`,
:cve_nist:`2026-43123`, :cve_nist:`2026-43124`, :cve_nist:`2026-43128`, :cve_nist:`2026-43130`,
:cve_nist:`2026-43132`, :cve_nist:`2026-43133`, :cve_nist:`2026-43134`, :cve_nist:`2026-43135`,
:cve_nist:`2026-43136`, :cve_nist:`2026-43137`, :cve_nist:`2026-43139`, :cve_nist:`2026-43140`,
:cve_nist:`2026-43141`, :cve_nist:`2026-43143`, :cve_nist:`2026-43145`, :cve_nist:`2026-43147`,
:cve_nist:`2026-43148`, :cve_nist:`2026-43149`, :cve_nist:`2026-43150`, :cve_nist:`2026-43152`,
:cve_nist:`2026-43156`, :cve_nist:`2026-43157`, :cve_nist:`2026-43158`, :cve_nist:`2026-43159`,
:cve_nist:`2026-43162`, :cve_nist:`2026-43163`, :cve_nist:`2026-43167`, :cve_nist:`2026-43168`,
:cve_nist:`2026-43170`, :cve_nist:`2026-43171`, :cve_nist:`2026-43173`, :cve_nist:`2026-43180`,
:cve_nist:`2026-43182`, :cve_nist:`2026-43183`, :cve_nist:`2026-43184`, :cve_nist:`2026-43186`,
:cve_nist:`2026-43187`, :cve_nist:`2026-43189`, :cve_nist:`2026-43190`, :cve_nist:`2026-43194`,
:cve_nist:`2026-43196`, :cve_nist:`2026-43200`, :cve_nist:`2026-43202`, :cve_nist:`2026-43203`,
:cve_nist:`2026-43205`, :cve_nist:`2026-43206`, :cve_nist:`2026-43207`, :cve_nist:`2026-43209`,
:cve_nist:`2026-43211`, :cve_nist:`2026-43212`, :cve_nist:`2026-43214`, :cve_nist:`2026-43215`,
:cve_nist:`2026-43218`, :cve_nist:`2026-43221`, :cve_nist:`2026-43222`, :cve_nist:`2026-43223`,
:cve_nist:`2026-43225`, :cve_nist:`2026-43226`, :cve_nist:`2026-43227`, :cve_nist:`2026-43230`,
:cve_nist:`2026-43231`, :cve_nist:`2026-43232`, :cve_nist:`2026-43233`, :cve_nist:`2026-43236`,
:cve_nist:`2026-43238`, :cve_nist:`2026-43239`, :cve_nist:`2026-43240`, :cve_nist:`2026-43241`,
:cve_nist:`2026-43242`, :cve_nist:`2026-43245`, :cve_nist:`2026-43246`, :cve_nist:`2026-43251`,
:cve_nist:`2026-43252`, :cve_nist:`2026-43253`, :cve_nist:`2026-43255`, :cve_nist:`2026-43256`,
:cve_nist:`2026-43257`, :cve_nist:`2026-43261`, :cve_nist:`2026-43262`, :cve_nist:`2026-43264`,
:cve_nist:`2026-43265`, :cve_nist:`2026-43266`, :cve_nist:`2026-43268`, :cve_nist:`2026-43269`,
:cve_nist:`2026-43270`, :cve_nist:`2026-43271`, :cve_nist:`2026-43273`, :cve_nist:`2026-43275`,
:cve_nist:`2026-43277`, :cve_nist:`2026-43278`, :cve_nist:`2026-43279`, :cve_nist:`2026-43281`,
:cve_nist:`2026-43283`, :cve_nist:`2026-43284`, :cve_nist:`2026-43287`, :cve_nist:`2026-43288`,
:cve_nist:`2026-43289`, :cve_nist:`2026-43291`, :cve_nist:`2026-43295`, :cve_nist:`2026-43296`,
:cve_nist:`2026-43302`, :cve_nist:`2026-43304`, :cve_nist:`2026-43312`, :cve_nist:`2026-43313`,
:cve_nist:`2026-43314`, :cve_nist:`2026-43315`, :cve_nist:`2026-43316`, :cve_nist:`2026-43324`,
:cve_nist:`2026-43327`, :cve_nist:`2026-43328`, :cve_nist:`2026-43329`, :cve_nist:`2026-43330`,
:cve_nist:`2026-43332`, :cve_nist:`2026-43333`, :cve_nist:`2026-43334`, :cve_nist:`2026-43336`,
:cve_nist:`2026-43339`, :cve_nist:`2026-43340`, :cve_nist:`2026-43341`, :cve_nist:`2026-43342`,
:cve_nist:`2026-43343`, :cve_nist:`2026-43345`, :cve_nist:`2026-43350`, :cve_nist:`2026-43355`,
:cve_nist:`2026-43357`, :cve_nist:`2026-43359`, :cve_nist:`2026-43360`, :cve_nist:`2026-43361`,
:cve_nist:`2026-43362`, :cve_nist:`2026-43363`, :cve_nist:`2026-43365`, :cve_nist:`2026-43366`,
:cve_nist:`2026-43368`, :cve_nist:`2026-43370`, :cve_nist:`2026-43371`, :cve_nist:`2026-43372`,
:cve_nist:`2026-43373`, :cve_nist:`2026-43376`, :cve_nist:`2026-43377`, :cve_nist:`2026-43378`,
:cve_nist:`2026-43379`, :cve_nist:`2026-43380`, :cve_nist:`2026-43381`, :cve_nist:`2026-43382`,
:cve_nist:`2026-43383`, :cve_nist:`2026-43386`, :cve_nist:`2026-43387`, :cve_nist:`2026-43397`,
:cve_nist:`2026-43405`, :cve_nist:`2026-43406`, :cve_nist:`2026-43407`, :cve_nist:`2026-43409`,
:cve_nist:`2026-43411`, :cve_nist:`2026-43412`, :cve_nist:`2026-43413`, :cve_nist:`2026-43415`,
:cve_nist:`2026-43419`, :cve_nist:`2026-43420`, :cve_nist:`2026-43424`, :cve_nist:`2026-43425`,
:cve_nist:`2026-43426`, :cve_nist:`2026-43427`, :cve_nist:`2026-43428`, :cve_nist:`2026-43429`,
:cve_nist:`2026-43430`, :cve_nist:`2026-43432`, :cve_nist:`2026-43436`, :cve_nist:`2026-43437`,
:cve_nist:`2026-43439`, :cve_nist:`2026-43441`, :cve_nist:`2026-43445`, :cve_nist:`2026-43448`,
:cve_nist:`2026-43449`, :cve_nist:`2026-43450`, :cve_nist:`2026-43451`, :cve_nist:`2026-43452`,
:cve_nist:`2026-43453`, :cve_nist:`2026-43455`, :cve_nist:`2026-43457`, :cve_nist:`2026-43458`,
:cve_nist:`2026-43459`, :cve_nist:`2026-43466`, :cve_nist:`2026-43468`, :cve_nist:`2026-43469`,
:cve_nist:`2026-43471`, :cve_nist:`2026-43472`, :cve_nist:`2026-43473`, :cve_nist:`2026-43475`,
:cve_nist:`2026-43476`, :cve_nist:`2026-43480`, :cve_nist:`2026-43483`, :cve_nist:`2026-43484`,
:cve_nist:`2026-43488`, :cve_nist:`2026-43490`, :cve_nist:`2026-43491`, :cve_nist:`2026-43492`,
:cve_nist:`2026-43493`, :cve_nist:`2026-43494`, :cve_nist:`2026-43495`, :cve_nist:`2026-43496`,
:cve_nist:`2026-43497`, :cve_nist:`2026-43499`, :cve_nist:`2026-43500`, :cve_nist:`2026-43501`,
:cve_nist:`2026-43502`, :cve_nist:`2026-43503`, :cve_nist:`2026-45834`, :cve_nist:`2026-45835`,
:cve_nist:`2026-45836`, :cve_nist:`2026-45838`, :cve_nist:`2026-45839`, :cve_nist:`2026-45840`,
:cve_nist:`2026-45841`, :cve_nist:`2026-45842`, :cve_nist:`2026-45843`, :cve_nist:`2026-45844`,
:cve_nist:`2026-45845`, :cve_nist:`2026-45846`, :cve_nist:`2026-45847`, :cve_nist:`2026-45848`,
:cve_nist:`2026-45849`, :cve_nist:`2026-45851`, :cve_nist:`2026-45852`, :cve_nist:`2026-45856`,
:cve_nist:`2026-45857`, :cve_nist:`2026-45858`, :cve_nist:`2026-45860`, :cve_nist:`2026-45862`,
:cve_nist:`2026-45864`, :cve_nist:`2026-45865`, :cve_nist:`2026-45866`, :cve_nist:`2026-45867`,
:cve_nist:`2026-45868`, :cve_nist:`2026-45869`, :cve_nist:`2026-45870`, :cve_nist:`2026-45871`,
:cve_nist:`2026-45872`, :cve_nist:`2026-45873`, :cve_nist:`2026-45875`, :cve_nist:`2026-45878`,
:cve_nist:`2026-45879`, :cve_nist:`2026-45880`, :cve_nist:`2026-45881`, :cve_nist:`2026-45883`,
:cve_nist:`2026-45885`, :cve_nist:`2026-45886`, :cve_nist:`2026-45890`, :cve_nist:`2026-45891`,
:cve_nist:`2026-45895`, :cve_nist:`2026-45899`, :cve_nist:`2026-45902`, :cve_nist:`2026-45904`,
:cve_nist:`2026-45905`, :cve_nist:`2026-45910`, :cve_nist:`2026-45911`, :cve_nist:`2026-45912`,
:cve_nist:`2026-45913`, :cve_nist:`2026-45914`, :cve_nist:`2026-45915`, :cve_nist:`2026-45916`,
:cve_nist:`2026-45919`, :cve_nist:`2026-45920`, :cve_nist:`2026-45921`, :cve_nist:`2026-45923`,
:cve_nist:`2026-45924`, :cve_nist:`2026-45935`, :cve_nist:`2026-45936`, :cve_nist:`2026-45941`,
:cve_nist:`2026-45942`, :cve_nist:`2026-45946`, :cve_nist:`2026-45947`, :cve_nist:`2026-45948`,
:cve_nist:`2026-45954`, :cve_nist:`2026-45956`, :cve_nist:`2026-45957`, :cve_nist:`2026-45958`,
:cve_nist:`2026-45960`, :cve_nist:`2026-45962`, :cve_nist:`2026-45964`, :cve_nist:`2026-45965`,
:cve_nist:`2026-45968`, :cve_nist:`2026-45969`, :cve_nist:`2026-45970`, :cve_nist:`2026-45972`,
:cve_nist:`2026-45974`, :cve_nist:`2026-45976`, :cve_nist:`2026-45978`, :cve_nist:`2026-45981`,
:cve_nist:`2026-45982`, :cve_nist:`2026-45983`, :cve_nist:`2026-45984`, :cve_nist:`2026-45985`,
:cve_nist:`2026-45986`, :cve_nist:`2026-45987`, :cve_nist:`2026-45988`, :cve_nist:`2026-45989`,
:cve_nist:`2026-45991`, :cve_nist:`2026-45993`, :cve_nist:`2026-45994`, :cve_nist:`2026-45996`,
:cve_nist:`2026-45997`, :cve_nist:`2026-45998`, :cve_nist:`2026-45999`, :cve_nist:`2026-46000`,
:cve_nist:`2026-46002`, :cve_nist:`2026-46003`, :cve_nist:`2026-46004`, :cve_nist:`2026-46005`,
:cve_nist:`2026-46006`, :cve_nist:`2026-46009`, :cve_nist:`2026-46011`, :cve_nist:`2026-46012`,
:cve_nist:`2026-46015`, :cve_nist:`2026-46016`, :cve_nist:`2026-46018`, :cve_nist:`2026-46019`,
:cve_nist:`2026-46021`, :cve_nist:`2026-46022`, :cve_nist:`2026-46023`, :cve_nist:`2026-46024`,
:cve_nist:`2026-46026`, :cve_nist:`2026-46027`, :cve_nist:`2026-46028`, :cve_nist:`2026-46031`,
:cve_nist:`2026-46033`, :cve_nist:`2026-46037`, :cve_nist:`2026-46038`, :cve_nist:`2026-46040`,
:cve_nist:`2026-46043`, :cve_nist:`2026-46046`, :cve_nist:`2026-46047`, :cve_nist:`2026-46049`,
:cve_nist:`2026-46050`, :cve_nist:`2026-46051`, :cve_nist:`2026-46052`, :cve_nist:`2026-46053`,
:cve_nist:`2026-46056`, :cve_nist:`2026-46058`, :cve_nist:`2026-46062`, :cve_nist:`2026-46063`,
:cve_nist:`2026-46064`, :cve_nist:`2026-46065`, :cve_nist:`2026-46068`, :cve_nist:`2026-46069`,
:cve_nist:`2026-46070`, :cve_nist:`2026-46072`, :cve_nist:`2026-46075`, :cve_nist:`2026-46077`,
:cve_nist:`2026-46078`, :cve_nist:`2026-46079`, :cve_nist:`2026-46080`, :cve_nist:`2026-46082`,
:cve_nist:`2026-46083`, :cve_nist:`2026-46084`, :cve_nist:`2026-46086`, :cve_nist:`2026-46088`,
:cve_nist:`2026-46089`, :cve_nist:`2026-46091`, :cve_nist:`2026-46094`, :cve_nist:`2026-46098`,
:cve_nist:`2026-46099`, :cve_nist:`2026-46101`, :cve_nist:`2026-46102`, :cve_nist:`2026-46103`,
:cve_nist:`2026-46106`, :cve_nist:`2026-46107`, :cve_nist:`2026-46108`, :cve_nist:`2026-46110`,
:cve_nist:`2026-46111`, :cve_nist:`2026-46112`, :cve_nist:`2026-46113`, :cve_nist:`2026-46114`,
:cve_nist:`2026-46115`, :cve_nist:`2026-46116`, :cve_nist:`2026-46119`, :cve_nist:`2026-46120`,
:cve_nist:`2026-46121`, :cve_nist:`2026-46122`, :cve_nist:`2026-46123`, :cve_nist:`2026-46124`,
:cve_nist:`2026-46125`, :cve_nist:`2026-46127`, :cve_nist:`2026-46128`, :cve_nist:`2026-46129`,
:cve_nist:`2026-46131`, :cve_nist:`2026-46132`, :cve_nist:`2026-46133`, :cve_nist:`2026-46136`,
:cve_nist:`2026-46137`, :cve_nist:`2026-46138`, :cve_nist:`2026-46142`, :cve_nist:`2026-46143`,
:cve_nist:`2026-46144`, :cve_nist:`2026-46145`, :cve_nist:`2026-46146`, :cve_nist:`2026-46149`,
:cve_nist:`2026-46150`, :cve_nist:`2026-46151`, :cve_nist:`2026-46152`, :cve_nist:`2026-46155`,
:cve_nist:`2026-46158`, :cve_nist:`2026-46159`, :cve_nist:`2026-46160`, :cve_nist:`2026-46161`,
:cve_nist:`2026-46163`, :cve_nist:`2026-46164`, :cve_nist:`2026-46167`, :cve_nist:`2026-46168`,
:cve_nist:`2026-46169`, :cve_nist:`2026-46170`, :cve_nist:`2026-46172`, :cve_nist:`2026-46173`,
:cve_nist:`2026-46174`, :cve_nist:`2026-46176`, :cve_nist:`2026-46177`, :cve_nist:`2026-46178`,
:cve_nist:`2026-46179`, :cve_nist:`2026-46180`, :cve_nist:`2026-46184`, :cve_nist:`2026-46185`,
:cve_nist:`2026-46186`, :cve_nist:`2026-46187`, :cve_nist:`2026-46189`, :cve_nist:`2026-46190`,
:cve_nist:`2026-46191`, :cve_nist:`2026-46193`, :cve_nist:`2026-46194`, :cve_nist:`2026-46195`,
:cve_nist:`2026-46196`, :cve_nist:`2026-46197`, :cve_nist:`2026-46198`, :cve_nist:`2026-46199`,
:cve_nist:`2026-46204`, :cve_nist:`2026-46205`, :cve_nist:`2026-46206`, :cve_nist:`2026-46208`,
:cve_nist:`2026-46209`, :cve_nist:`2026-46212`, :cve_nist:`2026-46214`, :cve_nist:`2026-46218`,
:cve_nist:`2026-46219`, :cve_nist:`2026-46220`, :cve_nist:`2026-46225`, :cve_nist:`2026-46226`,
:cve_nist:`2026-46227`, :cve_nist:`2026-46229`, :cve_nist:`2026-46230`, :cve_nist:`2026-46231`,
:cve_nist:`2026-46232`, :cve_nist:`2026-46233`, :cve_nist:`2026-46234`, :cve_nist:`2026-46235`,
:cve_nist:`2026-46236`, :cve_nist:`2026-46238`, :cve_nist:`2026-46243`, :cve_nist:`2026-46244`,
:cve_nist:`2026-46247`, :cve_nist:`2026-46249`, :cve_nist:`2026-46250`, :cve_nist:`2026-46251`,
:cve_nist:`2026-46253`, :cve_nist:`2026-46255`, :cve_nist:`2026-46259`, :cve_nist:`2026-46260`,
:cve_nist:`2026-46261`, :cve_nist:`2026-46262`, :cve_nist:`2026-46265`, :cve_nist:`2026-46266`,
:cve_nist:`2026-46267`, :cve_nist:`2026-46270`, :cve_nist:`2026-46273`, :cve_nist:`2026-46274`,
:cve_nist:`2026-46275`, :cve_nist:`2026-46276`, :cve_nist:`2026-46280`, :cve_nist:`2026-46285`,
:cve_nist:`2026-46286`, :cve_nist:`2026-46287`, :cve_nist:`2026-46289`, :cve_nist:`2026-46291`,
:cve_nist:`2026-46292`, :cve_nist:`2026-46293`, :cve_nist:`2026-46294`, :cve_nist:`2026-46296`,
:cve_nist:`2026-46299`, :cve_nist:`2026-46300`, :cve_nist:`2026-46301`, :cve_nist:`2026-46303`,
:cve_nist:`2026-46304`, :cve_nist:`2026-46306`, :cve_nist:`2026-46307`, :cve_nist:`2026-46312`,
:cve_nist:`2026-46319`, :cve_nist:`2026-46323`, :cve_nist:`2026-46328`, :cve_nist:`2026-46333`,
:cve_nist:`2026-52911`, :cve_nist:`2026-52912`, :cve_nist:`2026-52914`, :cve_nist:`2026-52915`,
:cve_nist:`2026-52916`, :cve_nist:`2026-52918`, :cve_nist:`2026-52919`, :cve_nist:`2026-52920`,
:cve_nist:`2026-52921`, :cve_nist:`2026-52922`, :cve_nist:`2026-52923`, :cve_nist:`2026-52925`,
:cve_nist:`2026-52926`, :cve_nist:`2026-52931`, :cve_nist:`2026-52933`, :cve_nist:`2026-52936`,
:cve_nist:`2026-52941`, :cve_nist:`2026-53128`, :cve_nist:`2026-53130`, :cve_nist:`2026-53279`,
:cve_nist:`2026-53287`, :cve_nist:`2026-53289`, :cve_nist:`2026-53291`, :cve_nist:`2026-53293`,
:cve_nist:`2026-53294`, :cve_nist:`2026-53295`, :cve_nist:`2026-53296`, :cve_nist:`2026-53303`,
:cve_nist:`2026-53304`, :cve_nist:`2026-53306`, :cve_nist:`2026-53309`, :cve_nist:`2026-53314`
and :cve_nist:`2026-53320`
- linux-yocto/6.6: Ignore :cve_nist:`2023-53012`, :cve_nist:`2023-53187`, :cve_nist:`2024-26949`,
:cve_nist:`2024-26997`, :cve_nist:`2024-35983`, :cve_nist:`2024-36002`, :cve_nist:`2024-36288`,
:cve_nist:`2024-38542`, :cve_nist:`2024-38595`, :cve_nist:`2024-40920`, :cve_nist:`2024-40921`,
:cve_nist:`2024-40986`, :cve_nist:`2024-42111`, :cve_nist:`2024-42112`, :cve_nist:`2024-42150`,
:cve_nist:`2024-43820`, :cve_nist:`2024-43838`, :cve_nist:`2024-47711`, :cve_nist:`2024-49854`,
:cve_nist:`2024-50042`, :cve_nist:`2024-50097`, :cve_nist:`2024-50203`, :cve_nist:`2024-50206`,
:cve_nist:`2024-50238`, :cve_nist:`2024-50241`, :cve_nist:`2024-50249`, :cve_nist:`2024-50281`,
:cve_nist:`2024-53073`, :cve_nist:`2024-53097`, :cve_nist:`2024-53115`, :cve_nist:`2024-53133`,
:cve_nist:`2024-53169`, :cve_nist:`2024-53201`, :cve_nist:`2024-54191`, :cve_nist:`2024-54460`,
:cve_nist:`2024-56542`, :cve_nist:`2024-56550`, :cve_nist:`2024-56561`, :cve_nist:`2024-56782`,
:cve_nist:`2024-57805`, :cve_nist:`2024-57852`, :cve_nist:`2024-57879`, :cve_nist:`2024-57935`,
:cve_nist:`2024-57952`, :cve_nist:`2024-57990`, :cve_nist:`2024-58008`, :cve_nist:`2024-58081`,
:cve_nist:`2025-21752`, :cve_nist:`2025-21809`, :cve_nist:`2025-21813`, :cve_nist:`2025-21902`,
:cve_nist:`2025-22026`, :cve_nist:`2025-22030`, :cve_nist:`2025-22032`, :cve_nist:`2025-22069`,
:cve_nist:`2025-22112`, :cve_nist:`2025-37760`, :cve_nist:`2025-37814`, :cve_nist:`2025-37827`,
:cve_nist:`2025-37845`, :cve_nist:`2025-37868`, :cve_nist:`2025-37871`, :cve_nist:`2025-37878`,
:cve_nist:`2025-37895`, :cve_nist:`2025-37929`, :cve_nist:`2025-37962`, :cve_nist:`2025-37974`,
:cve_nist:`2025-38055`, :cve_nist:`2025-38098`, :cve_nist:`2025-38099`, :cve_nist:`2025-38162`,
:cve_nist:`2025-38169`, :cve_nist:`2025-38201`, :cve_nist:`2025-38224`, :cve_nist:`2025-38234`,
:cve_nist:`2025-38289`, :cve_nist:`2025-38325`, :cve_nist:`2025-38372`, :cve_nist:`2025-38373`,
:cve_nist:`2025-38405`, :cve_nist:`2025-38421`, :cve_nist:`2025-38484`, :cve_nist:`2025-38551`,
:cve_nist:`2025-38567`, :cve_nist:`2025-38675`, :cve_nist:`2025-38733`, :cve_nist:`2025-38736`,
:cve_nist:`2025-39688`, :cve_nist:`2025-39725`, :cve_nist:`2025-39775`, :cve_nist:`2025-39807`,
:cve_nist:`2025-39872`, :cve_nist:`2025-39930`, :cve_nist:`2025-39948`, :cve_nist:`2025-39965`,
:cve_nist:`2025-39999`, :cve_nist:`2025-40005`, :cve_nist:`2025-40007`, :cve_nist:`2025-40082`,
:cve_nist:`2025-40101`, :cve_nist:`2025-40131`, :cve_nist:`2025-40199`, :cve_nist:`2025-40213`,
:cve_nist:`2025-40290`, :cve_nist:`2025-40327`, :cve_nist:`2025-40332`, :cve_nist:`2025-40344`,
:cve_nist:`2025-68195`, :cve_nist:`2025-68207`, :cve_nist:`2025-68213`, :cve_nist:`2025-68215`,
:cve_nist:`2025-68298`, :cve_nist:`2025-68351`, :cve_nist:`2025-68357`, :cve_nist:`2025-68358`,
:cve_nist:`2025-68823`, :cve_nist:`2025-71070`, :cve_nist:`2025-71076`, :cve_nist:`2025-71135`,
:cve_nist:`2025-71145`, :cve_nist:`2025-71146`, :cve_nist:`2025-71155`, :cve_nist:`2025-71204`,
:cve_nist:`2025-71220`, :cve_nist:`2025-71222`, :cve_nist:`2025-71223`, :cve_nist:`2025-71224`,
:cve_nist:`2025-71229`, :cve_nist:`2025-71232`, :cve_nist:`2025-71233`, :cve_nist:`2025-71235`,
:cve_nist:`2025-71236`, :cve_nist:`2025-71237`, :cve_nist:`2025-71238`, :cve_nist:`2025-71268`,
:cve_nist:`2025-71270`, :cve_nist:`2025-71271`, :cve_nist:`2025-71290`, :cve_nist:`2025-71293`,
:cve_nist:`2025-71294`, :cve_nist:`2025-71296`, :cve_nist:`2025-71298`, :cve_nist:`2025-71299`,
:cve_nist:`2025-71300`, :cve_nist:`2025-71301`, :cve_nist:`2025-71302`, :cve_nist:`2026-23014`,
:cve_nist:`2026-23018`, :cve_nist:`2026-23079`, :cve_nist:`2026-23100`, :cve_nist:`2026-23111`,
:cve_nist:`2026-23112`, :cve_nist:`2026-23143`, :cve_nist:`2026-23148`, :cve_nist:`2026-23151`,
:cve_nist:`2026-23166`, :cve_nist:`2026-23169`, :cve_nist:`2026-23176`, :cve_nist:`2026-23178`,
:cve_nist:`2026-23180`, :cve_nist:`2026-23182`, :cve_nist:`2026-23187`, :cve_nist:`2026-23189`,
:cve_nist:`2026-23190`, :cve_nist:`2026-23193`, :cve_nist:`2026-23198`, :cve_nist:`2026-23200`,
:cve_nist:`2026-23201`, :cve_nist:`2026-23202`, :cve_nist:`2026-23204`, :cve_nist:`2026-23205`,
:cve_nist:`2026-23206`, :cve_nist:`2026-23209`, :cve_nist:`2026-23216`, :cve_nist:`2026-23217`,
:cve_nist:`2026-23220`, :cve_nist:`2026-23221`, :cve_nist:`2026-23222`, :cve_nist:`2026-23228`,
:cve_nist:`2026-23229`, :cve_nist:`2026-23230`, :cve_nist:`2026-23233`, :cve_nist:`2026-23234`,
:cve_nist:`2026-23235`, :cve_nist:`2026-23236`, :cve_nist:`2026-23237`, :cve_nist:`2026-23238`,
:cve_nist:`2026-23254`, :cve_nist:`2026-23256`, :cve_nist:`2026-23257`, :cve_nist:`2026-23258`,
:cve_nist:`2026-23260`, :cve_nist:`2026-23261`, :cve_nist:`2026-23262`, :cve_nist:`2026-23264`,
:cve_nist:`2026-23266`, :cve_nist:`2026-23267`, :cve_nist:`2026-23288`, :cve_nist:`2026-23341`,
:cve_nist:`2026-23355`, :cve_nist:`2026-23376`, :cve_nist:`2026-23418`, :cve_nist:`2026-23421`,
:cve_nist:`2026-23423`, :cve_nist:`2026-23424`, :cve_nist:`2026-23425`, :cve_nist:`2026-23429`,
:cve_nist:`2026-23430`, :cve_nist:`2026-23431`, :cve_nist:`2026-23432`, :cve_nist:`2026-23433`,
:cve_nist:`2026-23435`, :cve_nist:`2026-23436`, :cve_nist:`2026-23437`, :cve_nist:`2026-23445`,
:cve_nist:`2026-23451`, :cve_nist:`2026-23453`, :cve_nist:`2026-23459`, :cve_nist:`2026-23464`,
:cve_nist:`2026-23466`, :cve_nist:`2026-23467`, :cve_nist:`2026-23469`, :cve_nist:`2026-23470`,
:cve_nist:`2026-31390`, :cve_nist:`2026-31394`, :cve_nist:`2026-31395`, :cve_nist:`2026-31397`,
:cve_nist:`2026-31398`, :cve_nist:`2026-31401`, :cve_nist:`2026-31404`, :cve_nist:`2026-31406`,
:cve_nist:`2026-31413`, :cve_nist:`2026-31435`, :cve_nist:`2026-31436`, :cve_nist:`2026-31437`,
:cve_nist:`2026-31438`, :cve_nist:`2026-31442`, :cve_nist:`2026-31443`, :cve_nist:`2026-31444`,
:cve_nist:`2026-31445`, :cve_nist:`2026-31456`, :cve_nist:`2026-31457`, :cve_nist:`2026-31459`,
:cve_nist:`2026-31460`, :cve_nist:`2026-31461`, :cve_nist:`2026-31463`, :cve_nist:`2026-31465`,
:cve_nist:`2026-31468`, :cve_nist:`2026-31470`, :cve_nist:`2026-31471`, :cve_nist:`2026-31472`,
:cve_nist:`2026-31475`, :cve_nist:`2026-31479`, :cve_nist:`2026-31481`, :cve_nist:`2026-31484`,
:cve_nist:`2026-31490`, :cve_nist:`2026-31491`, :cve_nist:`2026-31499`, :cve_nist:`2026-31501`,
:cve_nist:`2026-31511`, :cve_nist:`2026-31513`, :cve_nist:`2026-31514`, :cve_nist:`2026-31517`,
:cve_nist:`2026-31526`, :cve_nist:`2026-31529`, :cve_nist:`2026-31535`, :cve_nist:`2026-31538`,
:cve_nist:`2026-31539`, :cve_nist:`2026-31541`, :cve_nist:`2026-31543`, :cve_nist:`2026-31544`,
:cve_nist:`2026-31547`, :cve_nist:`2026-31553`, :cve_nist:`2026-31554`, :cve_nist:`2026-31556`,
:cve_nist:`2026-31558`, :cve_nist:`2026-31559`, :cve_nist:`2026-31561`, :cve_nist:`2026-31562`,
:cve_nist:`2026-31564`, :cve_nist:`2026-31567`, :cve_nist:`2026-31569`, :cve_nist:`2026-31571`,
:cve_nist:`2026-31572`, :cve_nist:`2026-31573`, :cve_nist:`2026-31574`, :cve_nist:`2026-31575`,
:cve_nist:`2026-31582`, :cve_nist:`2026-31589`, :cve_nist:`2026-31591`, :cve_nist:`2026-31593`,
:cve_nist:`2026-31600`, :cve_nist:`2026-31601`, :cve_nist:`2026-31608`, :cve_nist:`2026-31609`,
:cve_nist:`2026-31620`, :cve_nist:`2026-31621`, :cve_nist:`2026-31631`, :cve_nist:`2026-31632`,
:cve_nist:`2026-31633`, :cve_nist:`2026-31635`, :cve_nist:`2026-31636`, :cve_nist:`2026-31640`,
:cve_nist:`2026-31641`, :cve_nist:`2026-31643`, :cve_nist:`2026-31644`, :cve_nist:`2026-31647`,
:cve_nist:`2026-31650`, :cve_nist:`2026-31652`, :cve_nist:`2026-31653`, :cve_nist:`2026-31654`,
:cve_nist:`2026-31666`, :cve_nist:`2026-31687`, :cve_nist:`2026-31690`, :cve_nist:`2026-31691`,
:cve_nist:`2026-31703`, :cve_nist:`2026-31710`, :cve_nist:`2026-31713`, :cve_nist:`2026-31719`,
:cve_nist:`2026-31727`, :cve_nist:`2026-31731`, :cve_nist:`2026-31732`, :cve_nist:`2026-31733`,
:cve_nist:`2026-31734`, :cve_nist:`2026-31735`, :cve_nist:`2026-31736`, :cve_nist:`2026-31739`,
:cve_nist:`2026-31742`, :cve_nist:`2026-31743`, :cve_nist:`2026-31744`, :cve_nist:`2026-31745`,
:cve_nist:`2026-31746`, :cve_nist:`2026-31750`, :cve_nist:`2026-31753`, :cve_nist:`2026-31757`,
:cve_nist:`2026-31760`, :cve_nist:`2026-31764`, :cve_nist:`2026-31765`, :cve_nist:`2026-31766`,
:cve_nist:`2026-31769`, :cve_nist:`2026-31772`, :cve_nist:`2026-31774`, :cve_nist:`2026-31775`,
:cve_nist:`2026-31776`, :cve_nist:`2026-31782`, :cve_nist:`2026-31783`, :cve_nist:`2026-31784`,
:cve_nist:`2026-31785`, :cve_nist:`2026-43004`, :cve_nist:`2026-43005`, :cve_nist:`2026-43006`,
:cve_nist:`2026-43008`, :cve_nist:`2026-43012`, :cve_nist:`2026-43021`, :cve_nist:`2026-43031`,
:cve_nist:`2026-43034`, :cve_nist:`2026-43039`, :cve_nist:`2026-43045`, :cve_nist:`2026-43055`,
:cve_nist:`2026-43059`, :cve_nist:`2026-43063`, :cve_nist:`2026-43070`, :cve_nist:`2026-43084`,
:cve_nist:`2026-43087`, :cve_nist:`2026-43090`, :cve_nist:`2026-43095`, :cve_nist:`2026-43096`,
:cve_nist:`2026-43097`, :cve_nist:`2026-43100`, :cve_nist:`2026-43102`, :cve_nist:`2026-43106`,
:cve_nist:`2026-43108`, :cve_nist:`2026-43121`, :cve_nist:`2026-43122`, :cve_nist:`2026-43131`,
:cve_nist:`2026-43138`, :cve_nist:`2026-43142`, :cve_nist:`2026-43144`, :cve_nist:`2026-43146`,
:cve_nist:`2026-43151`, :cve_nist:`2026-43154`, :cve_nist:`2026-43155`, :cve_nist:`2026-43160`,
:cve_nist:`2026-43164`, :cve_nist:`2026-43165`, :cve_nist:`2026-43166`, :cve_nist:`2026-43169`,
:cve_nist:`2026-43174`, :cve_nist:`2026-43175`, :cve_nist:`2026-43176`, :cve_nist:`2026-43177`,
:cve_nist:`2026-43178`, :cve_nist:`2026-43179`, :cve_nist:`2026-43181`, :cve_nist:`2026-43188`,
:cve_nist:`2026-43191`, :cve_nist:`2026-43192`, :cve_nist:`2026-43193`, :cve_nist:`2026-43195`,
:cve_nist:`2026-43201`, :cve_nist:`2026-43208`, :cve_nist:`2026-43210`, :cve_nist:`2026-43217`,
:cve_nist:`2026-43220`, :cve_nist:`2026-43224`, :cve_nist:`2026-43228`, :cve_nist:`2026-43229`,
:cve_nist:`2026-43235`, :cve_nist:`2026-43237`, :cve_nist:`2026-43243`, :cve_nist:`2026-43247`,
:cve_nist:`2026-43254`, :cve_nist:`2026-43259`, :cve_nist:`2026-43260`, :cve_nist:`2026-43263`,
:cve_nist:`2026-43267`, :cve_nist:`2026-43272`, :cve_nist:`2026-43274`, :cve_nist:`2026-43276`,
:cve_nist:`2026-43280`, :cve_nist:`2026-43282`, :cve_nist:`2026-43285`, :cve_nist:`2026-43286`,
:cve_nist:`2026-43290`, :cve_nist:`2026-43292`, :cve_nist:`2026-43293`, :cve_nist:`2026-43297`,
:cve_nist:`2026-43300`, :cve_nist:`2026-43301`, :cve_nist:`2026-43305`, :cve_nist:`2026-43306`,
:cve_nist:`2026-43307`, :cve_nist:`2026-43320`, :cve_nist:`2026-43321`, :cve_nist:`2026-43322`,
:cve_nist:`2026-43323`, :cve_nist:`2026-43325`, :cve_nist:`2026-43326`, :cve_nist:`2026-43335`,
:cve_nist:`2026-43337`, :cve_nist:`2026-43346`, :cve_nist:`2026-43347`, :cve_nist:`2026-43348`,
:cve_nist:`2026-43349`, :cve_nist:`2026-43351`, :cve_nist:`2026-43354`, :cve_nist:`2026-43356`,
:cve_nist:`2026-43358`, :cve_nist:`2026-43364`, :cve_nist:`2026-43367`, :cve_nist:`2026-43369`,
:cve_nist:`2026-43374`, :cve_nist:`2026-43375`, :cve_nist:`2026-43384`, :cve_nist:`2026-43385`,
:cve_nist:`2026-43388`, :cve_nist:`2026-43389`, :cve_nist:`2026-43390`, :cve_nist:`2026-43391`,
:cve_nist:`2026-43392`, :cve_nist:`2026-43393`, :cve_nist:`2026-43394`, :cve_nist:`2026-43395`,
:cve_nist:`2026-43396`, :cve_nist:`2026-43398`, :cve_nist:`2026-43399`, :cve_nist:`2026-43400`,
:cve_nist:`2026-43401`, :cve_nist:`2026-43402`, :cve_nist:`2026-43403`, :cve_nist:`2026-43404`,
:cve_nist:`2026-43408`, :cve_nist:`2026-43410`, :cve_nist:`2026-43417`, :cve_nist:`2026-43418`,
:cve_nist:`2026-43422`, :cve_nist:`2026-43423`, :cve_nist:`2026-43431`, :cve_nist:`2026-43433`,
:cve_nist:`2026-43434`, :cve_nist:`2026-43435`, :cve_nist:`2026-43438`, :cve_nist:`2026-43440`,
:cve_nist:`2026-43442`, :cve_nist:`2026-43444`, :cve_nist:`2026-43446`, :cve_nist:`2026-43447`,
:cve_nist:`2026-43454`, :cve_nist:`2026-43460`, :cve_nist:`2026-43461`, :cve_nist:`2026-43462`,
:cve_nist:`2026-43463`, :cve_nist:`2026-43467`, :cve_nist:`2026-43470`, :cve_nist:`2026-43474`,
:cve_nist:`2026-43477`, :cve_nist:`2026-43478`, :cve_nist:`2026-43479`, :cve_nist:`2026-43481`,
:cve_nist:`2026-43482`, :cve_nist:`2026-43485`, :cve_nist:`2026-43486`, :cve_nist:`2026-43487`,
:cve_nist:`2026-43489` and :cve_nist:`2026-43498`
- lz4: Remove a reference to the rejected :cve_nist:`2025-62813`
- nfs-utils: Fix :cve_nist:`2025-12801`
- openssh: Fix :cve_nist:`2026-35386`, :cve_nist:`2026-35385`, :cve_nist:`2026-35387` and
:cve_nist:`2026-35388`
- python3-requests: Fix :cve_nist:`2026-25645`
- python3: Fix :cve_nist:`2025-13462`, :cve_nist:`2026-0672`, :cve_nist:`2026-1502`,
:cve_nist:`2026-3644`, :cve_nist:`2026-4224`, :cve_nist:`2026-4519`, :cve_nist:`2026-4786`,
:cve_nist:`2026-6019` and :cve_nist:`2026-6100`
- python3: Ignore :cve_nist:`2026-3087`
- qemu: Fix :cve_nist:`2024-6519`
- qemu: fix :cve_nist:`2025-11234`
- rust,libstd-rs: Ignore :cve_nist:`2024-3566`
- tiff: fix :cve_nist:`2026-4775`
- util-linux: Fix :cve_nist:`2026-27456`
- xserver-xorg: Fix :cve_nist:`2026-33999`, :cve_nist:`2026-34000`, :cve_nist:`2026-34001`,
:cve_nist:`2026-34002` and :cve_nist:`2026-34003`
- xwayland: Fix :cve_nist:`2026-33999`, :cve_nist:`2026-34000`, :cve_nist:`2026-34001`,
:cve_nist:`2026-34002` and :cve_nist:`2026-34003`
- xz: Fix :cve_nist:`2026-34743`
Fixes in Yocto-5.0.19
~~~~~~~~~~~~~~~~~~~~~
- apr-util: Add :term:`CVE_PRODUCT` to support product name
- apr: Add :term:`CVE_PRODUCT` to support product name
- bitbake: data: fix issue with varflag exclusion
- bitbake: fetch2/git: quote shallow extra ref arguments
- bitbake: fetch2/wget: handle HTTP 308 Permanent Redirect
- bitbake: fetch2/wget: limit auth on checkstatus redirects
- bitbake: fetch2: Unpack RPMs with --no-absolute-filenames
- bitbake: fetch2: validate deb/ipk data member names
- bitbake: fetch2: validate striplevel parameter
- bitbake: hashserv/tests: use valid 64-character unihashes
- bitbake: hashserv: validate unihash values
- bitbake: tests/fetch: cover checkstatus redirect auth handling
- bsp-guide: mention bootloader and device tree in BSP intro
- bsp-guide: update guide to reflect newer beaglebone
- build-appliance-image: Update to scarthgap head revisions
- build-manual: update :term:`ROOTFS_POSTPROCESS_COMMAND` example
- bzip2: set :term:`CVE_PRODUCT`
- cargo: set :term:`CVE_PRODUCT`
- classes/base: prefer gnu-prefixed :term:`HOSTTOOLS`
- classes/gtk-icon-cache: fix libdir passed to the postrm intercept
- conf/machine: fix typos in ARM and x86 README files
- contributor-guide: couple minor typo/grammar fixes
- contributor-guide: fix type "maintainance" to "maintenance"
- dev-manual: drop "PREFERRED_VERSION" from x86-base.inc snippet
- dev-manual: fix broken grammar in "Libraries" section
- dev-manual: fix grammatical error, missing word "with"
- dev-manual: fully define SOLIBS-related variables in bitbake.conf
- dev-manual: remove semicolons for rootfs commands
- dev-manual: SysVinit is the default init manager for Poky
- dev-manual: update :term:`AUTOREV` explanation to match current file
- devtool: prevent 'devtool modify -n' from corrupting kernel Git repos
- docs: conf.py: add a :yocto_bug: role
- docs: conf.py: define new \*_path roles
- docs: conf.py: define new {oecore,bitbake,meta_yocto}_rev roles
- docs: index.rst: update "Software Overview" to "Technical Overview"
- docs: "Transitioning ..." Various pedantic cleanups
- docs: What I Wish I'd Known: Various pedantic cleanups
- docs: YP Quick Build: delete extraneous periods in list
- gawk-native: fix gcc-15/C23 compilation issues
- gawk: trim native build configuration
- gawk: use native gawk when building glibc and grub
- gdb: backport a patch to fix static_assert in recent GCC
- gnupg: upgrade to 2.4.9
- go.bbclass: change GOTMPDIR to improve reproducibility
- go.bbclass: disable workspaces
- grub/glibc: Bump versions to resolve hashequiv/reproducibility issues
- kernel-dev: remove references to defunct LTSI project
- linux-yocto/6.6: address ltp hang
- linux-yocto/6.6: genericarm64 fix configuration audit warning
- linux-yocto/6.6: update to v6.6.142
- lttng-modules: Fix trace_hrtimer_start build failure
- meta/lib/oe/package.py: fix path to kernel sources in save_debugsources_info
- meta: fix generation of kernel CONFIGi\_ in SPDX3
- migration-guide: add release notes for 4.0.35 5.0.18
- oeqa/core/runner: stub addDuration in OETestResult
- oeqa/runtime/parselogs: update pci BAR ignore for kernel 6.10
- oeqa: Drop /git/ from our urls
- oeqa: runtime: go: Increase test_go_compile/test_go_module timeout
- openssl: upgrade to 3.5.7
- overview-manual: add ":term:" for OE Build System
- overview-manual: fix "checkout" versus "check out"
- overview-manual: fix typo, "semi-colon" -> "colon"
- overview-manual: hyphens not allowed in file version
- overview-manual: inform the reader early of "bitbake-getvar"
- overview-manual: mention that patch files can be compressed
- overview-manual: provide a more expansive definition of "layer"
- overview-manual: remind reader that meta-poky is a distro layer
- overview-manual: update deploy.bbclass snippet
- overview-manual: use correct spelling "counterpart"
- overview-manual: yp-intro.rst: add link to "buildbot"
- overview-manual: yp-intro.rst: delete really old references
- perl: link to the system zlib instead of a vendored copy
- poky.conf: Bump version for 5.0.19 release
- pseudo: Update to 1.9.8
- python_setuptools_build_meta: clean the build directory in configure
- recipe-style-guide.rst: two minor grammatical tweaks
- recipetool: Recognise https://git. as git urls
- ref-manual/variables.rst: link \*MIRRORS definitions to the BitBake manual
- ref-manual: add more explanation to glossary variable :term:`LICENSE`
- ref-manual: clarify that :term:`PACKAGE_EXCLUDE` supports DEB packaging
- ref-manual: clarify use of "PACKAGE_ARCH" in a packagegroup
- ref-manual: document :term:`RM_WORK_EXCLUDE_ITEMS` variable
- scripts/install-buildtools: Update to 5.0.18
- security-team.rst: update my email address and key
- security-team: Add section on multi-project embargoes
- security-team: Tidy and update section on security team operations
- security-team: Update membership list
- setuptools3: clean the build directory in configure
- setuptools3_legacy: ensure ${B} is clean
- systemd: update musl specific patch to apply
- tzdata/tzcode-native: upgrade to 2026b
- wic: filemap: use separate fd for SEEK_HOLE probes
Known Issues in Yocto-5.0.19
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- N/A
Contributors to Yocto-5.0.19
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Thanks to the following people who contributed to this release:
- Adarsh Jagadish Kamini
- Alexander Kanavin
- Amaury Couderc
- Anders Heimer
- Anil Dongare
- Ankur Tyagi
- Antonin Godard
- Benjamin Robin (Schneider Electric)
- Bruce Ashfield
- Changqing Li
- Deepak Rathore
- Enrico Jörns
- Guðni Már Gilbert
- He Zhe
- Himanshu Jadon
- Hitendra Prajapati
- Hugo SIMELIERE (Schneider Electric)
- Jonas Munsin
- João Marcos Costa (Schneider Electric)
- Lee Chee Yang
- Marcio Henriques
- Mark Hatle
- Marta Rybczynska
- Martin Jansa
- Mathieu Dubois-Briand
- Naman Jain
- Paul Barker
- Peter Bergin
- Peter Marko
- Prabhudasu Vatala
- Richard Purdie
- Robert P. J. Day
- Ross Burton
- Shubham Pushpkar
- Sudhir Dumbhare
- Theo Gaige (Schneider Electric)
- Trevor Woerner
- Vijay Anusuri
- Yoann Congal
- Zahir Hussain
Repositories / Downloads for Yocto-5.0.19
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
yocto-docs
- Repository Location: :yocto_git:`/yocto-docs`
- Branch: :yocto_git:`scarthgap </yocto-docs/log/?h=scarthgap>`
- Tag: :yocto_git:`yocto-5.0.19 </yocto-docs/log/?h=yocto-5.0.19>`
- Git Revision: :yocto_git:`1b819d324780a699d9307a2d4e68c69b576ab748 </yocto-docs/commit/?id=1b819d324780a699d9307a2d4e68c69b576ab748>`
- Release Artefact: yocto-docs-1b819d324780a699d9307a2d4e68c69b576ab748
- sha: b2c484d8d13b05b133f6f23f44e7757e4b53d93c27c9ea76d1a2e5f759f51af0
- Download Locations:
https://downloads.yoctoproject.org/releases/yocto/yocto-5.0.19/yocto-docs-1b819d324780a699d9307a2d4e68c69b576ab748.tar.bz2
https://mirrors.edge.kernel.org/yocto/yocto/yocto-5.0.19/yocto-docs-1b819d324780a699d9307a2d4e68c69b576ab748.tar.bz2
poky
- Repository Location: :yocto_git:`/poky`
- Branch: :yocto_git:`scarthgap </poky/log/?h=scarthgap>`
- Tag: :yocto_git:`yocto-5.0.19 </poky/log/?h=yocto-5.0.19>`
- Git Revision: :yocto_git:`bb98354685781296e3b3737e7762412100f359c2 </poky/commit/?id=bb98354685781296e3b3737e7762412100f359c2>`
- Release Artefact: poky-bb98354685781296e3b3737e7762412100f359c2
- sha: 37fd9eeff8043e6d7d595421b8ac40d38357d2d4ce3a6d0f86a0f7d884c995c3
- Download Locations:
https://downloads.yoctoproject.org/releases/yocto/yocto-5.0.19/poky-bb98354685781296e3b3737e7762412100f359c2.tar.bz2
https://mirrors.edge.kernel.org/yocto/yocto/yocto-5.0.19/poky-bb98354685781296e3b3737e7762412100f359c2.tar.bz2
openembedded-core
- Repository Location: :oe_git:`/openembedded-core`
- Branch: :oe_git:`scarthgap </openembedded-core/log/?h=scarthgap>`
- Tag: :oe_git:`yocto-5.0.19 </openembedded-core/log/?h=yocto-5.0.19>`
- Git Revision: :oe_git:`2814f0962f56c8d1afa4de76d2895ba9b5cb767d </openembedded-core/commit/?id=2814f0962f56c8d1afa4de76d2895ba9b5cb767d>`
- Release Artefact: oecore-2814f0962f56c8d1afa4de76d2895ba9b5cb767d
- sha: 8556e454499fcda4026dc58fb8fc627861720f5c006bd72bf3b455dabd22a0e8
- Download Locations:
https://downloads.yoctoproject.org/releases/yocto/yocto-5.0.19/oecore-2814f0962f56c8d1afa4de76d2895ba9b5cb767d.tar.bz2
https://mirrors.edge.kernel.org/yocto/yocto/yocto-5.0.19/oecore-2814f0962f56c8d1afa4de76d2895ba9b5cb767d.tar.bz2
meta-yocto
- Repository Location: :yocto_git:`/meta-yocto`
- Branch: :yocto_git:`scarthgap </meta-yocto/log/?h=scarthgap>`
- Tag: :yocto_git:`yocto-5.0.19 </meta-yocto/log/?h=yocto-5.0.19>`
- Git Revision: :yocto_git:`2f749ae477c3b94dce71038f025180d7f612dab0 </meta-yocto/commit/?id=2f749ae477c3b94dce71038f025180d7f612dab0>`
- Release Artefact: meta-yocto-2f749ae477c3b94dce71038f025180d7f612dab0
- sha: 754237ee59a67d31da1f242555c77b75a96d9cdabdf0a4c9cfd98e378643d031
- Download Locations:
https://downloads.yoctoproject.org/releases/yocto/yocto-5.0.19/meta-yocto-2f749ae477c3b94dce71038f025180d7f612dab0.tar.bz2
https://mirrors.edge.kernel.org/yocto/yocto/yocto-5.0.19/meta-yocto-2f749ae477c3b94dce71038f025180d7f612dab0.tar.bz2
meta-mingw
- Repository Location: :yocto_git:`/meta-mingw`
- Branch: :yocto_git:`scarthgap </meta-mingw/log/?h=scarthgap>`
- Tag: :yocto_git:`yocto-5.0.19 </meta-mingw/log/?h=yocto-5.0.19>`
- Git Revision: :yocto_git:`bd9fef71ec005be3c3a6d7f8b99d8116daf70c4f </meta-mingw/commit/?id=bd9fef71ec005be3c3a6d7f8b99d8116daf70c4f>`
- Release Artefact: meta-mingw-bd9fef71ec005be3c3a6d7f8b99d8116daf70c4f
- sha: ab073def6487f237ac125d239b3739bf02415270959546b6b287778664f0ae65
- Download Locations:
https://downloads.yoctoproject.org/releases/yocto/yocto-5.0.19/meta-mingw-bd9fef71ec005be3c3a6d7f8b99d8116daf70c4f.tar.bz2
https://mirrors.edge.kernel.org/yocto/yocto/yocto-5.0.19/meta-mingw-bd9fef71ec005be3c3a6d7f8b99d8116daf70c4f.tar.bz2
bitbake
- Repository Location: :oe_git:`/bitbake`
- Branch: :oe_git:`2.8 </bitbake/log/?h=2.8>`
- Tag: :oe_git:`yocto-5.0.19 </bitbake/log/?h=yocto-5.0.19>`
- Git Revision: :oe_git:`0880963fea4d91a034e4a6e007d23f98658ab986 </bitbake/commit/?id=0880963fea4d91a034e4a6e007d23f98658ab986>`
- Release Artefact: bitbake-0880963fea4d91a034e4a6e007d23f98658ab986
- sha: 2bbf83d622fd4ad7ef0110378a9c88b683b2d82a911aba681b561446ec2f486b
- Download Locations:
https://downloads.yoctoproject.org/releases/yocto/yocto-5.0.19/bitbake-0880963fea4d91a034e4a6e007d23f98658ab986.tar.bz2
https://mirrors.edge.kernel.org/yocto/yocto/yocto-5.0.19/bitbake-0880963fea4d91a034e4a6e007d23f98658ab986.tar.bz2

View File

@@ -166,7 +166,7 @@ New Features / Enhancements in 5.0
``meta/lib/patchtest/tests``) and make a number of improvements to enable
it to validate patches submitted on the mailing list again. Additionally,
make it work with the original upstream version of
`Patchwork <http://jk.ozlabs.org/projects/patchwork/>`__.
`Patchwork <https://web.archive.org/web/20250823174533/http://jk.ozlabs.org/projects/patchwork/>`__.
- Add an optional ``unimplemented-ptest`` QA warning to detect upstream
packages with tests, that do not use ptest.
@@ -217,7 +217,7 @@ New Features / Enhancements in 5.0
state directory (i.e., ``/run``).
- Allow to disable colored text output through the
`NO_COLOR <https://no-color.org/>`__ environment variable.
``NO_COLOR`` environment variable.
- ``git-make-shallow`` script: add support for Git's ``safe.bareRepository=explicit``
configuration setting.

View File

@@ -58,16 +58,12 @@ Project. Most find that it is best to have a native Linux machine
function as the development host. However, it is possible to use a
system that does not run Linux as its operating system as your
development host. When you have a Mac or Windows-based system, you can
set it up as the development host by using
`CROPS <https://github.com/crops/poky-container>`__, which leverages
`Docker Containers <https://www.docker.com/>`__. Once you take the steps
to set up a CROPS machine, you effectively have access to a shell
set it up as the development host by using an :wikipedia:`OCI container
<Open_Container_Initiative>` (using `Docker <https://www.docker.com/>`__ or
`Podman <https://podman.io/>`__). Once you take the steps
to set up container, you effectively have access to a shell
environment that is similar to what you see when using a Linux-based
development host. For the steps needed to set up a system using CROPS,
see the
":ref:`dev-manual/start:setting up to use cross platforms (crops)`"
section in
the Yocto Project Development Tasks Manual.
development host.
If your development host is going to be a system that runs a Linux
distribution, you must still take steps to prepare the system
@@ -87,7 +83,7 @@ are several ways of working in the Yocto Project environment:
which uses
BitBake, in a command-line environment from a shell on your
development host. You can accomplish this from a host that is a
native Linux machine or from a host that has been set up with CROPS.
native Linux machine or from a container.
Either way, you create, modify, and build images and applications all
within a shell-based environment using components and tools available
through your Linux distribution and the Yocto Project.
@@ -365,7 +361,7 @@ commands.
.. note::
- For more information on Git, see
https://git-scm.com/documentation.
https://git-scm.com/docs.
- If you need to download Git, it is recommended that you add Git to
your system through your distribution's "software store" (e.g. for
@@ -496,7 +492,7 @@ you can manage with a small set of basic operations and workflows once
you understand the basic philosophy behind Git. You do not have to be an
expert in Git to be functional. A good place to look for instruction on
a minimal set of Git commands is
`here <https://git-scm.com/documentation>`__.
`here <https://git-scm.com/docs>`__.
The following list of Git commands briefly describes some basic Git
operations as a way to get started. As with any set of commands, this

View File

@@ -285,13 +285,6 @@ Development Tools
Here are tools that help you develop images and applications using
the Yocto Project:
- *CROPS:* `CROPS <https://github.com/crops/poky-container/>`__ is an
open source, cross-platform development framework that leverages
`Docker Containers <https://www.docker.com/>`__. CROPS provides an
easily managed, extensible environment that allows you to build
binaries for a variety of architectures on Windows, Linux and Mac OS
X hosts.
- *devtool:* This command-line tool is available as part of the
extensible SDK (eSDK) and is its cornerstone. You can use ``devtool``
to help build, test, and package software within the eSDK. You can
@@ -534,9 +527,9 @@ Linux.
Build Appliance was useful as a way to try out development in the
Yocto Project environment.
#. *CROPS:* The final and best solution available now for developing
using the Yocto Project on a system not native to Linux is with
:ref:`CROPS <overview-manual/yp-intro:development tools>`.
#. *CROPS:* Used to be a solution available for developing
using the Yocto Project on a system not native to Linux (see
https://github.com/crops/poky-container).
Development Methods
===================
@@ -570,25 +563,10 @@ Build Host runs, you have several choices.
":ref:`dev-manual/start:setting up a native linux host`"
section in the Yocto Project Development Tasks Manual.
- *CROss PlatformS (CROPS):* Typically, you use
`CROPS <https://github.com/crops/poky-container/>`__, which leverages
`Docker Containers <https://www.docker.com/>`__, to set up a Build
Host that is not running Linux (e.g. Microsoft Windows or macOS).
.. note::
You can, however, use CROPS on a Linux-based system.
CROPS is an open source, cross-platform development framework that
provides an easily managed, extensible environment for building
binaries targeted for a variety of architectures on Windows, macOS,
or Linux hosts. Once the Build Host is set up using CROPS, you can
prepare a shell environment to mimic that of a shell being used on a
system natively running Linux.
For information on how to set up a Build Host with CROPS, see the
":ref:`dev-manual/start:setting up to use cross platforms (crops)`"
section in the Yocto Project Development Tasks Manual.
- *OCI Containers:* Typically, you use an :wikipedia:`OCI container
<Open_Container_Initiative>` (with `Docker <https://www.docker.com/>`__ or
`Podman <https://podman.io/>`__ for example), to set up a :term:`Build
Host` that is not running Linux (e.g. Microsoft Windows or macOS).
- *Windows Subsystem For Linux (WSL 2):* You may use Windows Subsystem
For Linux version 2 to set up a Build Host using Windows 10 or later,

View File

@@ -39,7 +39,7 @@ other tools when it seems useful to do so.
The coverage below details some of the most common ways you'll likely
want to apply the tool; full documentation can be found either within
the tool itself or in the manual pages at
`perf(1) <https://linux.die.net/man/1/perf>`__.
:manpage:`perf(1)`.
perf Setup
----------
@@ -869,8 +869,8 @@ goes a little way to support the idea mentioned previously that given
the right kind of trace data, higher-level profiling-type summaries can
be derived from it.
Documentation on using the `'perf script' Python
binding <https://linux.die.net/man/1/perf-script-python>`__.
Documentation on using the :manpage:`'perf script' Python
binding <perf-script-python(1)>`.
System-Wide Tracing and Profiling
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -1150,23 +1150,19 @@ perf Documentation
Online versions of the manual pages for the commands discussed in this
section can be found here:
- The `'perf stat' manual page <https://linux.die.net/man/1/perf-stat>`__.
- The :manpage:`'perf stat' manual page <perf-stat(1)>`.
- The `'perf record'
manual page <https://linux.die.net/man/1/perf-record>`__.
- The :manpage:`'perf record' manual page <perf-record(1)>`.
- The `'perf report'
manual page <https://linux.die.net/man/1/perf-report>`__.
- The :manpage:`'perf report' manual page <perf-report(1)>`.
- The `'perf probe' manual page <https://linux.die.net/man/1/perf-probe>`__.
- The :manpage:`'perf probe' manual page <perf-probe(1)>`.
- The `'perf script'
manual page <https://linux.die.net/man/1/perf-script>`__.
- The :manpage:`'perf script' manual page <perf-script(1)>`.
- Documentation on using the `'perf script' Python
binding <https://linux.die.net/man/1/perf-script-python>`__.
- Documentation on using the :manpage:`'perf script' Python binding <perf-script-python(1)>`.
- The top-level `perf(1) manual page <https://linux.die.net/man/1/perf>`__.
- The top-level :manpage:`perf(1) manual page <perf(1)>`.
Normally, you should be able to open the manual pages via perf itself
e.g. ``perf help`` or ``perf help record``.
@@ -1781,7 +1777,7 @@ gather / print / aggregate data extracted from the context they end up being
called under.
For example, this probe from the `SystemTap
tutorial <https://sourceware.org/systemtap/tutorial/>`__ just prints a
tutorial <https://sourceware.org/systemtap/tutorial.html>`__ just prints a
line every time any process on the system runs ``open()`` on a file. For each line,
it prints the executable name of the program that opened the file, along
with its PID, and the name of the file it opened (or tried to open), which it
@@ -1957,7 +1953,7 @@ SystemTap Documentation
-----------------------
The SystemTap language reference can be found here: `SystemTap Language
Reference <https://sourceware.org/systemtap/langref/>`__
Reference <https://sourceware.org/systemtap/langref.html>`__
Links to other SystemTap documents, tutorials, and examples can be found
here: `SystemTap documentation
@@ -2388,7 +2384,7 @@ first part of the filenames::
The report shows each event that was
found in the blktrace data, along with a summary of the overall block
I/O traffic during the run. You can look at the
`blkparse <https://linux.die.net/man/1/blkparse>`__ manual page to learn the
:manpage:`blkparse(1)` manual page to learn the
meaning of each field displayed in the trace listing.
Live Mode
@@ -2588,14 +2584,14 @@ blktrace Documentation
Online versions of the manual pages for the commands discussed in this
section can be found here:
- https://linux.die.net/man/8/blktrace
- :manpage:`blktrace(8)`
- https://linux.die.net/man/1/blkparse
- :manpage:`blkparse(1)`
- https://linux.die.net/man/8/btrace
- :manpage:`btrace(8)`
The above manual pages, along with manuals for the other blktrace utilities
(``btt``, ``blkiomon``, etc) can be found in the ``/doc`` directory of the blktrace
tools git repository::
$ git clone git://git.kernel.dk/blktrace.git
$ git clone https://git.kernel.org/pub/scm/linux/kernel/git/axboe/blktrace.git

View File

@@ -2327,11 +2327,8 @@ consider some further things about using RPM:
perform on-device upgrades.
You can find additional information on the effects of the package class
at these two Yocto Project mailing list links:
- :yocto_lists:`/pipermail/poky/2011-May/006362.html`
- :yocto_lists:`/pipermail/poky/2011-May/006363.html`
at this Yocto Project mailing list link:
:yocto_lists:`/g/poky/topic/61292484#msg6286`
.. _ref-classes-package_deb:
@@ -3000,7 +2997,7 @@ Python version 3.x extensions that use build systems based on ``setuptools``
``pyproject.toml`` format). Unlike :ref:`ref-classes-setuptools3`,
this uses the traditional ``setup.py`` ``build`` and ``install`` commands and
not wheels. This use of ``setuptools`` like this is
`deprecated <https://github.com/pypa/setuptools/blob/main/CHANGES.rst#v5830>`__
`deprecated <https://github.com/pypa/setuptools/blob/14cc4452199818e60cf01cd9cea96e90761abce7/NEWS.rst#v5830>`__
but still relatively common.
.. _ref-classes-setuptools3-base:
@@ -3265,7 +3262,7 @@ the :term:`SYSTEMD_BOOT_CFG`,
:term:`SYSTEMD_BOOT_TIMEOUT` variables.
You can also see the `Systemd-boot
documentation <https://www.freedesktop.org/wiki/Software/systemd/systemd-boot/>`__
documentation <https://systemd.io/BOOT/>`__
for more information.
.. _ref-classes-terminal:

View File

@@ -105,7 +105,8 @@ attempt before any others by adding something like the following to the
git://.*/.* &YOCTO_DL_URL;/mirror/sources/ \
ftp://.*/.* &YOCTO_DL_URL;/mirror/sources/ \
http://.*/.* &YOCTO_DL_URL;/mirror/sources/ \
https://.*/.* &YOCTO_DL_URL;/mirror/sources/"
https://.*/.* &YOCTO_DL_URL;/mirror/sources/ \
"
These changes cause the build system to intercept Git, FTP, HTTP, and
HTTPS requests and direct them to the ``http://`` sources mirror. You
@@ -144,7 +145,8 @@ file as long as the :term:`PREMIRRORS` server is current::
git://.*/.* &YOCTO_DL_URL;/mirror/sources/ \
ftp://.*/.* &YOCTO_DL_URL;/mirror/sources/ \
http://.*/.* &YOCTO_DL_URL;/mirror/sources/ \
https://.*/.* &YOCTO_DL_URL;/mirror/sources/"
https://.*/.* &YOCTO_DL_URL;/mirror/sources/ \
"
BB_FETCH_PREMIRRORONLY = "1"
These changes would cause the build system to successfully fetch source

View File

@@ -37,10 +37,7 @@ Here is a list of supported recipes:
- ``build-appliance-image``: An example virtual machine that contains
all the pieces required to run builds using the build system as well
as the build system itself. You can boot and run the image using
either the `VMware
Player <https://www.vmware.com/products/player/overview.html>`__ or
`VMware
Workstation <https://www.vmware.com/products/workstation/overview.html>`__.
`VMware Workstation <https://www.vmware.com/products/desktop-hypervisor/workstation-and-fusion>`__.
For more information on this image, see the :yocto_home:`Build
Appliance </software-item/build-appliance>` page
on the Yocto Project website.

View File

@@ -151,8 +151,8 @@ upgrade to the following :term:`LTS` release.
The currently supported :term:`LTS` releases are:
- Version 6.0 ("Wrynose"), released in May 2026 and supported until April 2030.
- Version 5.0 ("Scarthgap"), released in April 2024 and supported until April 2028.
- Version 4.0 ("Kirkstone"), released in May 2022 and supported until May 2026.
See :yocto_wiki:`/Stable_Release_and_LTS` for details about the management
of stable and :term:`LTS` releases.

View File

@@ -658,7 +658,7 @@ When invoked by the user, this task creates a file containing the
differences between the original config as produced by
:ref:`ref-tasks-kernel_configme` task and the
changes made by the user with other methods (i.e. using
(:ref:`ref-tasks-kernel_menuconfig`). Once the
(:ref:`ref-tasks-menuconfig`). Once the
file of differences is created, it can be used to create a config
fragment that only contains the differences. You can invoke this task
from the command line as follows::
@@ -686,7 +686,7 @@ kernel with the correct branches checked out.
-------------------------
Validates the configuration produced by the
:ref:`ref-tasks-kernel_menuconfig` task. The
:ref:`ref-tasks-menuconfig` task. The
:ref:`ref-tasks-kernel_configcheck` task produces warnings when a requested
configuration does not appear in the final ``.config`` file or when you
override a policy configuration in a hardware configuration fragment.
@@ -711,26 +711,6 @@ passed to the kernel configuration phase proper. This is also the time
during which user-specified defconfigs are applied if present, and where
configuration modes such as ``--allnoconfig`` are applied.
.. _ref-tasks-kernel_menuconfig:
``do_kernel_menuconfig``
------------------------
Invoked by the user to manipulate the ``.config`` file used to build a
linux-yocto recipe. This task starts the Linux kernel configuration
tool, which you then use to modify the kernel configuration.
.. note::
You can also invoke this tool from the command line as follows::
$ bitbake linux-yocto -c menuconfig
See the ":ref:`kernel-dev/common:using ``menuconfig```"
section in the Yocto Project Linux Kernel Development Manual for more
information on this configuration tool.
.. _ref-tasks-kernel_metadata:
``do_kernel_metadata``
@@ -749,10 +729,19 @@ which can then be applied by subsequent tasks such as
``do_menuconfig``
-----------------
Runs ``make menuconfig`` for the kernel. For information on
``menuconfig``, see the
":ref:`kernel-dev/common:using ``menuconfig```"
section in the Yocto Project Linux Kernel Development Manual.
Invoked by the user to manipulate the ``.config`` file used to build a
linux-yocto recipe. This task starts the Linux kernel configuration
tool, which you then use to modify the kernel configuration.
You can invoke this tool from the command line as follows:
.. code-block:: console
$ bitbake linux-yocto -c menuconfig
See the ":ref:`kernel-dev/common:using ``menuconfig```"
section in the Yocto Project Linux Kernel Development Manual for more
information on this configuration tool.
.. _ref-tasks-savedefconfig:
@@ -763,7 +752,7 @@ When invoked by the user, creates a defconfig file that can be used
instead of the default defconfig. The saved defconfig contains the
differences between the default defconfig and the changes made by the
user using other methods (i.e. the
:ref:`ref-tasks-kernel_menuconfig` task. You
:ref:`ref-tasks-menuconfig` task. You
can invoke the task using the following command::
$ bitbake linux-yocto -c savedefconfig
@@ -785,22 +774,29 @@ can successfully build the kernel modules in the next step of the build.
``do_sizecheck``
----------------
After the kernel has been built, this task checks the size of the
stripped kernel image against
:term:`KERNEL_IMAGE_MAXSIZE`. If that
variable was set and the size of the stripped kernel exceeds that size,
the kernel build produces a warning to that effect.
If the variable :term:`KERNEL_IMAGE_MAXSIZE` is set, this task compares
the size of all stripped kernel images listed in :term:`KERNEL_IMAGETYPES`
against that value. If more than one image type is listed there, warn on
any that exceed that value, but fail only if none of them fit.
.. _ref-tasks-strip:
``do_strip``
------------
If ``KERNEL_IMAGE_STRIP_EXTRA_SECTIONS`` is defined, this task strips
If :term:`KERNEL_IMAGE_STRIP_EXTRA_SECTIONS` is defined, this task strips
the sections named in that variable from ``vmlinux``. This stripping is
typically used to remove nonessential sections such as ``.comment``
sections from a size-sensitive configuration.
Common sections to strip:
- ``.comment``: Holds compiler version strings and information
- ``.note.*``: Extra notes often left by the compiler
- ``.debug``: Debugging information
.. _ref-tasks-validate_branches:
``do_validate_branches``

View File

@@ -1463,6 +1463,11 @@ system and gives an overview of their function and contents.
:term:`CCACHE_DISABLE` variable can be set to "1" in a recipe to disable
`Ccache` support. This is useful when the recipe is known to not support it.
:term:`CCACHE_NATIVE_RECIPES_ALLOWED`
The :term:`CCACHE_NATIVE_RECIPES_ALLOWED` variable can be set in a
:term:`configuration file` to a list of native recipes that are allowed to
be optimized with the :ref:`ref-classes-ccache` class.
:term:`CCACHE_TOP_DIR`
When inheriting the :ref:`ref-classes-ccache` class, the
:term:`CCACHE_TOP_DIR` variable can be set to the location of where
@@ -1727,15 +1732,52 @@ system and gives an overview of their function and contents.
Where :term:`AUTOTOOLS_SCRIPT_PATH` is the location of the of the
Autotools build system scripts, which defaults to :term:`S`.
:term:`CONFLICT_COMBINED_FEATURES`
When inheriting the :ref:`ref-classes-features_check`
class, this variable identifies combined features (see
:term:`COMBINED_FEATURES` for what this means) that would be in conflict
should the recipe be built. In other words, if the
:term:`CONFLICT_COMBINED_FEATURES` variable lists a feature that also
appears in :term:`COMBINED_FEATURES` within the current configuration,
then the recipe will be skipped, and if the build system attempts to build
the recipe then an error will be triggered.
:term:`CONFLICT_DISTRO_FEATURES`
When inheriting the :ref:`ref-classes-features_check`
class, this variable identifies distribution features that would be
class, this variable identifies distro features that would be
in conflict should the recipe be built. In other words, if the
:term:`CONFLICT_DISTRO_FEATURES` variable lists a feature that also
appears in :term:`DISTRO_FEATURES` within the current configuration, then
the recipe will be skipped, and if the build system attempts to build
the recipe then an error will be triggered.
:term:`CONFLICT_IMAGE_FEATURES`
When inheriting the :ref:`ref-classes-features_check`
class, this variable identifies image features that would be
in conflict should the recipe be built. In other words, if the
:term:`CONFLICT_IMAGE_FEATURES` variable lists a feature that also
appears in :term:`IMAGE_FEATURES` within the current configuration, then
the recipe will be skipped, and if the build system attempts to build
the recipe then an error will be triggered.
:term:`CONFLICT_MACHINE_FEATURES`
When inheriting the :ref:`ref-classes-features_check`
class, this variable identifies machine features that would be
in conflict should the recipe be built. In other words, if the
:term:`CONFLICT_MACHINE_FEATURES` variable lists a feature that also
appears in :term:`MACHINE_FEATURES` within the current configuration, then
the recipe will be skipped, and if the build system attempts to build
the recipe then an error will be triggered.
:term:`CONFLICT_TUNE_FEATURES`
When inheriting the :ref:`ref-classes-features_check`
class, this variable identifies tune features that would be
in conflict should the recipe be built. In other words, if the
:term:`CONFLICT_TUNE_FEATURES` variable lists a feature that also
appears in :term:`TUNE_FEATURES` within the current configuration, then
the recipe will be skipped, and if the build system attempts to build
the recipe then an error will be triggered.
:term:`CONVERSION_CMD`
This variable is used for storing image conversion commands.
Image conversion can convert an image into different objects like:
@@ -3522,7 +3564,7 @@ system and gives an overview of their function and contents.
GROUPADD_PARAM:${PN} = "-g 880 group1; -g 890 group2"
For information on the standard Linux shell command
``groupadd``, see https://linux.die.net/man/8/groupadd.
``groupadd``, see :manpage:`groupadd(8)`.
:term:`GROUPMEMS_PARAM`
When inheriting the :ref:`ref-classes-useradd` class,
@@ -3946,6 +3988,21 @@ system and gives an overview of their function and contents.
or ``:prepend``. You must use the ``+=`` operator to add one or
more options to the :term:`IMAGE_FSTYPES` variable.
:term:`IMAGE_FSTYPES_DEBUGFS`
The :term:`IMAGE_FSTYPES_DEBUGFS` holds a list of filesystem image types
to generate when the :term:`IMAGE_GEN_DEBUGFS` variable is set to "1". The
content of this variable is the same as what is supported by the
:term:`IMAGE_FSTYPES` variable.
:term:`IMAGE_GEN_DEBUGFS`
When set to "1" in an :ref:`ref-classes-image` recipe, the
:term:`OpenEmbedded Build System` will generate a companion image that
contains the debug symbols and source code for the packages installed on
the image. The :term:`OpenEmbedded Build System` does this by adding all
the available ``-dbg`` and ``-src`` packages available in the package
feed, which are automatically generated during
:ref:`overview-manual/concepts:Package Splitting`.
:term:`IMAGE_INSTALL`
Used by recipes to specify the packages to install into an image
through the :ref:`ref-classes-image` class. Use the
@@ -5053,17 +5110,18 @@ system and gives an overview of their function and contents.
information.
:term:`KERNEL_IMAGE_MAXSIZE`
Specifies the maximum size of the kernel image file in kilobytes. If
:term:`KERNEL_IMAGE_MAXSIZE` is set, the size of the kernel image file is
checked against the set value during the
:ref:`ref-tasks-sizecheck` task. The task fails if
the kernel image file is larger than the setting.
Specifies the maximum allowable size of the kernel image file in kibibytes.
If this variable is set, the sizes of all of the kernel image files listed
in :term:`KERNEL_IMAGETYPES` are checked against this value during the
:ref:`ref-tasks-sizecheck` task. That task will warn about any of the
kernel images that exceed the maximum, and will fail only if all images
are too large.
:term:`KERNEL_IMAGE_MAXSIZE` is useful for target devices that have a
limited amount of space in which the kernel image must be stored.
By default, this variable is not set, which means the size of the
kernel image is not checked.
kernel images are not checked.
:term:`KERNEL_IMAGE_NAME`
The base name of the kernel image. This variable is set in the
@@ -5073,6 +5131,13 @@ system and gives an overview of their function and contents.
See :term:`KERNEL_ARTIFACT_NAME` for additional information.
:term:`KERNEL_IMAGE_STRIP_EXTRA_SECTIONS`
If this variable is set, it should contain the sections to be
stripped from the ``vmlinux`` image by the kernel-related
:ref:`ref-tasks-strip` task. As a simple example::
KERNEL_IMAGE_STRIP_EXTRA_SECTIONS = ".comment .note.* .debug"
:term:`KERNEL_IMAGETYPE`
The type of kernel to build for a device, usually set by the machine
configuration files and defaults to "zImage". This variable is used
@@ -5510,6 +5575,19 @@ system and gives an overview of their function and contents.
$ uname -r
3.7.0-rc8-custom
:term:`LOCALE_PATHS`
The :term:`LOCALE_PATHS` variable holds a whitespace separated list of
paths that are scanned to construct ``-locale`` packages during
:ref:`overview-manual/concepts:Package Splitting`. The list
contains ``${datadir}/locale`` by default.
:term:`LOCALE_UTF8_IS_DEFAULT`
If set, locale names are renamed such that those lacking an explicit
encoding (e.g. ``en_US``) will always be UTF-8, and non-UTF-8 encodings
are renamed to, e.g., ``en_US.ISO-8859-1``. Otherwise, the encoding is
specified by `Glibc`'s ``SUPPORTED`` file. This is not supported for
pre-compiled locales.
:term:`LOG_DIR`
Specifies the directory to which the OpenEmbedded build system writes
overall log files. The default directory is ``${TMPDIR}/log``.
@@ -5828,7 +5906,7 @@ system and gives an overview of their function and contents.
See the :term:`KERNEL_MODULE_AUTOLOAD` variable for more information.
:term:`module_conf`
Specifies `modprobe.d <https://linux.die.net/man/5/modprobe.d>`__
Specifies :manpage:`modprobe.d(5)`
syntax lines for inclusion in the ``/etc/modprobe.d/modname.conf``
file.
@@ -7101,7 +7179,8 @@ system and gives an overview of their function and contents.
git://.*/.* &YOCTO_DL_URL;/mirror/sources/ \
ftp://.*/.* &YOCTO_DL_URL;/mirror/sources/ \
http://.*/.* &YOCTO_DL_URL;/mirror/sources/ \
https://.*/.* &YOCTO_DL_URL;/mirror/sources/"
https://.*/.* &YOCTO_DL_URL;/mirror/sources/ \
"
These changes cause the
build system to intercept Git, FTP, HTTP, and HTTPS requests and
@@ -7281,6 +7360,167 @@ system and gives an overview of their function and contents.
QA_EMPTY_DIRS_RECOMMENDATION:/dev = "but all devices must be created at runtime"
:term:`QB_CMDLINE_IP_SLIRP`
If :term:`QB_NETWORK_DEVICE` adds more than one network interface to QEMU,
usually the ``ip=`` Linux kernel command line argument needs to be changed
accordingly. The :term:`QB_CMDLINE_IP_SLIRP` variable allows controlling
this value. See the Linux kernel documentation for more details:
https://www.kernel.org/doc/Documentation/filesystems/nfs/nfsroot.txt.
:term:`QB_CMDLINE_IP_TAP`
This variable is similar to the :term:`QB_CMDLINE_IP_SLIRP` variable.
Use as follows::
QB_CMDLINE_IP_TAP = "ip=192.168.7.@CLIENT@::192.168.7.@GATEWAY@:255.255.255.0::eth0"
Since the tap interface requires static IP configuration, ``runqemu``
replaces the ``@CLIENT@`` and ``@GATEWAY@`` place holders by the IP and
the gateway address of the QEMU guest.
:term:`QB_DEFAULT_BIOS`
The :term:`QB_DEFAULT_BIOS` variable can be used to provide a default
value for the path of a file located in :term:`DEPLOY_DIR_IMAGE` and
used by ``runqemu`` to specify the `-bios <https://www.qemu.org/docs/master/system/invocation.html#hxtool-8>`__
option of QEMU. For example, this variable can be set as follows to
emulate U-Boot for the :oecore_path:`qemuarm64 <meta/conf/machine/qemuarm64.conf>`
machine::
QB_DEFAULT_BIOS = "u-boot.bin"
The above example makes the assumption the U-Boot recipe was built
and that the ``u-boot.bin`` is deployed in the :term:`DEPLOY_DIR_IMAGE`
directory.
.. note::
When using ``runqemu``, the ``BIOS`` environment variable takes
precedence over this variable.
:term:`QB_DEFAULT_FSTYPE`
The :term:`QB_DEFAULT_FSTYPE` variable controls the default filesystem
type to boot. It is represented as the file extension of one of the root
filesystem image extension found in :term:`DEPLOY_DIR_IMAGE`. For example:
``ext4.zst``.
:term:`QB_DEFAULT_KERNEL`
When using ``runqemu``, the :term:`QB_DEFAULT_KERNEL` variable controls
the default Linux kernel image to boot, found in :term:`DEPLOY_DIR_IMAGE`. For
example: ``bzImage``.
:term:`QB_DRIVE_TYPE`
When using ``runqemu``, the :term:`QB_DRIVE_TYPE` variable specifies the
type of drive to emulate when starting the emulated machine.
Valid values are:
- ``/dev/hd``: emulates an IDE drive.
- ``/dev/mmcblk``: emulates an SD Card.
- ``/dev/sd``: emulates an SCSI drive.
- ``/dev/vd``: emulates a VirtIO drive.
- ``/dev/vdb``: emulates a block VirtIO drive.
:term:`QB_GRAPHICS`
When using ``runqemu``, the :term:`QB_GRAPHICS` variable controls the QEMU
video card type to emulate. For example: ``-vga std``.
This value is appended to the argument list when running ``qemu``.
:term:`QB_KERNEL_CMDLINE_APPEND`
The :term:`QB_KERNEL_CMDLINE_APPEND` variable controls the options passed
to the Linux kernel's ``-append`` QEMU options, which controls the Linux kernel
command-line.
For example::
QB_KERNEL_CMDLINE_APPEND = "console=ttyS0"
:term:`QB_MEM`
The :term:`QB_MEM` variable controls the amount of memory allocated to the
emulated machine. Specify as follows::
QB_MEM = "-m 512"
:term:`QB_NETWORK_DEVICE`
When using ``runqemu``, the :term:`QB_NETWORK_DEVICE` variable controls
the network device instantiated by QEMU. This value needs to be compatible
with the :term:`QB_TAP_OPT` variable.
Example::
QB_NETWORK_DEVICE = "-device virtio-net-pci,netdev=net0,mac=@MAC@"
``runqemu`` replaces ``@MAC@`` with a predefined mac address.
:term:`QB_NFSROOTFS_EXTRA_OPT`
When using ``runqemu``, the :term:`QB_NFSROOTFS_EXTRA_OPT` variable
controls extra options to be appended to the NFS rootfs options in the
Linux kernel command-line.
For example::
QB_NFSROOTFS_EXTRA_OPT = "wsize=4096,rsize=4096"
:term:`QB_OPT_APPEND`
When using ``runqemu``, the :term:`QB_OPT_APPEND` variable controls
general options to append to QEMU when starting.
:term:`QB_RNG`
When using ``runqemu``, the :term:`QB_RNG` variable controls
pass-through for host random number generator, it can speedup boot
in system mode, where system is experiencing entropy starvation.
For example::
QB_RNG = "-object rng-random,filename=/dev/urandom,id=rng0 -device virtio-rng-pci,rng=rng0"
:term:`QB_ROOTFS_EXTRA_OPT`
When using ``runqemu``, the :term:`QB_ROOTFS_EXTRA_OPT` variable controls
extra options to be appended to the rootfs device options.
:term:`QB_SERIAL_OPT`
When using ``runqemu``, the :term:`QB_SERIAL_OPT` variable controls the
serial port option.
For example::
QB_SERIAL_OPT = "-serial mon:stdio"
:term:`QB_SMP`
When using ``runqemu``, the :term:`QB_SMP` variable controls
amount of CPU cores made availalble inside the QEMU guest, each mapped to
a thread on the host.
For example::
QB_SMP = "-smp 8".
:term:`QB_TAP_OPT`
When using ``runqemu``, the :term:`QB_TAP_OPT` variable controls
the network option for "tap" mode.
For example::
QB_TAP_OPT = "-netdev tap,id=net0,ifname=@TAP@,script=no,downscript=no"
Note that ``runqemu`` will replace ``@TAP@`` with the tap interface in
use, such as ``tap0``, ``tap1``, etc.
:term:`RANLIB`
The minimal command and arguments to run :manpage:`ranlib <ranlib(1)>`.
@@ -10500,7 +10740,7 @@ system and gives an overview of their function and contents.
For information on the
standard Linux shell command ``useradd``, see
https://linux.die.net/man/8/useradd.
:manpage:`useradd(8)`.
:term:`USERADD_UID_TABLES`
Specifies a password file to use for obtaining static user

View File

@@ -96,8 +96,7 @@ build the SDK installer. Follow these steps:
#. *Set Up the Build Environment:* Be sure you are set up to use BitBake
in a shell. See the ":ref:`dev-manual/start:preparing the build host`" section
in the Yocto Project Development Tasks Manual for information on how
to get a build host ready that is either a native Linux machine or a
machine that uses CROPS.
to get a :term:`build host` ready.
#. *Clone the ``poky`` Repository:* You need to have a local copy of the
Yocto Project :term:`Source Directory`

View File

@@ -468,8 +468,7 @@ PACKAGEFUNCS += " \
package_do_shlibs \
package_do_pkgconfig \
read_shlibdeps \
package_depchains \
emit_pkgdata"
package_depchains"
python do_package () {
# Change the following version to cause sstate to invalidate the package
@@ -561,9 +560,13 @@ python do_package () {
for file in files:
pkgfiles[pkg].append(walkroot + os.sep + file)
# We want emit_pkgdata to run last, after everything
for f in (d.getVar('PACKAGEFUNCS') or '').split():
bb.build.exec_func(f, d)
bb.build.exec_func("emit_pkgdata", d)
oe.qa.exit_if_errors(d)
}

View File

@@ -36,7 +36,8 @@ def get_crates(f):
crates_candidates = list(filter(lambda c: 'crates.io' in c.get('source', ''), crates['package']))
if not crates_candidates:
raise ValueError("Unable to find any candidate crates that use crates.io")
print("WARNING: Unable to find any candidate crates that use crates.io")
return None
# Update crates uri and their checksum, to avoid name clashing on the checksum
# we need to rename crates with name and version to have a unique key
@@ -63,14 +64,11 @@ for root, dirs, files in os.walk('${CARGO_LOCK_SRC_DIR}'):
continue
for file in files:
if file == 'Cargo.lock':
try:
cargo_lock_path = os.path.join(root, file)
crates += get_crates(os.path.join(root, file))
except Exception as e:
raise ValueError("Cannot parse '%s'" % cargo_lock_path) from e
else:
found = True
if not found:
cargo_lock_path = os.path.join(root, file)
c = get_crates(cargo_lock_path)
if c is not None:
crates += c
if crates is None:
raise ValueError("Unable to find any Cargo.lock in ${CARGO_LOCK_SRC_DIR}")
open("${TARGET_FILE}", 'w').write(crates)
EOF

View File

@@ -71,7 +71,7 @@ python do_create_image_sbom_spdx() {
}
addtask do_create_image_sbom_spdx after do_create_rootfs_spdx do_create_image_spdx before do_build
SSTATETASKS += "do_create_image_sbom_spdx"
SSTATE_SKIP_CREATION:task-create-image-sbom = "1"
SSTATE_SKIP_CREATION:task-create-image-sbom-spdx = "1"
do_create_image_sbom_spdx[sstate-inputdirs] = "${SPDXIMAGEDEPLOYDIR}"
do_create_image_sbom_spdx[sstate-outputdirs] = "${DEPLOY_DIR_IMAGE}"
do_create_image_sbom_spdx[stamp-extra-info] = "${MACHINE_ARCH}"

View File

@@ -294,7 +294,7 @@ def get_deployed_files(man_file):
dep_files.append(os.path.basename(f))
return dep_files
ROOTFS_POSTPROCESS_COMMAND:prepend = "write_package_manifest license_create_manifest "
ROOTFS_POSTUNINSTALL_COMMAND:prepend = "write_package_manifest license_create_manifest "
do_rootfs[recrdeptask] += "do_populate_lic"
python do_populate_lic_deploy() {

View File

@@ -10,4 +10,4 @@ deltask do_create_spdx_runtime
deltask do_create_package_spdx
deltask do_create_rootfs_spdx
deltask do_create_image_spdx
deltask do_create_image_sbom
deltask do_create_image_sbom_spdx

View File

@@ -229,7 +229,7 @@ python vex_write_rootfs_manifest () {
bb.plain("Image VEX JSON report stored in: %s" % manifest_name)
}
ROOTFS_POSTPROCESS_COMMAND:prepend = "vex_write_rootfs_manifest; "
ROOTFS_POSTUNINSTALL_COMMAND:prepend = "vex_write_rootfs_manifest "
do_rootfs[recrdeptask] += "do_generate_vex "
do_populate_sdk[recrdeptask] += "do_generate_vex "

View File

@@ -20,7 +20,7 @@ SRC_URI = "https://ftp.isc.org/isc/bind9/${PV}/${BPN}-${PV}.tar.xz \
file://0001-avoid-start-failure-with-bind-user.patch \
"
SRC_URI[sha256sum] = "81f5035a25c576af1a93f0061cf70bde6d00a0c7bd1274abf73f5b5389a6f82d"
SRC_URI[sha256sum] = "c43ce4548ebed788cd9df63658a7de105ceafba43fcd63fa352b1093e525cd24"
UPSTREAM_CHECK_URI = "https://ftp.isc.org/isc/bind9/"
# follow the ESV versions divisible by 2

View File

@@ -15,6 +15,9 @@ SRC_URI = "git://github.com/NetworkConfiguration/dhcpcd;protocol=https;branch=ma
file://dhcpcd.service \
file://dhcpcd@.service \
file://0001-dhcpcd.8-Fix-conflict-error-when-enable-multilib.patch \
file://CVE-2026-56113.patch \
file://CVE-2026-56114.patch \
file://CVE-2026-56117.patch \
"
SRCREV = "1c8ae59836fa87b4c63c598087f0460ec20ed862"

View File

@@ -0,0 +1,92 @@
From 9f953ada0df6e7a568f006f3ae0ff10a77a95924 Mon Sep 17 00:00:00 2001
From: Roy Marples <roy@marples.name>
Date: Tue, 23 Jun 2026 02:17:10 +0100
Subject: [PATCH] DHCPv6: When deprecating addresses, restart on prefix
deletions
As that might invalidate the next address to iterate on.
Reported-by: CuB3y0nd <root@cubeyond.net>
(cherry picked from commit 5733d3c59a5651f64357ac11c98b4f39895c8d25)
CVE: CVE-2026-56113
Upstream-Status: Backport [https://github.com/NetworkConfiguration/dhcpcd/commit/5733d3c59a5651f64357ac11c98b4f39895c8d25]
Signed-off-by: Theo Gaige (Schneider Electric) <tgaige.opensource@witekio.com>
---
src/dhcp6.c | 21 ++++++++++++++++++---
1 file changed, 18 insertions(+), 3 deletions(-)
diff --git a/src/dhcp6.c b/src/dhcp6.c
index bdc3664e..5154bf41 100644
--- a/src/dhcp6.c
+++ b/src/dhcp6.c
@@ -2480,12 +2480,13 @@ dhcp6_findia(struct interface *ifp, struct dhcp6_message *m, size_t l,
}
#ifndef SMALL
-static void
+static bool
dhcp6_deprecatedele(struct ipv6_addr *ia)
{
struct ipv6_addr *da, *dan, *dda;
struct timespec now;
struct dhcp6_state *state;
+ bool freed = false;
timespecclear(&now);
TAILQ_FOREACH_SAFE(da, &ia->pd_pfxs, pd_next, dan) {
@@ -2511,11 +2512,14 @@ dhcp6_deprecatedele(struct ipv6_addr *ia)
if (IN6_ARE_ADDR_EQUAL(&dda->addr, &da->addr))
break;
}
- if (dda != NULL) {
+ if (dda != ia && dda != NULL) {
TAILQ_REMOVE(&state->addrs, dda, next);
ipv6_freeaddr(dda);
+ freed = true;
}
}
+
+ return freed;
}
#endif
@@ -2523,7 +2527,11 @@ static void
dhcp6_deprecateaddrs(struct ipv6_addrhead *addrs)
{
struct ipv6_addr *ia, *ian;
+#ifndef SMALL
+ bool again;
+#endif
+again:
TAILQ_FOREACH_SAFE(ia, addrs, next, ian) {
if (ia->flags & IPV6_AF_EXTENDED)
;
@@ -2545,7 +2553,9 @@ dhcp6_deprecateaddrs(struct ipv6_addrhead *addrs)
/* If we delegated from this prefix, deprecate or remove
* the delegations. */
if (ia->flags & IPV6_AF_DELEGATEDPFX)
- dhcp6_deprecatedele(ia);
+ again = dhcp6_deprecatedele(ia);
+ else
+ again = false;
#endif
if (ia->flags & IPV6_AF_REQUEST) {
@@ -2558,6 +2568,11 @@ dhcp6_deprecateaddrs(struct ipv6_addrhead *addrs)
if (ia->flags & IPV6_AF_EXTENDED)
ipv6_deleteaddr(ia);
ipv6_freeaddr(ia);
+#ifndef SMALL
+ /* Deletion may invalidate the next pointer so restart */
+ if (again)
+ goto again;
+#endif
}
}
--
2.43.0

View File

@@ -0,0 +1,34 @@
From fd86ded940524f60174582faa96f583c168589ef Mon Sep 17 00:00:00 2001
From: Roy Marples <roy@marples.name>
Date: Tue, 23 Jun 2026 02:06:55 +0100
Subject: [PATCH] DHCPv6: Prefix exclude option can be 17 octets (#671)
Well that's a simple off by one error
Reported-by: CuB3y0nd <root@cubeyond.net>
(cherry picked from commit 2f00c7bfc408b6582d331932dfa47829c4819029)
CVE: CVE-2026-56114
Upstream-Status: Backport [https://github.com/NetworkConfiguration/dhcpcd/commit/2f00c7bfc408b6582d331932dfa47829c4819029]
Signed-off-by: Theo Gaige (Schneider Electric) <tgaige.opensource@witekio.com>
---
src/dhcp6.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/dhcp6.c b/src/dhcp6.c
index 5154bf41..1eac9f23 100644
--- a/src/dhcp6.c
+++ b/src/dhcp6.c
@@ -1006,7 +1006,7 @@ dhcp6_makemessage(struct interface *ifp)
/* RFC6603 Section 4.2 */
if (ap->prefix_exclude_len) {
- uint8_t exb[16], *ep, u8;
+ uint8_t exb[17], *ep, u8;
const uint8_t *pp;
n = (size_t)((ap->prefix_exclude_len -
--
2.43.0

View File

@@ -0,0 +1,167 @@
From 52e0746deeace02b0ea039441d6cdc58f026018d Mon Sep 17 00:00:00 2001
From: Roy Marples <roy@marples.name>
Date: Mon, 22 Jun 2026 23:41:53 +0100
Subject: [PATCH] control: Avoid hangup in the recvdata path
Instead return an error and bubble it up where it can be
hangup / freed more cleanly.
Reported-by: CuB3y0nd <root@cubeyond.net>
(cherry picked from commit 78ea09ed1633a583dbcde6e7bab9df4639ec8a34)
CVE: CVE-2026-56117
Upstream-Status: Backport [https://github.com/NetworkConfiguration/dhcpcd/commit/78ea09ed1633a583dbcde6e7bab9df4639ec8a34]
Signed-off-by: Theo Gaige (Schneider Electric) <tgaige.opensource@witekio.com>
---
src/control.c | 47 ++++++++++++++++++++++++-------------------
src/control.h | 2 +-
src/privsep-control.c | 7 ++++++-
3 files changed, 33 insertions(+), 23 deletions(-)
diff --git a/src/control.c b/src/control.c
index 17fd13aa..20480f69 100644
--- a/src/control.c
+++ b/src/control.c
@@ -115,10 +115,8 @@ control_handle_read(struct fd_list *fd)
bytes = read(fd->fd, buffer, sizeof(buffer) - 1);
if (bytes == -1)
logerr(__func__);
- if (bytes == -1 || bytes == 0) {
- control_hangup(fd);
- return -1;
- }
+ if (bytes == -1 || bytes == 0)
+ return (int)bytes;
#ifdef PRIVSEP
if (IN_PRIVSEP(fd->ctx)) {
@@ -134,15 +132,13 @@ control_handle_read(struct fd_list *fd)
if (err == 1 &&
ps_ctl_sendargs(fd, buffer, (size_t)bytes) == -1) {
logerr(__func__);
- control_free(fd);
return -1;
}
- return 0;
+ return 1;
}
#endif
- control_recvdata(fd, buffer, (size_t)bytes);
- return 0;
+ return control_recvdata(fd, buffer, (size_t)bytes);
}
static int
@@ -205,23 +201,31 @@ static void
control_handle_data(void *arg, unsigned short events)
{
struct fd_list *fd = arg;
+ int err;
if (!(events & (ELE_READ | ELE_WRITE | ELE_HANGUP)))
logerrx("%s: unexpected event 0x%04x", __func__, events);
if (events & ELE_WRITE && !(events & ELE_HANGUP)) {
- if (control_handle_write(fd) == -1)
- return;
+ err = control_handle_write(fd);
+ if (err == -1)
+ goto hangup;
}
if (events & ELE_READ) {
- if (control_handle_read(fd) == -1)
- return;
+ err = control_handle_read(fd);
+ if (err == -1 || err == 0)
+ goto hangup;
}
if (events & ELE_HANGUP)
- control_hangup(fd);
+ goto hangup;
+
+ return;
+
+hangup:
+ control_hangup(fd);
}
-void
+int
control_recvdata(struct fd_list *fd, char *data, size_t len)
{
char *p = data, *e;
@@ -243,12 +247,13 @@ control_recvdata(struct fd_list *fd, char *data, size_t len)
if (e == NULL) {
errno = EINVAL;
logerrx("%s: no terminator", __func__);
- return;
+ return -1;
}
- if ((size_t)argc >= sizeof(argvp) / sizeof(argvp[0])) {
+ if ((size_t)argc + 1 >=
+ sizeof(argvp) / sizeof(argvp[0])) {
errno = ENOBUFS;
logerrx("%s: no arg buffer", __func__);
- return;
+ return -1;
}
*ap++ = p;
argc++;
@@ -268,12 +273,12 @@ control_recvdata(struct fd_list *fd, char *data, size_t len)
*ap = NULL;
if (dhcpcd_handleargs(fd->ctx, fd, argc, argvp) == -1) {
logerr(__func__);
- if (errno != EINTR && errno != EAGAIN) {
- control_free(fd);
- return;
- }
+ if (errno != EINTR && errno != EAGAIN)
+ return -1;
}
}
+
+ return 1;
}
struct fd_list *
diff --git a/src/control.h b/src/control.h
index f5e2bc7e..c5511dd7 100644
--- a/src/control.h
+++ b/src/control.h
@@ -75,5 +75,5 @@ struct fd_list *control_new(struct dhcpcd_ctx *, int, unsigned int);
void control_free(struct fd_list *);
void control_delete(struct fd_list *);
int control_queue(struct fd_list *, void *, size_t);
-void control_recvdata(struct fd_list *fd, char *, size_t);
+int control_recvdata(struct fd_list *fd, char *, size_t);
#endif
diff --git a/src/privsep-control.c b/src/privsep-control.c
index 40bfb164..954126c0 100644
--- a/src/privsep-control.c
+++ b/src/privsep-control.c
@@ -108,6 +108,7 @@ ps_ctl_dispatch(void *arg, struct ps_msghdr *psm, struct msghdr *msg)
struct iovec *iov = msg->msg_iov;
struct fd_list *fd;
unsigned int fd_flags = FD_SENDLEN;
+ int err;
switch (psm->ps_flags) {
case PS_CTL_PRIV:
@@ -131,7 +132,11 @@ ps_ctl_dispatch(void *arg, struct ps_msghdr *psm, struct msghdr *msg)
if (fd == NULL)
return -1;
ctx->ps_control_client = fd;
- control_recvdata(fd, iov->iov_base, iov->iov_len);
+ err = control_recvdata(fd, iov->iov_base, iov->iov_len);
+ if (err == -1 || err == 0) {
+ control_free(fd);
+ ctx->ps_control_client = NULL;
+ }
break;
case PS_CTL_EOF:
ctx->ps_control_client = NULL;
--
2.43.0

View File

@@ -14,7 +14,7 @@ Reported by Christos Papakonstantinou of Cantina and Spearbit.
OpenBSD-Commit-ID: c790e2687c35989ae34a00e709be935c55b16a86
CVE: CVE-2026-35387
CVE: CVE-2026-35414 CVE-2026-35387
Upstream-Status: Backport [https://github.com/openssh/openssh-portable/commit/fd1c7e131f331942d20f42f31e79912d570081fa]
Signed-off-by: Theo Gaige (Schneider Electric) <tgaige.opensource@witekio.com>
---

View File

@@ -0,0 +1,42 @@
From b340eaa274a7e7dffea03bcb62169249bbddab37 Mon Sep 17 00:00:00 2001
From: "djm@openbsd.org" <djm@openbsd.org>
Date: Mon, 29 Jun 2026 01:47:21 +0000
Subject: [PATCH] upstream: avoid download to server-controlled path when
performing
download on the commandline. From Swival scanner
CVE: CVE-2026-59995
Upstream-Status: Backport [https://github.com/openssh/openssh-portable/commit/1b39f39657d2e58f8ec57341581a39bbf0be645b]
Backport Changes:
- Retained the Scarthgap sftp.c OpenBSD revision identifier because the
10.4 identifier does not describe the older source baseline.
OpenBSD-Commit-ID: d1b2c44305fdfe6d51eed9ecc727e59478bf311f
(cherry picked from commit 1b39f39657d2e58f8ec57341581a39bbf0be645b)
Signed-off-by: Devansh Patel <devanshp@cisco.com>
---
sftp.c | 9 ++-------
1 file changed, 2 insertions(+), 7 deletions(-)
diff --git a/sftp.c b/sftp.c
index c609b4153..487e53976 100644
--- a/sftp.c
+++ b/sftp.c
@@ -2268,13 +2268,8 @@ interactive_loop(struct sftp_conn *conn, char *file1, char *file2)
return (-1);
}
} else {
- /* XXX this is wrong wrt quoting */
- snprintf(cmd, sizeof cmd, "get%s %s%s%s",
- global_aflag ? " -a" : "", dir,
- file2 == NULL ? "" : " ",
- file2 == NULL ? "" : file2);
- err = parse_dispatch_command(conn, cmd,
- &remote_path, startdir, 1, 0);
+ err = process_get(conn, dir, file2, remote_path, 0, 0,
+ global_aflag, 0);
free(dir);
free(startdir);
free(remote_path);

View File

@@ -0,0 +1,37 @@
From 762b3d438547893d62ce3e147dce6cef14697b09 Mon Sep 17 00:00:00 2001
From: "djm@openbsd.org" <djm@openbsd.org>
Date: Sun, 28 Jun 2026 23:47:16 +0000
Subject: [PATCH] upstream: resist that return ".." via remote glob during
remote/remote copies, similar to fixes for bz3871 for remote/local copies.
From Swival scanner
CVE: CVE-2026-59996
Upstream-Status: Backport [https://github.com/openssh/openssh-portable/commit/36480181fa22f98e180b4f9e10203480c0346c78]
Backport Changes:
- Retained the Scarthgap scp.c OpenBSD revision identifier because the
10.4 identifier does not describe the older source baseline.
OpenBSD-Commit-ID: c0c20a1b746db55c08e53658bf21ea9405b300a5
(cherry picked from commit 36480181fa22f98e180b4f9e10203480c0346c78)
Signed-off-by: Devansh Patel <devanshp@cisco.com>
---
scp.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/scp.c b/scp.c
index 2c21fa19a..00d87517d 100644
--- a/scp.c
+++ b/scp.c
@@ -2043,6 +2043,10 @@ throughlocal_sftp(struct sftp_conn *from, struct sftp_conn *to,
goto out;
}
+ /* Special handling for source of '..' */
+ if (strcmp(filename, "..") == 0)
+ filename = "."; /* Download to dest, not dest/.. */
+
if (targetisdir)
abs_dst = sftp_path_append(target, filename);
else

View File

@@ -0,0 +1,58 @@
From 3011cbb6bb73f3f3dc90fa1d48736803fa407509 Mon Sep 17 00:00:00 2001
From: "djm@openbsd.org" <djm@openbsd.org>
Date: Fri, 5 Jun 2026 08:53:07 +0000
Subject: [PATCH] upstream: pass >9 commandline arguments to the internal-sftp
server,
previously they were silently dropped; reported by Steve Caffrey ok deraadt@
CVE: CVE-2026-59997
Upstream-Status: Backport [https://github.com/openssh/openssh-portable/commit/e9916c44c1324ab9ab022719e4df08a390a83014]
Backport Changes:
- Retained the Scarthgap session.c OpenBSD revision identifier because the
10.4 identifier does not describe the older source baseline.
OpenBSD-Commit-ID: ee6cd5430a3ca027c3223af54b58ad3cc7ccd624
(cherry picked from commit e9916c44c1324ab9ab022719e4df08a390a83014)
Signed-off-by: Devansh Patel <devanshp@cisco.com>
---
session.c | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/session.c b/session.c
index eb932b8bf..1a01ecf74 100644
--- a/session.c
+++ b/session.c
@@ -1650,21 +1650,22 @@ do_child(struct ssh *ssh, Session *s, const char *command)
exit(1);
} else if (s->is_subsystem == SUBSYSTEM_INT_SFTP) {
extern int optind, optreset;
- int i;
- char *p, *args;
+ int sftp_argc;
+ char **sftp_argv;
setproctitle("%s@%s", s->pw->pw_name, INTERNAL_SFTP_NAME);
- args = xstrdup(command ? command : "sftp-server");
- for (i = 0, (p = strtok(args, " ")); p; (p = strtok(NULL, " ")))
- if (i < ARGV_MAX - 1)
- argv[i++] = p;
- argv[i] = NULL;
+ if (argv_split(command == NULL ? "sftp-server" : command,
+ &sftp_argc, &sftp_argv, 1) != 0) {
+ error("internal error: can't split internal-sftp "
+ "arguments");
+ exit(1);
+ }
optind = optreset = 1;
- __progname = argv[0];
+ __progname = sftp_argv[0];
#ifdef WITH_SELINUX
ssh_selinux_change_context("sftpd_t");
#endif
- exit(sftp_server_main(i, argv, s->pw));
+ exit(sftp_server_main(sftp_argc, sftp_argv, s->pw));
}
fflush(NULL);

View File

@@ -0,0 +1,36 @@
From 1c719fa7d0fb0aa335f0e8d5db5d5e5d01c894e5 Mon Sep 17 00:00:00 2001
From: "djm@openbsd.org" <djm@openbsd.org>
Date: Sun, 31 May 2026 04:47:29 +0000
Subject: [PATCH] upstream: DisableForwarding=yes didn't override
PermitTunnel=yes
Reported independently by Huzaifa Sidhpurwala of Redhat and Marko
Jevtic; ok markus@
CVE: CVE-2026-59999
Upstream-Status: Backport [https://github.com/openssh/openssh-portable/commit/8dfe7ed6e2fd988de08df508355a196b956b2753]
Backport Changes:
- Retained the Scarthgap serverloop.c OpenBSD revision identifier because
the 10.4 identifier does not describe the older source baseline.
OpenBSD-Commit-ID: b5c13f0746cf079b21f8deba47407fad49ccbf4c
(cherry picked from commit 8dfe7ed6e2fd988de08df508355a196b956b2753)
Signed-off-by: Devansh Patel <devanshp@cisco.com>
---
serverloop.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/serverloop.c b/serverloop.c
index f3683c2e4..c1fe99d12 100644
--- a/serverloop.c
+++ b/serverloop.c
@@ -531,7 +531,7 @@ server_request_tun(struct ssh *ssh)
ssh_packet_send_debug(ssh, "Unsupported tunnel device mode.");
return NULL;
}
- if ((options.permit_tun & mode) == 0) {
+ if ((options.permit_tun & mode) == 0 || options.disable_forwarding) {
ssh_packet_send_debug(ssh, "Server has rejected tunnel device "
"forwarding");
return NULL;

View File

@@ -0,0 +1,140 @@
From 055316632809a2e2e58eac2020699b52187d1b11 Mon Sep 17 00:00:00 2001
From: "djm@openbsd.org" <djm@openbsd.org>
Date: Mon, 6 Jul 2026 07:53:30 +0000
Subject: [PATCH] upstream: Fix multiple RFC 4462 (GSSAPIAuthentication)
compliance
problems
1) Remove an early failure return for GSSAPI authentication attempts
made for invalid accounts that yielded different behaviour for
valid vs invalid accounts.
2) Fix a situation where some GSSAPI requestes were not correctly
subjected to MaxAuthTries.
3) Fix a moderate pre-authentication resource DoS related to #2.
Add missing logging for error cases.
Report and fixes from Manfred Kaiser, milCERT AT
CVE: CVE-2026-60000
Upstream-Status: Backport [https://github.com/openssh/openssh-portable/commit/5d04ca6af739b82fd30d84d2783ca802ebfa1192]
Backport Changes:
- Kept Scarthgap's PRIVSEP(ssh_gssapi_server_ctx()) interface and its
authentication-context guard while applying the upstream RFC 4462 state,
failure, logging, and MaxAuthTries changes.
- Retained the Scarthgap auth2-gss.c OpenBSD revision identifier.
OpenBSD-Commit-ID: ca0acdd64eea435d6f89534538a9eb404a5629d3
(cherry picked from commit 5d04ca6af739b82fd30d84d2783ca802ebfa1192)
Signed-off-by: Devansh Patel <devanshp@cisco.com>
---
auth2-gss.c | 53 ++++++++++++++++++++++++-----------------------------
1 file changed, 24 insertions(+), 29 deletions(-)
diff --git a/auth2-gss.c b/auth2-gss.c
index 195578bcf..6846eae5b 100644
--- a/auth2-gss.c
+++ b/auth2-gss.c
@@ -110,12 +110,6 @@ userauth_gssapi(struct ssh *ssh, const char *method)
return (0);
}
- if (!authctxt->valid || authctxt->user == NULL) {
- debug2_f("disabled because of invalid user");
- free(doid);
- return (0);
- }
-
if (GSS_ERROR(PRIVSEP(ssh_gssapi_server_ctx(&ctxt, &goid)))) {
if (ctxt != NULL)
ssh_gssapi_delete_ctx(&ctxt);
@@ -177,8 +171,14 @@ input_gssapi_token(int type, u_int32_t plen, struct ssh *ssh)
(r = sshpkt_send(ssh)) != 0)
fatal_fr(r, "send ERRTOK packet");
}
+ logit("Failed gssapi-with-mic for %s%.100s "
+ "from %.200s port %d ssh2",
+ authctxt->valid ? "" : "invalid user ",
+ authctxt->user,
+ ssh_remote_ipaddr(ssh), ssh_remote_port(ssh));
authctxt->postponed = 0;
ssh_dispatch_set(ssh, SSH2_MSG_USERAUTH_GSSAPI_TOKEN, NULL);
+ ssh_dispatch_set(ssh, SSH2_MSG_USERAUTH_GSSAPI_ERRTOK, NULL);
userauth_finish(ssh, 0, "gssapi-with-mic", NULL);
} else {
if (send_tok.length != 0) {
@@ -190,14 +190,18 @@ input_gssapi_token(int type, u_int32_t plen, struct ssh *ssh)
fatal_fr(r, "send TOKEN packet");
}
if (maj_status == GSS_S_COMPLETE) {
- ssh_dispatch_set(ssh, SSH2_MSG_USERAUTH_GSSAPI_TOKEN, NULL);
- if (flags & GSS_C_INTEG_FLAG)
- ssh_dispatch_set(ssh, SSH2_MSG_USERAUTH_GSSAPI_MIC,
+ ssh_dispatch_set(ssh,
+ SSH2_MSG_USERAUTH_GSSAPI_TOKEN, NULL);
+ /* note: keep ERRTOK handler as per RFC 4462 s3.4 */
+ if (flags & GSS_C_INTEG_FLAG) {
+ ssh_dispatch_set(ssh,
+ SSH2_MSG_USERAUTH_GSSAPI_MIC,
&input_gssapi_mic);
- else
+ } else {
ssh_dispatch_set(ssh,
SSH2_MSG_USERAUTH_GSSAPI_EXCHANGE_COMPLETE,
&input_gssapi_exchange_complete);
+ }
}
}
@@ -209,10 +213,6 @@ static int
input_gssapi_errtok(int type, u_int32_t plen, struct ssh *ssh)
{
Authctxt *authctxt = ssh->authctxt;
- Gssctxt *gssctxt;
- gss_buffer_desc send_tok = GSS_C_EMPTY_BUFFER;
- gss_buffer_desc recv_tok;
- OM_uint32 maj_status;
int r;
u_char *p;
size_t len;
@@ -220,26 +220,21 @@ input_gssapi_errtok(int type, u_int32_t plen, struct ssh *ssh)
if (authctxt == NULL || (authctxt->methoddata == NULL && !use_privsep))
fatal("No authentication or GSSAPI context");
- gssctxt = authctxt->methoddata;
- if ((r = sshpkt_get_string(ssh, &p, &len)) != 0 ||
+ /* Minimal error handling - just cancel auth and return FAILURE */
+ if ((r = sshpkt_get_string_direct(ssh, NULL, NULL)) != 0 ||
(r = sshpkt_get_end(ssh)) != 0)
fatal_fr(r, "parse packet");
- recv_tok.value = p;
- recv_tok.length = len;
-
- /* Push the error token into GSSAPI to see what it says */
- maj_status = PRIVSEP(ssh_gssapi_accept_ctx(gssctxt, &recv_tok,
- &send_tok, NULL));
-
- free(recv_tok.value);
- /* We can't return anything to the client, even if we wanted to */
+ logit("Failed gssapi-with-mic for %s%.100s from %.200s port %d ssh2",
+ authctxt->valid ? "" : "invalid user ",
+ authctxt->user,
+ ssh_remote_ipaddr(ssh), ssh_remote_port(ssh));
+ authctxt->postponed = 0;
ssh_dispatch_set(ssh, SSH2_MSG_USERAUTH_GSSAPI_TOKEN, NULL);
ssh_dispatch_set(ssh, SSH2_MSG_USERAUTH_GSSAPI_ERRTOK, NULL);
-
- /* The client will have already moved on to the next auth */
-
- gss_release_buffer(&maj_status, &send_tok);
+ ssh_dispatch_set(ssh, SSH2_MSG_USERAUTH_GSSAPI_MIC, NULL);
+ ssh_dispatch_set(ssh, SSH2_MSG_USERAUTH_GSSAPI_EXCHANGE_COMPLETE, NULL);
+ userauth_finish(ssh, 0, "gssapi-with-mic", NULL);
return 0;
}

View File

@@ -0,0 +1,130 @@
From ef41798b35a53757f8aa08ad14ee1463b0fe9b15 Mon Sep 17 00:00:00 2001
From: "djm@openbsd.org" <djm@openbsd.org>
Date: Mon, 6 Jul 2026 07:44:48 +0000
Subject: [PATCH] upstream: Fix cases in GSSAPI and keyboard-interactive
authentication where the minimum per-attempt delay was not being enforced.
Reported by Orange Cyberdefense Vulnerability Team
CVE: CVE-2026-60001
Upstream-Status: Backport [https://github.com/openssh/openssh-portable/commit/d43ba60c91cb323ca921049b7d43b1908c318454]
Backport Changes:
- Kept Scarthgap's PRIVSEP(ssh_gssapi_userok()) interface and GSSAPI
display-name recording while adding the upstream failure-delay calls;
mm_ssh_gssapi_userok() belongs to the later split-sshd architecture.
- Retained the Scarthgap OpenBSD revision identifiers in auth.h,
auth2-chall.c, auth2-gss.c, and auth2.c.
OpenBSD-Commit-ID: c40bd35cc2428fcaccad7a141703c28baa6da01e
(cherry picked from commit d43ba60c91cb323ca921049b7d43b1908c318454)
Signed-off-by: Devansh Patel <devanshp@cisco.com>
---
auth.h | 1 +
auth2-chall.c | 4 ++++
auth2-gss.c | 7 +++++++
auth2.c | 10 ++++++++--
4 files changed, 20 insertions(+), 2 deletions(-)
diff --git a/auth.h b/auth.h
index 6d2d39762..9ad4898c5 100644
--- a/auth.h
+++ b/auth.h
@@ -173,6 +173,7 @@ void auth_log(struct ssh *, int, int, const char *, const char *);
void auth_maxtries_exceeded(struct ssh *) __attribute__((noreturn));
void userauth_finish(struct ssh *, int, const char *, const char *);
int auth_root_allowed(struct ssh *, const char *);
+void auth_failure_delay(Authctxt *, double);
char *auth2_read_banner(void);
int auth2_methods_valid(const char *, int);
diff --git a/auth2-chall.c b/auth2-chall.c
index 021df8291..20e70d222 100644
--- a/auth2-chall.c
+++ b/auth2-chall.c
@@ -296,6 +296,7 @@ input_userauth_info_response(int type, u_int32_t seq, struct ssh *ssh)
u_int i, nresp;
const char *devicename = NULL;
char **response = NULL;
+ double tstart = monotime_double();
if (authctxt == NULL)
fatal_f("no authctxt");
@@ -354,6 +355,9 @@ input_userauth_info_response(int type, u_int32_t seq, struct ssh *ssh)
auth2_challenge_start(ssh);
}
}
+
+ if (!authenticated)
+ auth_failure_delay(authctxt, tstart);
userauth_finish(ssh, authenticated, "keyboard-interactive",
devicename);
return 0;
diff --git a/auth2-gss.c b/auth2-gss.c
index f72a38998..195578bcf 100644
--- a/auth2-gss.c
+++ b/auth2-gss.c
@@ -255,6 +255,7 @@ input_gssapi_exchange_complete(int type, u_int32_t plen, struct ssh *ssh)
Authctxt *authctxt = ssh->authctxt;
int r, authenticated;
const char *displayname;
+ double tstart = monotime_double();
if (authctxt == NULL || (authctxt->methoddata == NULL && !use_privsep))
fatal("No authentication or GSSAPI context");
@@ -268,6 +269,8 @@ input_gssapi_exchange_complete(int type, u_int32_t plen, struct ssh *ssh)
fatal_fr(r, "parse packet");
authenticated = PRIVSEP(ssh_gssapi_userok(authctxt->user));
+ if (!authenticated)
+ auth_failure_delay(authctxt, tstart);
if ((!use_privsep || mm_is_monitor()) &&
(displayname = ssh_gssapi_displayname()) != NULL)
@@ -293,6 +296,7 @@ input_gssapi_mic(int type, u_int32_t plen, struct ssh *ssh)
const char *displayname;
u_char *p;
size_t len;
+ double tstart = monotime_double();
if (authctxt == NULL || (authctxt->methoddata == NULL && !use_privsep))
fatal("No authentication or GSSAPI context");
@@ -320,6 +324,9 @@ input_gssapi_mic(int type, u_int32_t plen, struct ssh *ssh)
sshbuf_free(b);
free(mic.value);
+ if (!authenticated)
+ auth_failure_delay(authctxt, tstart);
+
if ((!use_privsep || mm_is_monitor()) &&
(displayname = ssh_gssapi_displayname()) != NULL)
auth2_record_info(authctxt, "%s", displayname);
diff --git a/auth2.c b/auth2.c
index 271789a77..18077d625 100644
--- a/auth2.c
+++ b/auth2.c
@@ -265,6 +265,12 @@ ensure_minimum_time_since(double start, double seconds)
nanosleep(&ts, NULL);
}
+void
+auth_failure_delay(Authctxt *authctxt, double tstart)
+{
+ ensure_minimum_time_since(tstart, user_specific_delay(authctxt->user));
+}
+
static int
input_userauth_request(int type, u_int32_t seq, struct ssh *ssh)
{
@@ -348,8 +354,8 @@ input_userauth_request(int type, u_int32_t seq, struct ssh *ssh)
authenticated = m->userauth(ssh, method);
}
if (!authctxt->authenticated && strcmp(method, "none") != 0)
- ensure_minimum_time_since(tstart,
- user_specific_delay(authctxt->user));
+ auth_failure_delay(authctxt, tstart);
+
userauth_finish(ssh, authenticated, method, NULL);
r = 0;
out:

View File

@@ -0,0 +1,226 @@
From 767104acedd68c317b9d8fb603561e1a8be9e76a Mon Sep 17 00:00:00 2001
From: "djm@openbsd.org" <djm@openbsd.org>
Date: Mon, 6 Jul 2026 07:49:58 +0000
Subject: [PATCH] upstream: fix ownership and lifetime of several bits of
client
state that need to persist for the life of the connection, especially the
cached hostkey that was being incorrectly freed early on some paths, possibly
allowing its use after free.
Reported by Zhenpeng (Leo) Lin from depthfirst.com
CVE: CVE-2026-60002
Upstream-Status: Backport [https://github.com/openssh/openssh-portable/commit/e8bdfb151a356d0171fea4194dd205fbb252be23]
Backport Changes:
- Retained Scarthgap's valid_hostname() and valid_ruser() helpers when
relocating ssh_conn_info_free() from ssh.c to sshconnect.c.
- Retained Scarthgap's ext-info-c proposal handling while applying the
upstream connection-state ownership and lifetime changes.
- Retained the Scarthgap OpenBSD revision identifiers in ssh.c,
sshconnect.c, sshconnect.h, and sshconnect2.c.
OpenBSD-Commit-ID: faaa6ad72e7d69d41fa8b197b606265b7d9bc73f
(cherry picked from commit e8bdfb151a356d0171fea4194dd205fbb252be23)
Signed-off-by: Devansh Patel <devanshp@cisco.com>
---
ssh.c | 24 ++----------------------
sshconnect.c | 47 +++++++++++++++++++++++++++++++++++++++++++++--
sshconnect.h | 7 +++++--
sshconnect2.c | 20 +++++++++++---------
4 files changed, 63 insertions(+), 35 deletions(-)
diff --git a/ssh.c b/ssh.c
index 9c49f98a8..aecdb79ea 100644
--- a/ssh.c
+++ b/ssh.c
@@ -606,26 +606,6 @@ set_addrinfo_port(struct addrinfo *addrs, int port)
}
}
-static void
-ssh_conn_info_free(struct ssh_conn_info *cinfo)
-{
- if (cinfo == NULL)
- return;
- free(cinfo->conn_hash_hex);
- free(cinfo->shorthost);
- free(cinfo->uidstr);
- free(cinfo->keyalias);
- free(cinfo->thishost);
- free(cinfo->host_arg);
- free(cinfo->portstr);
- free(cinfo->remhost);
- free(cinfo->remuser);
- free(cinfo->homedir);
- free(cinfo->locuser);
- free(cinfo->jmphost);
- free(cinfo);
-}
-
static int
valid_hostname(const char *s)
{
@@ -1771,8 +1751,8 @@ main(int ac, char **av)
ssh_signal(SIGCHLD, main_sigchld_handler);
/* Log into the remote system. Never returns if the login fails. */
- ssh_login(ssh, &sensitive_data, host, (struct sockaddr *)&hostaddr,
- options.port, pw, timeout_ms, cinfo);
+ ssh_login(ssh, &sensitive_data, host, &hostaddr, options.port,
+ pw, timeout_ms, cinfo);
/* We no longer need the private host keys. Clear them now. */
if (sensitive_data.nkeys != 0) {
diff --git a/sshconnect.c b/sshconnect.c
index bd077c75c..7823b6782 100644
--- a/sshconnect.c
+++ b/sshconnect.c
@@ -83,6 +83,49 @@ extern char *__progname;
static int show_other_keys(struct hostkeys *, struct sshkey *);
static void warn_changed_key(struct sshkey *);
+void
+ssh_conn_info_free(struct ssh_conn_info *cinfo)
+{
+ if (cinfo == NULL)
+ return;
+ free(cinfo->conn_hash_hex);
+ free(cinfo->shorthost);
+ free(cinfo->uidstr);
+ free(cinfo->keyalias);
+ free(cinfo->thishost);
+ free(cinfo->host_arg);
+ free(cinfo->portstr);
+ free(cinfo->remhost);
+ free(cinfo->remuser);
+ free(cinfo->homedir);
+ free(cinfo->locuser);
+ free(cinfo->jmphost);
+ freezero(cinfo, sizeof(*cinfo));
+}
+
+struct ssh_conn_info *
+ssh_conn_info_dup(const struct ssh_conn_info *cinfo)
+{
+ struct ssh_conn_info *ret;
+
+ if (cinfo == NULL)
+ return NULL;
+ ret = xcalloc(1, sizeof(*ret));
+ ret->conn_hash_hex = xstrdup(cinfo->conn_hash_hex);
+ ret->shorthost = xstrdup(cinfo->shorthost);
+ ret->uidstr = xstrdup(cinfo->uidstr);
+ ret->keyalias = xstrdup(cinfo->keyalias);
+ ret->thishost = xstrdup(cinfo->thishost);
+ ret->host_arg = xstrdup(cinfo->host_arg);
+ ret->portstr = xstrdup(cinfo->portstr);
+ ret->remhost = xstrdup(cinfo->remhost);
+ ret->remuser = xstrdup(cinfo->remuser);
+ ret->homedir = xstrdup(cinfo->homedir);
+ ret->locuser = xstrdup(cinfo->locuser);
+ ret->jmphost = xstrdup(cinfo->jmphost);
+ return ret;
+}
+
/* Expand a proxy command */
static char *
expand_proxy_command(const char *proxy_command, const char *user,
@@ -1559,8 +1602,8 @@ out:
*/
void
ssh_login(struct ssh *ssh, Sensitive *sensitive, const char *orighost,
- struct sockaddr *hostaddr, u_short port, struct passwd *pw, int timeout_ms,
- const struct ssh_conn_info *cinfo)
+ struct sockaddr_storage *hostaddr, u_short port, struct passwd *pw,
+ int timeout_ms, const struct ssh_conn_info *cinfo)
{
char *host;
char *server_user, *local_user;
diff --git a/sshconnect.h b/sshconnect.h
index 79d35cc19..da2a73f5a 100644
--- a/sshconnect.h
+++ b/sshconnect.h
@@ -71,7 +71,7 @@ int ssh_connect(struct ssh *, const char *, const char *,
void ssh_kill_proxy_command(void);
void ssh_login(struct ssh *, Sensitive *, const char *,
- struct sockaddr *, u_short, struct passwd *, int,
+ struct sockaddr_storage *, u_short, struct passwd *, int,
const struct ssh_conn_info *);
int verify_host_key(char *, struct sockaddr *, struct sshkey *,
@@ -80,7 +80,7 @@ int verify_host_key(char *, struct sockaddr *, struct sshkey *,
void get_hostfile_hostname_ipaddr(char *, struct sockaddr *, u_short,
char **, char **);
-void ssh_kex2(struct ssh *ssh, char *, struct sockaddr *, u_short,
+void ssh_kex2(struct ssh *ssh, char *, struct sockaddr_storage *, u_short,
const struct ssh_conn_info *);
void ssh_userauth2(struct ssh *ssh, const char *, const char *,
@@ -94,3 +94,6 @@ void maybe_add_key_to_agent(const char *, struct sshkey *,
void load_hostkeys_command(struct hostkeys *, const char *,
const char *, const struct ssh_conn_info *,
const struct sshkey *, const char *);
+
+void ssh_conn_info_free(struct ssh_conn_info *);
+struct ssh_conn_info *ssh_conn_info_dup(const struct ssh_conn_info *);
diff --git a/sshconnect2.c b/sshconnect2.c
index a296c9b8c..9efb3da8a 100644
--- a/sshconnect2.c
+++ b/sshconnect2.c
@@ -89,7 +89,7 @@ extern Options options;
*/
static char *xxx_host;
-static struct sockaddr *xxx_hostaddr;
+static struct sockaddr_storage xxx_hostaddr;
static const struct ssh_conn_info *xxx_conn_info;
static int key_type_allowed(struct sshkey *, const char *);
@@ -105,7 +105,7 @@ verify_host_key_callback(struct sshkey *hostkey, struct ssh *ssh)
fatal("Server host key %s not in HostKeyAlgorithms",
sshkey_ssh_name(hostkey));
}
- if (verify_host_key(xxx_host, xxx_hostaddr, hostkey,
+ if (verify_host_key(xxx_host, (struct sockaddr *)&xxx_hostaddr, hostkey,
xxx_conn_info) != 0)
fatal("Host key verification failed.");
return 0;
@@ -222,16 +222,16 @@ order_hostkeyalgs(char *host, struct sockaddr *hostaddr, u_short port,
}
void
-ssh_kex2(struct ssh *ssh, char *host, struct sockaddr *hostaddr, u_short port,
- const struct ssh_conn_info *cinfo)
+ssh_kex2(struct ssh *ssh, char *host, struct sockaddr_storage *hostaddr,
+ u_short port, const struct ssh_conn_info *cinfo)
{
char *myproposal[PROPOSAL_MAX];
char *s, *all_key, *hkalgs = NULL;
int r, use_known_hosts_order = 0;
- xxx_host = host;
- xxx_hostaddr = hostaddr;
- xxx_conn_info = cinfo;
+ xxx_host = xstrdup(host);
+ xxx_hostaddr = *hostaddr;
+ xxx_conn_info = ssh_conn_info_dup(cinfo);
if (options.rekey_limit || options.rekey_interval)
ssh_packet_set_rekey_limits(ssh, options.rekey_limit,
@@ -257,8 +257,10 @@ ssh_kex2(struct ssh *ssh, char *host, struct sockaddr *hostaddr, u_short port,
if ((s = kex_names_cat(options.kex_algorithms, "ext-info-c")) == NULL)
fatal_f("kex_names_cat");
- if (use_known_hosts_order)
- hkalgs = order_hostkeyalgs(host, hostaddr, port, cinfo);
+ if (use_known_hosts_order) {
+ hkalgs = order_hostkeyalgs(host, (struct sockaddr *)hostaddr,
+ port, cinfo);
+ }
kex_proposal_populate_entries(ssh, myproposal, s, options.ciphers,
options.macs, compression_alg_list(options.compression),

View File

@@ -35,8 +35,15 @@ SRC_URI = "http://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-${PV}.tar
file://CVE-2025-61985.patch \
file://CVE-2025-61984_CVE-2026-35386.patch \
file://CVE-2026-35385.patch \
file://CVE-2026-35387.patch \
file://CVE-2026-35414-CVE-2026-35387.patch \
file://CVE-2026-35388.patch \
file://CVE-2026-59999.patch \
file://CVE-2026-59997.patch \
file://CVE-2026-59996.patch \
file://CVE-2026-59995.patch \
file://CVE-2026-60001.patch \
file://CVE-2026-60002.patch \
file://CVE-2026-60000.patch \
"
SRC_URI[sha256sum] = "910211c07255a8c5ad654391b40ee59800710dd8119dd5362de09385aa7a777c"
@@ -49,6 +56,8 @@ Red Hat Enterprise Linux 7 and when running in a Kerberos environment"
CVE_STATUS[CVE-2008-3844] = "not-applicable-platform: Only applies to some distributed RHEL binaries."
CVE_STATUS[CVE-2023-51767] = "upstream-wontfix: It was demonstrated on modified sshd and does not exist in upstream openssh https://bugzilla.mindrot.org/show_bug.cgi?id=3656#c1."
CVE_STATUS[CVE-2026-3497] = "not-applicable-platform: Only affects GSSAPI Key Exchange patches used by some Linux distributions and does not exist in upstream openssh."
CVE_STATUS[CVE-2026-59998] = "${@bb.utils.contains('PACKAGECONFIG', 'kerberos', 'unpatched', 'not-applicable-config: GSSAPI/Kerberos support is disabled in the default OpenSSH configuration', d)}"
PAM_SRC_URI = "file://sshd"

View File

@@ -0,0 +1,150 @@
From d44cd1cc4fbb70a9ae9e71890024ae8367fcb912 Mon Sep 17 00:00:00 2001
From: Gerhard Rieger <gerhard@dest-unreach.org>
Date: Thu, 25 Jun 2026 14:55:59 +0200
Subject: [PATCH] Version 1.8.1.2 - fixed SOCKS5 client buffer overflow
(CVE-2026-56123)
CVE: CVE-2026-56123
Upstream-Status: Backport [repo.or.cz/socat.git/commitdiff/d44cd1cc4fbb70a9ae9e71890024ae8367fcb912]
Signed-off-by: Peter Marko <peter.marko@siemens.com>
---
CHANGES | 13 ++++++++++
test.sh | 73 ++++++++++++++++++++++++++++++++++++++++++++++++++++
xio-socks5.h | 4 +--
3 files changed, 88 insertions(+), 2 deletions(-)
diff --git a/CHANGES b/CHANGES
index ba82024..3c2f230 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1,4 +1,17 @@

+Security:
+ Socat security advisory 10
+ CVE-2026-56123
+ There was a possible heap overflow in the socks5 client code. It could
+ be triggered by connecting to a malicious socks5 server that expected
+ this connection and had knowledge about details of the client binary
+ code.
+ Only builds with C signed char (vs.unsigned char) are affected.
+ Thanks to Tristan Madani for finding and reporting this issue, and for
+ conveying the process.
+ Test: SOCKS5_OVERFL
+
+
####################### V 1.8.0.0
Security:
diff --git a/test.sh b/test.sh
index 53bbb2a..467ac57 100755
--- a/test.sh
+++ b/test.sh
@@ -601,6 +601,9 @@ rm -rf "$TD" || (echo "cannot rm $TD" >&2; exit 1)
mkdir -p "$TD"
#trap "rm -r $TD" 0 3
+BINDIR=$td/bin
+mkdir -p $BINDIR
+
echo "Using temp directory $TD"
case "$TESTS" in
@@ -19217,6 +19220,76 @@ fi # NUMCOND
esac
N=$((N+1))
+# Above tests introduced with 1.8.1.0 (none with 1.8.1.1)
+#==============================================================================
+# Below tests introduced with 1.8.1.2
+
+
+# Test socks5 client buffer overflow (CVE-2026-56123)
+NAME=SOCKS5_OVERFL
+case "$TESTS" in
+*%$N%*|*%functions%*|*%bugs%*|*%security%*|*%socks5%*|*%socks%*|*%%*|*%%*|*%socket%*|*%$NAME%*)
+#*%internet%*|*%root%*|*%listen%*|*%fork%*|*%ip4%*|*%tcp4%*|*%bug%*|...
+TEST="$NAME: socks5 client buffer overflow"
+# Start a listener that emulates a malicious socks5 server, using a temporary
+# shell script;
+# connect using Socat with socks5 client;
+# when is terminates with rc=0 the test succeeded (not vulnerable)
+if ! eval $NUMCOND; then :
+# Check if this test can be performed meaningfully
+elif ! cond=$(checkconds \
+ "" \
+ "" \
+ "" \
+ "IP4 TCP LISTEN SHELL GOPEN SOCKS5" \
+ "TCP4-LISTEN SHELL GOPEN SOCKS5" \
+ "socksport" \
+ "tcp4" ); then
+ $PRINTF "test $F_n $TEST... ${YELLOW}$cond${NORMAL}\n" $N
+ cant
+else
+ mkdir -p "$BINDIR"
+ tf="$td/test$N.stdout"
+ te="$td/test$N.stderr"
+ tdiff="$td/test$N.diff"
+ tsh="$BINDIR/test$N.sh"
+ cat >"$tsh" <<__EOF__
+$ECHO -n "\\x05\\x00"
+relsleep 1
+$ECHO -n "\\x05\\x00\\x00\\x03\\xfdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
+__EOF__
+ chmod a+x "$tsh"
+ newport tcp4 # -> PORT
+ CMD0="$TRACE $SOCAT $opts TCP4-LISTEN:$PORT SHELL:$tsh"
+ CMD1="$TRACE $SOCAT $opts /dev/null SOCKS5:$LOCALHOST4:17.34.51.68:85,socksport=$PORT"
+ printf "test $F_n $TEST... " $N
+ $CMD0 >/dev/null 2>"${te}0" &
+ pid0=$!
+ waittcp4port $PORT 1
+ $CMD1 >"${tf}1" 2>"${te}1"
+ rc1=$?
+ kill $pid0 2>/dev/null; wait
+ if [ "$rc1" -ne 0 ]; then
+ $PRINTF "$FAILED (rc1=$rc1)\n"
+ echo "$CMD0 &"
+ cat "${te}0" >&2
+ echo "$CMD1"
+ cat "${te}1" >&2
+ failed
+ else
+ $PRINTF "$OK\n"
+ if [ "$VERBOSE" ]; then echo "$CMD0 &"; fi
+ if [ "$DEBUG" ]; then cat "${te}0" >&2; fi
+ if [ "$VERBOSE" ]; then echo "$CMD1"; fi
+ if [ "$DEBUG" ]; then cat "${te}1" >&2; fi
+ ok
+ fi
+fi # NUMCOND
+ ;;
+esac
+N=$((N+1))
+
+
# end of common tests
##################################################################################
diff --git a/xio-socks5.h b/xio-socks5.h
index 4dab76b..d4712d2 100644
--- a/xio-socks5.h
+++ b/xio-socks5.h
@@ -23,7 +23,7 @@ struct socks5_request {
uint8_t command;
uint8_t reserved;
uint8_t address_type;
- char dstdata[];
+ unsigned char dstdata[];
};
struct socks5_reply {
@@ -31,7 +31,7 @@ struct socks5_reply {
uint8_t reply;
uint8_t reserved;
uint8_t address_type;
- char dstdata[];
+ unsigned char dstdata[];
};
extern const struct addrdesc xioaddr_socks5_connect;

View File

@@ -12,6 +12,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
SRC_URI = "http://www.dest-unreach.org/socat/download/socat-${PV}.tar.bz2 \
file://0001-fix-compile-procan.c-failed.patch \
file://CVE-2024-54661.patch \
file://CVE-2026-56123.patch \
"
SRC_URI[sha256sum] = "e1de683dd22ee0e3a6c6bbff269abe18ab0c9d7eb650204f125155b9005faca7"

View File

@@ -0,0 +1,50 @@
From fe04a7f0ff8afe57ba33d919f368b1ba23bcda92 Mon Sep 17 00:00:00 2001
From: Sebastian Pipping <sebastian@pipping.org>
Date: Sun, 30 Mar 2025 19:26:55 +0200
Subject: [PATCH 1/3] lib/xmlparse.c: Address clang-tidy warning
misc-no-recursion
CVE: CVE-2026-41080
Upstream-Status: Backport [https://github.com/libexpat/libexpat/commit/fe04a7f0ff8afe57ba33d919f368b1ba23bcda92]
Signed-off-by: Peter Marko <peter.marko@siemens.com>
---
lib/xmlparse.c | 17 ++++++++++-------
1 file changed, 10 insertions(+), 7 deletions(-)
diff --git a/lib/xmlparse.c b/lib/xmlparse.c
index 9bc67f38..cb25c37b 100644
--- a/lib/xmlparse.c
+++ b/lib/xmlparse.c
@@ -1243,9 +1243,10 @@ generate_hash_secret_salt(XML_Parser parser) {
static unsigned long
get_hash_secret_salt(XML_Parser parser) {
- if (parser->m_parentParser != NULL)
- return get_hash_secret_salt(parser->m_parentParser);
- return parser->m_hash_secret_salt;
+ const XML_Parser rootParser = getRootParserOf(parser, NULL);
+ assert(! rootParser->m_parentParser);
+
+ return rootParser->m_hash_secret_salt;
}
static enum XML_Error
@@ -2321,12 +2322,14 @@ int XMLCALL
XML_SetHashSalt(XML_Parser parser, unsigned long hash_salt) {
if (parser == NULL)
return 0;
- if (parser->m_parentParser)
- return XML_SetHashSalt(parser->m_parentParser, hash_salt);
+
+ const XML_Parser rootParser = getRootParserOf(parser, NULL);
+ assert(! rootParser->m_parentParser);
+
/* block after XML_Parse()/XML_ParseBuffer() has been called */
- if (parserBusy(parser))
+ if (parserBusy(rootParser))
return 0;
- parser->m_hash_secret_salt = hash_salt;
+ rootParser->m_hash_secret_salt = hash_salt;
return 1;
}

View File

@@ -0,0 +1,29 @@
From 7fb2c7a454edc9e2880073a27f899c31d9b078ce Mon Sep 17 00:00:00 2001
From: Atrem Borovik <polzovatellllk@gmail.com>
Date: Sat, 20 Dec 2025 13:22:16 +0300
Subject: [PATCH 2/3] WASI: remove getpid
CVE: CVE-2026-41080
Upstream-Status: Backport [https://github.com/libexpat/libexpat/commit/7fb2c7a454edc9e2880073a27f899c31d9b078ce]
Signed-off-by: Peter Marko <peter.marko@siemens.com>
---
lib/xmlparse.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/lib/xmlparse.c b/lib/xmlparse.c
index cb25c37b..1bafb948 100644
--- a/lib/xmlparse.c
+++ b/lib/xmlparse.c
@@ -1228,8 +1228,11 @@ generate_hash_secret_salt(XML_Parser parser) {
# endif /* ! defined(_WIN32) && defined(XML_DEV_URANDOM) */
/* .. and self-made low quality for backup: */
+ entropy = gather_time_entropy();
+# if ! defined(__wasi__)
/* Process ID is 0 bits entropy if attacker has local access */
- entropy = gather_time_entropy() ^ getpid();
+ entropy ^= getpid();
+# endif
/* Factors are 2^31-1 and 2^61-1 (Mersenne primes M31 and M61) */
if (sizeof(unsigned long) == 4) {

View File

@@ -0,0 +1,467 @@
From b77ab600e1893fdcfc3868d0a46efcc87c87943d Mon Sep 17 00:00:00 2001
From: Sebastian Pipping <sebastian@pipping.org>
Date: Wed, 8 Apr 2026 15:41:54 +0200
Subject: [PATCH 3/3] [CVE-2026-41080] Improve protection against hash flooding
(fixes #47)
Fixes #47
CVE: CVE-2026-41080
Upstream-Status: Backport [https://github.com/libexpat/libexpat/pull/1183]
Signed-off-by: Peter Marko <peter.marko@siemens.com>
---
Changes | 16 ++++++
doc/reference.html | 51 ++++++++++++++--
lib/expat.h | 12 ++++
lib/internal.h | 2 +
lib/xmlparse.c | 118 ++++++++++++++++++++++++++------------
tests/basic_tests.c | 25 ++++++++
6 files changed, 181 insertions(+), 43 deletions(-)
diff --git a/Changes b/Changes
index 4265d608..1d87d6a0 100644
--- a/Changes
+++ b/Changes
@@ -30,6 +30,22 @@
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Patches:
+ Security fixes:
+ #47 #1183 CVE-2026-41080 -- The existing hash flooding protection
+ (based on SipHash) only used 4 to 8 bytes of entropy for
+ a salt, when 16 bytes of salt are supported by the
+ implementation of SipHash used by Expat. Now full 16 bytes
+ of entropy are used to improve protection against hash
+ flooding attacks.
+ Existing API function XML_SetHashSalt is now deprecated
+ because of its limitations, and its use should be
+ considered a vulnerability. Please either use the new API
+ function XML_SetHashSalt16Bytes (with known-high-quality
+ entropy input only!) instead, or leave the derivation of
+ a 16-bytes hash salt from high quality entropy to Expat's
+ internal machinery (by *not* calling either of the two
+ XML_SetHashSalt* functions).
+
Security fixes:
#1018 #1034 CVE-2025-59375 -- Disallow use of disproportional amounts of
dynamic memory from within an Expat parser (e.g. previously
diff --git a/doc/reference.html b/doc/reference.html
index 8f14b011..7f374f84 100644
--- a/doc/reference.html
+++ b/doc/reference.html
@@ -174,7 +174,8 @@ interface.</p>
<li><a href="#XML_GetAttributeInfo">XML_GetAttributeInfo</a></li>
<li><a href="#XML_SetEncoding">XML_SetEncoding</a></li>
<li><a href="#XML_SetParamEntityParsing">XML_SetParamEntityParsing</a></li>
- <li><a href="#XML_SetHashSalt">XML_SetHashSalt</a></li>
+ <li><a href="#XML_SetHashSalt">XML_SetHashSalt</a> (deprecated)</li>
+ <li><a href="#XML_SetHashSalt16Bytes">XML_SetHashSalt16Bytes</a></li>
<li><a href="#XML_UseForeignDTD">XML_UseForeignDTD</a></li>
<li><a href="#XML_SetReturnNSTriplet">XML_SetReturnNSTriplet</a></li>
<li><a href="#XML_DefaultCurrent">XML_DefaultCurrent</a></li>
@@ -2553,10 +2554,10 @@ The choices for <code>code</code> are:
no effect and will always return 0.
</div>
-<h4 id="XML_SetHashSalt">XML_SetHashSalt</h4>
+<h4 id="XML_SetHashSalt">XML_SetHashSalt (deprecated)</h4>
<pre class="fcndec">
int XMLCALL
-XML_SetHashSalt(XML_Parser p,
+XML_SetHashSalt(XML_Parser parser,
unsigned long hash_salt);
</pre>
<div class="fcndef">
@@ -2564,15 +2565,55 @@ Sets the hash salt to use for internal hash calculations.
Helps in preventing DoS attacks based on predicting hash
function behavior. In order to have an effect this must be called
before parsing has started. Returns 1 if successful, 0 when called
-after <code>XML_Parse</code> or <code>XML_ParseBuffer</code>.
+after <code>XML_Parse</code> or <code>XML_ParseBuffer</code> or when
+ <code>parser</code> is <code>NULL</code>.
+ <p>
+ <b>Note:</b> Function <code>XML_SetHashSalt</code> is
+ <strong>deprecated</strong>. Please use function <code><a href=
+ "#XML_SetHashSalt16Bytes">XML_SetHashSalt16Bytes</a></code> instead for better
+ security. <code>XML_SetHashSalt</code> only provides 4 to 8 bytes of entropy
+ (depending on the size of type <code>unsigned long</code>) while the SipHash
+ implementation used by Expat can leverage up to 16 bytes of entropy — at least
+ twice as much. Function <code><a href=
+ "#XML_SetHashSalt16Bytes">XML_SetHashSalt16Bytes</a></code> of Expat &gt;=2.7.6
+ (and where backported) matches the amount of entropy supported by SipHash.
+ </p>.
<p><b>Note:</b> This call is optional, as the parser will auto-generate
-a new random salt value if no value has been set at the start of parsing.</p>
+a new random salt value internally if no value has been set by the start of parsing.</p>
<p><b>Note:</b> One should not call <code>XML_SetHashSalt</code> with a
hash salt value of 0, as this value is used as sentinel value to indicate
that <code>XML_SetHashSalt</code> has <b>not</b> been called. Consequently
such a call will have no effect, even if it returns 1.</p>
</div>
+ <h4 id="XML_SetHashSalt16Bytes">
+ XML_SetHashSalt16Bytes
+ </h4>
+
+ <pre class="fcndec">
+/* Added in Expat 2.7.6. */
+XML_Bool XMLCALL
+XML_SetHashSalt16Bytes(XML_Parser parser,
+ const uint8_t entropy[16]);
+</pre>
+ <div class="fcndef">
+ Sets the hash salt to use for internal hash calculations. Helps in preventing DoS
+ attacks based on predicting hash function behavior. In order to have an effect
+ this must be called before parsing has started. Returns <code>XML_TRUE</code> if
+ successful, <code>XML_FALSE</code> when called after <code>XML_Parse</code> or
+ <code>XML_ParseBuffer</code> or when <code>parser</code> is <code>NULL</code>.
+ <p>
+ <b>Note:</b> Setting a salt that is <em>not</em> from a source of high quality
+ entropy (like <code>getentropy(3)</code>) will make the parser vulnerable to
+ hash flooding attacks.
+ </p>
+
+ <p>
+ <b>Note:</b> This call is optional, as the parser will auto-generate a new
+ random salt value internally if no value has been set by the start of parsing.
+ </p>
+ </div>
+
<h4 id="XML_UseForeignDTD">XML_UseForeignDTD</h4>
<pre class="fcndec">
enum XML_Error XMLCALL
diff --git a/lib/expat.h b/lib/expat.h
index df207e9e..b356e002 100644
--- a/lib/expat.h
+++ b/lib/expat.h
@@ -44,6 +44,7 @@
#ifndef Expat_INCLUDED
#define Expat_INCLUDED 1
+# include <stdint.h> // for uint8_t
#include <stdlib.h>
#include "expat_external.h"
@@ -916,10 +917,21 @@ XML_SetParamEntityParsing(XML_Parser parser,
function behavior. This must be called before parsing is started.
Returns 1 if successful, 0 when called after parsing has started.
Note: If parser == NULL, the function will do nothing and return 0.
+ DEPRECATED since Expat 2.7.6.
*/
XMLPARSEAPI(int)
XML_SetHashSalt(XML_Parser parser, unsigned long hash_salt);
+/* Sets the hash salt to use for internal hash calculations.
+ Helps in preventing DoS attacks based on predicting hash function behavior.
+ This must be called before parsing is started.
+ Returns XML_TRUE if successful, XML_FALSE when called after parsing has
+ started or when parser is NULL.
+ Added in Expat 2.7.6.
+*/
+XMLPARSEAPI(XML_Bool)
+XML_SetHashSalt16Bytes(XML_Parser parser, const uint8_t entropy[16]);
+
/* If XML_Parse or XML_ParseBuffer have returned XML_STATUS_ERROR, then
XML_GetErrorCode returns information about the error.
*/
diff --git a/lib/internal.h b/lib/internal.h
index 32faaa05..617d6454 100644
--- a/lib/internal.h
+++ b/lib/internal.h
@@ -113,6 +113,7 @@
#if defined(_WIN32) \
&& (! defined(__USE_MINGW_ANSI_STDIO) \
|| (1 - __USE_MINGW_ANSI_STDIO - 1 == 0))
+# define EXPAT_FMT_LLX(midpart) "%" midpart "I64x"
# define EXPAT_FMT_ULL(midpart) "%" midpart "I64u"
# if defined(_WIN64) // Note: modifiers "td" and "zu" do not work for MinGW
# define EXPAT_FMT_PTRDIFF_T(midpart) "%" midpart "I64d"
@@ -122,6 +123,7 @@
# define EXPAT_FMT_SIZE_T(midpart) "%" midpart "u"
# endif
#else
+# define EXPAT_FMT_LLX(midpart) "%" midpart "llx"
# define EXPAT_FMT_ULL(midpart) "%" midpart "llu"
# if ! defined(ULONG_MAX)
# error Compiler did not define ULONG_MAX for us
diff --git a/lib/xmlparse.c b/lib/xmlparse.c
index 1bafb948..75a7e5d0 100644
--- a/lib/xmlparse.c
+++ b/lib/xmlparse.c
@@ -604,7 +604,7 @@ static ELEMENT_TYPE *getElementType(XML_Parser parser, const ENCODING *enc,
static XML_Char *copyString(const XML_Char *s, XML_Parser parser);
-static unsigned long generate_hash_secret_salt(XML_Parser parser);
+static struct sipkey generate_hash_secret_salt(void);
static XML_Bool startParsing(XML_Parser parser);
static XML_Parser parserCreate(const XML_Char *encodingName,
@@ -777,7 +777,8 @@ struct XML_ParserStruct {
XML_Bool m_useForeignDTD;
enum XML_ParamEntityParsing m_paramEntityParsing;
#endif
- unsigned long m_hash_secret_salt;
+ struct sipkey m_hash_secret_salt_128;
+ XML_Bool m_hash_secret_salt_set;
#if XML_GE == 1
ACCOUNTING m_accounting;
MALLOC_TRACKER m_alloc_tracker;
@@ -1189,69 +1190,65 @@ gather_time_entropy(void) {
#endif /* ! defined(HAVE_ARC4RANDOM_BUF) && ! defined(HAVE_ARC4RANDOM) */
-static unsigned long
-ENTROPY_DEBUG(const char *label, unsigned long entropy) {
+static struct sipkey
+ENTROPY_DEBUG(const char *label, struct sipkey entropy_128) {
if (getDebugLevel("EXPAT_ENTROPY_DEBUG", 0) >= 1u) {
- fprintf(stderr, "expat: Entropy: %s --> 0x%0*lx (%lu bytes)\n", label,
- (int)sizeof(entropy) * 2, entropy, (unsigned long)sizeof(entropy));
+ fprintf(stderr,
+ "expat: Entropy: %s --> [0x" EXPAT_FMT_LLX(
+ "016") ", 0x" EXPAT_FMT_LLX("016") "] (16 bytes)\n",
+ label, (unsigned long long)entropy_128.k[0],
+ (unsigned long long)entropy_128.k[1]);
}
- return entropy;
+ return entropy_128;
}
-static unsigned long
-generate_hash_secret_salt(XML_Parser parser) {
- unsigned long entropy;
- (void)parser;
+static struct sipkey
+generate_hash_secret_salt(void) {
+ struct sipkey entropy;
/* "Failproof" high quality providers: */
#if defined(HAVE_ARC4RANDOM_BUF)
arc4random_buf(&entropy, sizeof(entropy));
return ENTROPY_DEBUG("arc4random_buf", entropy);
#elif defined(HAVE_ARC4RANDOM)
- writeRandomBytes_arc4random((void *)&entropy, sizeof(entropy));
+ writeRandomBytes_arc4random(&entropy, sizeof(entropy));
return ENTROPY_DEBUG("arc4random", entropy);
#else
/* Try high quality providers first .. */
# ifdef _WIN32
- if (writeRandomBytes_rand_s((void *)&entropy, sizeof(entropy))) {
+ if (writeRandomBytes_rand_s(&entropy, sizeof(entropy))) {
return ENTROPY_DEBUG("rand_s", entropy);
}
# elif defined(HAVE_GETRANDOM) || defined(HAVE_SYSCALL_GETRANDOM)
- if (writeRandomBytes_getrandom_nonblock((void *)&entropy, sizeof(entropy))) {
+ if (writeRandomBytes_getrandom_nonblock(&entropy, sizeof(entropy))) {
return ENTROPY_DEBUG("getrandom", entropy);
}
# endif
# if ! defined(_WIN32) && defined(XML_DEV_URANDOM)
- if (writeRandomBytes_dev_urandom((void *)&entropy, sizeof(entropy))) {
+ if (writeRandomBytes_dev_urandom(&entropy, sizeof(entropy))) {
return ENTROPY_DEBUG("/dev/urandom", entropy);
}
# endif /* ! defined(_WIN32) && defined(XML_DEV_URANDOM) */
/* .. and self-made low quality for backup: */
- entropy = gather_time_entropy();
+ entropy.k[0] = 0;
+ entropy.k[1] = gather_time_entropy();
# if ! defined(__wasi__)
/* Process ID is 0 bits entropy if attacker has local access */
- entropy ^= getpid();
+ entropy.k[1] ^= getpid();
# endif
/* Factors are 2^31-1 and 2^61-1 (Mersenne primes M31 and M61) */
if (sizeof(unsigned long) == 4) {
- return ENTROPY_DEBUG("fallback(4)", entropy * 2147483647);
+ entropy.k[1] *= 2147483647;
+ return ENTROPY_DEBUG("fallback(4)", entropy);
} else {
- return ENTROPY_DEBUG("fallback(8)",
- entropy * (unsigned long)2305843009213693951ULL);
+ entropy.k[1] *= 2305843009213693951ULL;
+ return ENTROPY_DEBUG("fallback(8)", entropy);
}
#endif
}
-static unsigned long
-get_hash_secret_salt(XML_Parser parser) {
- const XML_Parser rootParser = getRootParserOf(parser, NULL);
- assert(! rootParser->m_parentParser);
-
- return rootParser->m_hash_secret_salt;
-}
-
static enum XML_Error
callProcessor(XML_Parser parser, const char *start, const char *end,
const char **endPtr) {
@@ -1320,8 +1316,10 @@ callProcessor(XML_Parser parser, const char *start, const char *end,
static XML_Bool /* only valid for root parser */
startParsing(XML_Parser parser) {
/* hash functions must be initialized before setContext() is called */
- if (parser->m_hash_secret_salt == 0)
- parser->m_hash_secret_salt = generate_hash_secret_salt(parser);
+ if (parser->m_hash_secret_salt_set != XML_TRUE) {
+ parser->m_hash_secret_salt_128 = generate_hash_secret_salt();
+ parser->m_hash_secret_salt_set = XML_TRUE;
+ }
if (parser->m_ns) {
/* implicit context only set for root parser, since child
parsers (i.e. external entity parsers) will inherit it
@@ -1609,7 +1607,9 @@ parserInit(XML_Parser parser, const XML_Char *encodingName) {
parser->m_useForeignDTD = XML_FALSE;
parser->m_paramEntityParsing = XML_PARAM_ENTITY_PARSING_NEVER;
#endif
- parser->m_hash_secret_salt = 0;
+ parser->m_hash_secret_salt_128.k[0] = 0;
+ parser->m_hash_secret_salt_128.k[1] = 0;
+ parser->m_hash_secret_salt_set = XML_FALSE;
#if XML_GE == 1
memset(&parser->m_accounting, 0, sizeof(ACCOUNTING));
@@ -1776,7 +1776,8 @@ XML_ExternalEntityParserCreate(XML_Parser oldParser, const XML_Char *context,
from hash tables associated with either parser without us having
to worry which hash secrets each table has.
*/
- unsigned long oldhash_secret_salt;
+ struct sipkey oldhash_secret_salt_128;
+ XML_Bool oldhash_secret_salt_set;
XML_Bool oldReparseDeferralEnabled;
/* Validate the oldParser parameter before we pull everything out of it */
@@ -1822,7 +1823,8 @@ XML_ExternalEntityParserCreate(XML_Parser oldParser, const XML_Char *context,
from hash tables associated with either parser without us having
to worry which hash secrets each table has.
*/
- oldhash_secret_salt = parser->m_hash_secret_salt;
+ oldhash_secret_salt_128 = parser->m_hash_secret_salt_128;
+ oldhash_secret_salt_set = parser->m_hash_secret_salt_set;
oldReparseDeferralEnabled = parser->m_reparseDeferralEnabled;
#ifdef XML_DTD
@@ -1877,7 +1879,8 @@ XML_ExternalEntityParserCreate(XML_Parser oldParser, const XML_Char *context,
parser->m_externalEntityRefHandlerArg = oldExternalEntityRefHandlerArg;
parser->m_defaultExpandInternalEntities = oldDefaultExpandInternalEntities;
parser->m_ns_triplets = oldns_triplets;
- parser->m_hash_secret_salt = oldhash_secret_salt;
+ parser->m_hash_secret_salt_128 = oldhash_secret_salt_128;
+ parser->m_hash_secret_salt_set = oldhash_secret_salt_set;
parser->m_reparseDeferralEnabled = oldReparseDeferralEnabled;
parser->m_parentParser = oldParser;
#ifdef XML_DTD
@@ -2321,6 +2324,7 @@ XML_SetParamEntityParsing(XML_Parser parser,
#endif
}
+// DEPRECATED since Expat 2.7.6.
int XMLCALL
XML_SetHashSalt(XML_Parser parser, unsigned long hash_salt) {
if (parser == NULL)
@@ -2332,10 +2336,46 @@ XML_SetHashSalt(XML_Parser parser, unsigned long hash_salt) {
/* block after XML_Parse()/XML_ParseBuffer() has been called */
if (parserBusy(rootParser))
return 0;
- rootParser->m_hash_secret_salt = hash_salt;
+
+ rootParser->m_hash_secret_salt_128.k[0] = 0;
+ rootParser->m_hash_secret_salt_128.k[1] = hash_salt;
+
+ if (hash_salt != 0) { // to remain backwards compatible
+ rootParser->m_hash_secret_salt_set = XML_TRUE;
+
+ if (sizeof(unsigned long) == 4)
+ ENTROPY_DEBUG("explicit(4)", rootParser->m_hash_secret_salt_128);
+ else
+ ENTROPY_DEBUG("explicit(8)", rootParser->m_hash_secret_salt_128);
+ }
+
return 1;
}
+XML_Bool XMLCALL
+XML_SetHashSalt16Bytes(XML_Parser parser, const uint8_t entropy[16]) {
+ if (parser == NULL)
+ return XML_FALSE;
+
+ if (entropy == NULL)
+ return XML_FALSE;
+
+ const XML_Parser rootParser = getRootParserOf(parser, NULL);
+ assert(! rootParser->m_parentParser);
+
+ /* block after XML_Parse()/XML_ParseBuffer() has been called */
+ if (parserBusy(rootParser))
+ return XML_FALSE;
+
+ sip_tokey(&(rootParser->m_hash_secret_salt_128), entropy);
+
+ rootParser->m_hash_secret_salt_set = XML_TRUE;
+
+ ENTROPY_DEBUG("explicit(16)", rootParser->m_hash_secret_salt_128);
+
+ return XML_TRUE;
+}
+
enum XML_Status XMLCALL
XML_Parse(XML_Parser parser, const char *s, int len, int isFinal) {
if ((parser == NULL) || (len < 0) || ((s == NULL) && (len != 0))) {
@@ -7837,8 +7877,10 @@ keylen(KEY s) {
static void
copy_salt_to_sipkey(XML_Parser parser, struct sipkey *key) {
- key->k[0] = 0;
- key->k[1] = get_hash_secret_salt(parser);
+ const XML_Parser rootParser = getRootParserOf(parser, NULL);
+ assert(! rootParser->m_parentParser);
+
+ *key = rootParser->m_hash_secret_salt_128;
}
static unsigned long FASTCALL
diff --git a/tests/basic_tests.c b/tests/basic_tests.c
index 023d9ce4..380caf19 100644
--- a/tests/basic_tests.c
+++ b/tests/basic_tests.c
@@ -204,6 +204,30 @@ START_TEST(test_hash_collision) {
END_TEST
#undef COLLIDING_HASH_SALT
+START_TEST(test_hash_salt_setter) {
+ const uint8_t entropy[16] = {'0', '1', '2', '3', '4', '5', '6', '7',
+ '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'};
+ XML_Parser parser = XML_ParserCreate(NULL);
+
+ // NULL parser should be rejected
+ assert_true(XML_SetHashSalt16Bytes(NULL, entropy) == XML_FALSE);
+
+ // NULL entropy should be rejected
+ assert_true(XML_SetHashSalt16Bytes(parser, NULL) == XML_FALSE);
+
+ // Setting should be allowed more than once
+ assert_true(XML_SetHashSalt16Bytes(parser, entropy) == XML_TRUE);
+ assert_true(XML_SetHashSalt16Bytes(parser, entropy) == XML_TRUE);
+
+ // But not after parsing has started
+ assert_true(XML_Parse(parser, "", 0, XML_FALSE /* isFinal */)
+ == XML_STATUS_OK);
+ assert_true(XML_SetHashSalt16Bytes(parser, entropy) == XML_FALSE);
+
+ XML_ParserFree(parser);
+}
+END_TEST
+
/* Regression test for SF bug #491986. */
START_TEST(test_danish_latin1) {
const char *text = "<?xml version='1.0' encoding='iso-8859-1'?>\n"
@@ -6244,6 +6268,7 @@ make_basic_test_case(Suite *s) {
tcase_add_test(tc_basic, test_bom_utf16_le);
tcase_add_test(tc_basic, test_nobom_utf16_le);
tcase_add_test(tc_basic, test_hash_collision);
+ tcase_add_test(tc_basic, test_hash_salt_setter);
tcase_add_test(tc_basic, test_illegal_utf8);
tcase_add_test(tc_basic, test_utf8_auto_align);
tcase_add_test(tc_basic, test_utf16);

View File

@@ -0,0 +1,70 @@
From 3020144133b2d860c44f4eeacf72e5f2843235a3 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Berkay=20Eren=20=C3=9Cr=C3=BCn?= <berkay.ueruen@siemens.com>
Date: Fri, 13 Mar 2026 13:26:45 +0100
Subject: [PATCH 1/7] Make "counting_start_element_handler" count default attrs
(cherry picked from commit 0802a5892030610144b736dec6e2f63e8600fe85)
CVE: CVE-2026-45186
Upstream-Status: Backport [https://github.com/libexpat/libexpat/pull/1216/commits/0802a5892030610144b736dec6e2f63e8600fe85]
Signed-off-by: Theo Gaige <tgaige.opensource@witekio.com>
---
tests/basic_tests.c | 8 ++++----
tests/handlers.c | 2 +-
tests/handlers.h | 1 +
3 files changed, 6 insertions(+), 5 deletions(-)
diff --git a/tests/basic_tests.c b/tests/basic_tests.c
index 023d9ce..d6edb16 100644
--- a/tests/basic_tests.c
+++ b/tests/basic_tests.c
@@ -2439,9 +2439,9 @@ START_TEST(test_attributes) {
{XCS("id"), XCS("one")},
{NULL, NULL}};
AttrInfo tag_info[] = {{XCS("c"), XCS("3")}, {NULL, NULL}};
- ElementInfo info[] = {{XCS("doc"), 3, XCS("id"), NULL},
- {XCS("tag"), 1, NULL, NULL},
- {NULL, 0, NULL, NULL}};
+ ElementInfo info[] = {{XCS("doc"), 3, 0, XCS("id"), NULL},
+ {XCS("tag"), 1, 0, NULL, NULL},
+ {NULL, 0, 0, NULL, NULL}};
info[0].attributes = doc_info;
info[1].attributes = tag_info;
@@ -5496,7 +5496,7 @@ START_TEST(test_deep_nested_attribute_entity) {
(long unsigned)(N_LINES - 1));
AttrInfo doc_info[] = {{XCS("name"), XCS("deepText")}, {NULL, NULL}};
- ElementInfo info[] = {{XCS("foo"), 1, NULL, NULL}, {NULL, 0, NULL, NULL}};
+ ElementInfo info[] = {{XCS("foo"), 1, 0, NULL, NULL}, {NULL, 0, 0, NULL, NULL}};
info[0].attributes = doc_info;
XML_Parser parser = XML_ParserCreate(NULL);
diff --git a/tests/handlers.c b/tests/handlers.c
index e658223..9ff7b35 100644
--- a/tests/handlers.c
+++ b/tests/handlers.c
@@ -137,7 +137,7 @@ counting_start_element_handler(void *userData, const XML_Char *name,
fail("ID does not have the correct name");
return;
}
- for (i = 0; i < info->attr_count; i++) {
+ for (i = 0; i < info->attr_count + info->default_attr_count; i++) {
attr = info->attributes;
while (attr->name != NULL) {
if (! xcstrcmp(atts[0], attr->name))
diff --git a/tests/handlers.h b/tests/handlers.h
index ac4ca94..11d45eb 100644
--- a/tests/handlers.h
+++ b/tests/handlers.h
@@ -88,6 +88,7 @@ typedef struct attrInfo {
typedef struct elementInfo {
const XML_Char *name;
int attr_count;
+ int default_attr_count;
const XML_Char *id_name;
AttrInfo *attributes;
} ElementInfo;
--
2.43.0

View File

@@ -0,0 +1,318 @@
From ba12af3b3ffd98b9e31c3a01a20d392c89aa974e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Berkay=20Eren=20=C3=9Cr=C3=BCn?= <berkay.ueruen@siemens.com>
Date: Fri, 13 Mar 2026 13:27:31 +0100
Subject: [PATCH 2/7] test(attlist): Cover duplicate attribute names
Co-authored-by: Sebastian Pipping <sebastian@pipping.org>
(cherry picked from commit e569f47181c43dca5d262089e541ddf9a9c09927)
CVE: CVE-2026-45186
Upstream-Status: Backport [https://github.com/libexpat/libexpat/pull/1216/commits/e569f47181c43dca5d262089e541ddf9a9c09927]
Signed-off-by: Theo Gaige <tgaige.opensource@witekio.com>
---
tests/basic_tests.c | 282 ++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 282 insertions(+)
diff --git a/tests/basic_tests.c b/tests/basic_tests.c
index d6edb16..907a458 100644
--- a/tests/basic_tests.c
+++ b/tests/basic_tests.c
@@ -2462,6 +2462,279 @@ START_TEST(test_attributes) {
}
END_TEST
+START_TEST(test_duplicate_cdata_attribute) {
+ /*
+ https://www.w3.org/TR/xml/#attdecls
+
+ Test the following statement from the linked specification:
+ When more than one definition is provided for the same attribute of a given
+ element type, the first declaration is binding and later declarations are
+ ignored.
+ */
+
+ const char *text
+ = "<!DOCTYPE doc [\n"
+ " <!ATTLIST doc attribute CDATA 'expected' attribute CDATA 'ignored'>\n"
+ "]>\n"
+ "<doc/>\n";
+ AttrInfo doc_info[] = {{XCS("attribute"), XCS("expected")}, {NULL, NULL}};
+ ElementInfo info[]
+ = {{XCS("doc"), 0, 1, NULL, doc_info}, {NULL, 0, 0, NULL, NULL}};
+
+ XML_Parser parser = XML_ParserCreate(NULL);
+ assert_true(parser != NULL);
+
+ ParserAndElementInfo parserAndElementInfos = {
+ parser,
+ info,
+ };
+
+ XML_SetStartElementHandler(parser, counting_start_element_handler);
+ XML_SetUserData(parser, &parserAndElementInfos);
+
+ if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE)
+ != XML_STATUS_OK)
+ xml_failure(parser);
+
+ XML_ParserFree(parser);
+}
+END_TEST
+
+START_TEST(test_duplicate_id_attribute_1) {
+ /*
+ https://www.w3.org/TR/xml/#attdecls
+
+ Test the following statement from the linked specification:
+ When more than one definition is provided for the same attribute of a given
+ element type, the first declaration is binding and later declarations are
+ ignored.
+ */
+
+ const char *text
+ = "<!DOCTYPE doc [\n"
+ " <!ATTLIST doc identifier CDATA 'expected' identifier ID #REQUIRED>\n"
+ "]>\n"
+ "<doc/>\n";
+ AttrInfo doc_info[] = {{XCS("identifier"), XCS("expected")}, {NULL, NULL}};
+ ElementInfo info[]
+ = {{XCS("doc"), 0, 1, NULL, doc_info}, {NULL, 0, 0, NULL, NULL}};
+
+ XML_Parser parser = XML_ParserCreate(NULL);
+ assert_true(parser != NULL);
+
+ ParserAndElementInfo parserAndElementInfos = {
+ parser,
+ info,
+ };
+
+ XML_SetStartElementHandler(parser, counting_start_element_handler);
+ XML_SetUserData(parser, &parserAndElementInfos);
+
+ if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE)
+ != XML_STATUS_OK)
+ xml_failure(parser);
+
+ XML_ParserFree(parser);
+}
+END_TEST
+
+START_TEST(test_duplicate_id_attribute_2) {
+ /*
+ https://www.w3.org/TR/xml/#attdecls
+
+ Test the following statement from the linked specification:
+ When more than one definition is provided for the same attribute of a given
+ element type, the first declaration is binding and later declarations are
+ ignored.
+ */
+
+ const char *text
+ = "<!DOCTYPE doc [\n"
+ " <!ATTLIST doc identifier ID #REQUIRED identifier CDATA 'unexpected'>\n"
+ "]>\n"
+ "<doc/>\n";
+ AttrInfo doc_info[] = {{NULL, NULL}};
+
+ ElementInfo info[]
+ = {{XCS("doc"), 0, 0, NULL, doc_info}, {NULL, 0, 0, NULL, NULL}};
+
+ XML_Parser parser = XML_ParserCreate(NULL);
+ assert_true(parser != NULL);
+
+ ParserAndElementInfo parserAndElementInfos = {
+ parser,
+ info,
+ };
+
+ XML_SetStartElementHandler(parser, counting_start_element_handler);
+ XML_SetUserData(parser, &parserAndElementInfos);
+
+ if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE)
+ != XML_STATUS_OK)
+ xml_failure(parser);
+
+ XML_ParserFree(parser);
+}
+END_TEST
+
+START_TEST(test_duplicate_cdata_attribute_multiple_attlistdecl) {
+ /*
+ https://www.w3.org/TR/xml/#attdecls
+
+ Test the following statement from the linked specification:
+ When more than one AttlistDecl is provided for a given element type,
+ the contents of all those provided are merged.
+ */
+ const char *text = "<!DOCTYPE doc [\n"
+ " <!ATTLIST doc attribute CDATA 'expected'>\n"
+ " <!ATTLIST doc attribute CDATA 'ignored'>\n"
+ "]>\n"
+ "<doc/>\n";
+ AttrInfo doc_info[] = {{XCS("attribute"), XCS("expected")}, {NULL, NULL}};
+ ElementInfo info[]
+ = {{XCS("doc"), 0, 1, NULL, doc_info}, {NULL, 0, 0, NULL, NULL}};
+
+ XML_Parser parser = XML_ParserCreate(NULL);
+ assert_true(parser != NULL);
+
+ ParserAndElementInfo parserAndElementInfos = {
+ parser,
+ info,
+ };
+
+ XML_SetStartElementHandler(parser, counting_start_element_handler);
+ XML_SetUserData(parser, &parserAndElementInfos);
+
+ if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE)
+ != XML_STATUS_OK)
+ xml_failure(parser);
+
+ XML_ParserFree(parser);
+}
+END_TEST
+
+START_TEST(test_duplicate_cdata_attribute_multiple_attlistdecl_2) {
+ /*
+ https://www.w3.org/TR/xml/#attdecls
+
+ Test the following statement from the linked specification:
+ When more than one AttlistDecl is provided for a given element type,
+ the contents of all those provided are merged.
+ */
+ const char *text = "<!DOCTYPE doc [\n"
+ " <!ATTLIST doc attribute CDATA 'expected_doc'>\n"
+ " <!ATTLIST tag attribute CDATA 'expected_tag'>\n"
+ " <!ATTLIST doc attribute CDATA 'ignored_doc'>\n"
+ "]>\n"
+ "<doc><tag></tag></doc>\n";
+ AttrInfo doc_info[] = {{XCS("attribute"), XCS("expected_doc")}, {NULL, NULL}};
+ AttrInfo tag_info[] = {{XCS("attribute"), XCS("expected_tag")}, {NULL, NULL}};
+ ElementInfo info[] = {{XCS("doc"), 0, 1, NULL, doc_info},
+ {XCS("tag"), 0, 1, NULL, tag_info},
+ {NULL, 0, 0, NULL, NULL}};
+
+ XML_Parser parser = XML_ParserCreate(NULL);
+ assert_true(parser != NULL);
+
+ ParserAndElementInfo parserAndElementInfos = {
+ parser,
+ info,
+ };
+
+ XML_SetStartElementHandler(parser, counting_start_element_handler);
+ XML_SetUserData(parser, &parserAndElementInfos);
+
+ if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE)
+ != XML_STATUS_OK)
+ xml_failure(parser);
+
+ XML_ParserFree(parser);
+}
+END_TEST
+
+START_TEST(test_duplicate_cdata_attribute_multiple_attlistdecl_3) {
+ /*
+ https://www.w3.org/TR/xml/#attdecls
+
+ Test the following statement from the linked specification:
+ When more than one AttlistDecl is provided for a given element type,
+ the contents of all those provided are merged.
+ */
+ const char *text
+ = "<!DOCTYPE doc [\n"
+ " <!ATTLIST doc attribute CDATA 'expected_doc'>\n"
+ " <!ATTLIST tag attribute CDATA 'expected_tag'>\n"
+ " <!ATTLIST doc second_attribute CDATA 'second_expected_doc' attribute CDATA 'ignored_doc'>\n"
+ "]>\n"
+ "<doc><tag></tag></doc>\n";
+ AttrInfo doc_info[] = {{XCS("attribute"), XCS("expected_doc")},
+ {XCS("second_attribute"), XCS("second_expected_doc")},
+ {NULL, NULL}};
+ AttrInfo tag_info[] = {{XCS("attribute"), XCS("expected_tag")}, {NULL, NULL}};
+ ElementInfo info[] = {{XCS("doc"), 0, 2, NULL, doc_info},
+ {XCS("tag"), 0, 1, NULL, tag_info},
+ {NULL, 0, 0, NULL, NULL}};
+
+ XML_Parser parser = XML_ParserCreate(NULL);
+ assert_true(parser != NULL);
+
+ ParserAndElementInfo parserAndElementInfos = {
+ parser,
+ info,
+ };
+
+ XML_SetStartElementHandler(parser, counting_start_element_handler);
+ XML_SetUserData(parser, &parserAndElementInfos);
+
+ if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE)
+ != XML_STATUS_OK)
+ xml_failure(parser);
+
+ XML_ParserFree(parser);
+}
+END_TEST
+
+START_TEST(test_duplicate_id_attribute_multiple_attlistdecl) {
+ /*
+ https://www.w3.org/TR/xml/#attdecls
+
+ Test the following statement from the linked specification:
+ When more than one AttlistDecl is provided for a given element type,
+ the contents of all those provided are merged.
+ */
+ const char *text = "<!DOCTYPE doc [\n"
+ " <!ATTLIST doc identifier ID #REQUIRED>\n"
+ " <!ATTLIST tag identifier CDATA 'identifier_tag'>\n"
+ " <!ATTLIST doc identifier CDATA 'ignored'>\n"
+ "]>\n"
+ "<doc identifier='doc_identity'><tag></tag></doc>\n";
+ AttrInfo doc_info[]
+ = {{XCS("identifier"), XCS("doc_identity")}, {NULL, NULL}};
+ AttrInfo tag_info[]
+ = {{XCS("identifier"), XCS("identifier_tag")}, {NULL, NULL}};
+ ElementInfo info[] = {{XCS("doc"), 1, 0, XCS("identifier"), doc_info},
+ {XCS("tag"), 0, 1, NULL, tag_info},
+ {NULL, 0, 0, NULL, NULL}};
+
+ XML_Parser parser = XML_ParserCreate(NULL);
+ assert_true(parser != NULL);
+
+ ParserAndElementInfo parserAndElementInfos = {
+ parser,
+ info,
+ };
+
+ XML_SetStartElementHandler(parser, counting_start_element_handler);
+ XML_SetUserData(parser, &parserAndElementInfos);
+
+ if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE)
+ != XML_STATUS_OK)
+ xml_failure(parser);
+
+ XML_ParserFree(parser);
+}
+END_TEST
+
/* Test reset works correctly in the middle of processing an internal
* entity. Exercises some obscure code in XML_ParserReset().
*/
@@ -6325,6 +6598,15 @@ make_basic_test_case(Suite *s) {
tcase_add_test__ifdef_xml_dtd(tc_basic, test_empty_foreign_dtd);
tcase_add_test(tc_basic, test_set_base);
tcase_add_test(tc_basic, test_attributes);
+ tcase_add_test(tc_basic, test_duplicate_cdata_attribute);
+ tcase_add_test(tc_basic, test_duplicate_id_attribute_1);
+ tcase_add_test(tc_basic, test_duplicate_id_attribute_2);
+ tcase_add_test(tc_basic, test_duplicate_cdata_attribute_multiple_attlistdecl);
+ tcase_add_test(tc_basic,
+ test_duplicate_cdata_attribute_multiple_attlistdecl_2);
+ tcase_add_test(tc_basic,
+ test_duplicate_cdata_attribute_multiple_attlistdecl_3);
+ tcase_add_test(tc_basic, test_duplicate_id_attribute_multiple_attlistdecl);
tcase_add_test__if_xml_ge(tc_basic, test_reset_in_entity);
tcase_add_test(tc_basic, test_resume_invalid_parse);
tcase_add_test(tc_basic, test_resume_resuspended);
--
2.43.0

View File

@@ -0,0 +1,46 @@
From 852ab610685b45c62017556c38096d941c154963 Mon Sep 17 00:00:00 2001
From: Sebastian Pipping <sebastian@pipping.org>
Date: Mon, 20 Apr 2026 13:44:43 +0200
Subject: [PATCH 3/7] tests: Define .attributes the first time around
(cherry picked from commit 05307d352a5aa858cdda57ec53a53b597b3a4a82)
CVE: CVE-2026-45186
Upstream-Status: Backport [https://github.com/libexpat/libexpat/pull/1216/commits/05307d352a5aa858cdda57ec53a53b597b3a4a82]
Signed-off-by: Theo Gaige <tgaige.opensource@witekio.com>
---
tests/basic_tests.c | 10 ++++------
1 file changed, 4 insertions(+), 6 deletions(-)
diff --git a/tests/basic_tests.c b/tests/basic_tests.c
index 907a458..b0178fc 100644
--- a/tests/basic_tests.c
+++ b/tests/basic_tests.c
@@ -2439,11 +2439,9 @@ START_TEST(test_attributes) {
{XCS("id"), XCS("one")},
{NULL, NULL}};
AttrInfo tag_info[] = {{XCS("c"), XCS("3")}, {NULL, NULL}};
- ElementInfo info[] = {{XCS("doc"), 3, 0, XCS("id"), NULL},
- {XCS("tag"), 1, 0, NULL, NULL},
+ ElementInfo info[] = {{XCS("doc"), 3, 0, XCS("id"), doc_info},
+ {XCS("tag"), 1, 0, NULL, tag_info},
{NULL, 0, 0, NULL, NULL}};
- info[0].attributes = doc_info;
- info[1].attributes = tag_info;
XML_Parser parser = XML_ParserCreate(NULL);
assert_true(parser != NULL);
@@ -5769,8 +5767,8 @@ START_TEST(test_deep_nested_attribute_entity) {
(long unsigned)(N_LINES - 1));
AttrInfo doc_info[] = {{XCS("name"), XCS("deepText")}, {NULL, NULL}};
- ElementInfo info[] = {{XCS("foo"), 1, 0, NULL, NULL}, {NULL, 0, 0, NULL, NULL}};
- info[0].attributes = doc_info;
+ ElementInfo info[]
+ = {{XCS("foo"), 1, 0, NULL, doc_info}, {NULL, 0, 0, NULL, NULL}};
XML_Parser parser = XML_ParserCreate(NULL);
ParserAndElementInfo parserPlusElemenInfo = {parser, info};
--
2.43.0

View File

@@ -0,0 +1,32 @@
From 89c6acdcd919b64014b180fadec46b0d25760832 Mon Sep 17 00:00:00 2001
From: Sebastian Pipping <sebastian@pipping.org>
Date: Mon, 13 Apr 2026 01:34:03 +0200
Subject: [PATCH 4/7] tests: Make counting_start_element_handler enforce
complete attribute lists
(cherry picked from commit 4176aff73840711060913e0ac6aa1168d8ba5c8d)
CVE: CVE-2026-45186
Upstream-Status: Backport [https://github.com/libexpat/libexpat/pull/1216/commits/4176aff73840711060913e0ac6aa1168d8ba5c8d]
Signed-off-by: Theo Gaige <tgaige.opensource@witekio.com>
---
tests/handlers.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/tests/handlers.c b/tests/handlers.c
index 9ff7b35..5e72e8b 100644
--- a/tests/handlers.c
+++ b/tests/handlers.c
@@ -155,6 +155,9 @@ counting_start_element_handler(void *userData, const XML_Char *name,
/* Remember, two entries in atts per attribute (see above) */
atts += 2;
}
+
+ // Self-test that the test case's list of expected attributes is complete
+ assert_true(atts[0] == NULL);
}
void XMLCALL
--
2.43.0

View File

@@ -0,0 +1,32 @@
From d352c83afaa3945c964aba74cb60a00822af96d3 Mon Sep 17 00:00:00 2001
From: Sebastian Pipping <sebastian@pipping.org>
Date: Sun, 8 Mar 2026 22:14:41 +0100
Subject: [PATCH 5/7] lib: Extract a constant for upcoming reuse
(cherry picked from commit fb35f2d2040d114f355bae8a7450942533237530)
CVE: CVE-2026-45186
Upstream-Status: Backport [https://github.com/libexpat/libexpat/pull/1216/commits/fb35f2d2040d114f355bae8a7450942533237530]
Signed-off-by: Theo Gaige <tgaige.opensource@witekio.com>
---
lib/xmlparse.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/lib/xmlparse.c b/lib/xmlparse.c
index 9bc67f3..8d3e8db 100644
--- a/lib/xmlparse.c
+++ b/lib/xmlparse.c
@@ -7708,8 +7708,9 @@ dtdCopy(XML_Parser oldParser, DTD *newDtd, const DTD *oldDtd,
newE->prefix = (PREFIX *)lookup(oldParser, &(newDtd->prefixes),
oldE->prefix->name, 0);
for (i = 0; i < newE->nDefaultAtts; i++) {
+ const XML_Char *const attributeName = oldE->defaultAtts[i].id->name;
newE->defaultAtts[i].id = (ATTRIBUTE_ID *)lookup(
- oldParser, &(newDtd->attributeIds), oldE->defaultAtts[i].id->name, 0);
+ oldParser, &(newDtd->attributeIds), attributeName, 0);
newE->defaultAtts[i].isCdata = oldE->defaultAtts[i].isCdata;
if (oldE->defaultAtts[i].value) {
newE->defaultAtts[i].value
--
2.43.0

View File

@@ -0,0 +1,87 @@
From a2c8ddb3d6f4df7af64e05bed4b3a4edeae33fd0 Mon Sep 17 00:00:00 2001
From: Sebastian Pipping <sebastian@pipping.org>
Date: Sun, 8 Mar 2026 23:05:49 +0100
Subject: [PATCH 6/7] lib: Introduce ELEMENT_TYPE.defaultAttsNames
(cherry picked from commit 7f0f1b9e70d937072d2e9e37ae9edf27784cc080)
CVE: CVE-2026-45186
Upstream-Status: Backport [https://github.com/libexpat/libexpat/pull/1216/commits/7f0f1b9e70d937072d2e9e37ae9edf27784cc080]
Signed-off-by: Theo Gaige <tgaige.opensource@witekio.com>
---
lib/xmlparse.c | 17 +++++++++++++++++
1 file changed, 17 insertions(+)
diff --git a/lib/xmlparse.c b/lib/xmlparse.c
index 8d3e8db..4a29c18 100644
--- a/lib/xmlparse.c
+++ b/lib/xmlparse.c
@@ -388,6 +388,7 @@ typedef struct {
int nDefaultAtts;
int allocDefaultAtts;
DEFAULT_ATTRIBUTE *defaultAtts;
+ HASH_TABLE defaultAttsNames;
} ELEMENT_TYPE;
typedef struct {
@@ -3844,6 +3845,8 @@ storeAtts(XML_Parser parser, const ENCODING *enc, const char *attStr,
sizeof(ELEMENT_TYPE));
if (! elementType)
return XML_ERROR_NO_MEMORY;
+ if (! elementType->defaultAttsNames.parser)
+ hashTableInit(&(elementType->defaultAttsNames), parser);
if (parser->m_ns && ! setElementTypePrefix(parser, elementType))
return XML_ERROR_NO_MEMORY;
}
@@ -7549,6 +7552,7 @@ dtdReset(DTD *p, XML_Parser parser) {
ELEMENT_TYPE *e = (ELEMENT_TYPE *)hashTableIterNext(&iter);
if (! e)
break;
+ hashTableDestroy(&(e->defaultAttsNames));
if (e->allocDefaultAtts != 0)
FREE(parser, e->defaultAtts);
}
@@ -7590,6 +7594,7 @@ dtdDestroy(DTD *p, XML_Bool isDocEntity, XML_Parser parser) {
ELEMENT_TYPE *e = (ELEMENT_TYPE *)hashTableIterNext(&iter);
if (! e)
break;
+ hashTableDestroy(&(e->defaultAttsNames));
if (e->allocDefaultAtts != 0)
FREE(parser, e->defaultAtts);
}
@@ -7683,6 +7688,10 @@ dtdCopy(XML_Parser oldParser, DTD *newDtd, const DTD *oldDtd,
sizeof(ELEMENT_TYPE));
if (! newE)
return 0;
+
+ if (! newE->defaultAttsNames.parser)
+ hashTableInit(&(newE->defaultAttsNames), parser);
+
if (oldE->nDefaultAtts) {
/* Detect and prevent integer overflow.
* The preprocessor guard addresses the "always false" warning
@@ -7719,6 +7728,12 @@ dtdCopy(XML_Parser oldParser, DTD *newDtd, const DTD *oldDtd,
return 0;
} else
newE->defaultAtts[i].value = NULL;
+
+ NAMED *const nameAddedOrFound = (NAMED *)lookup(
+ parser, &(newE->defaultAttsNames), attributeName, sizeof(NAMED));
+ if (! nameAddedOrFound) {
+ return 0;
+ }
}
}
@@ -8458,6 +8473,8 @@ getElementType(XML_Parser parser, const ENCODING *enc, const char *ptr,
sizeof(ELEMENT_TYPE));
if (! ret)
return NULL;
+ if (! ret->defaultAttsNames.parser)
+ hashTableInit(&(ret->defaultAttsNames), getRootParserOf(parser, NULL));
if (ret->name != name)
poolDiscard(&dtd->pool);
else {
--
2.43.0

View File

@@ -0,0 +1,52 @@
From 0e4829f4be500ce687b37ec82f9650b86c8419c7 Mon Sep 17 00:00:00 2001
From: Sebastian Pipping <sebastian@pipping.org>
Date: Sun, 8 Mar 2026 23:06:29 +0100
Subject: [PATCH 7/7] lib: Leverage ELEMENT_TYPE.defaultAttsNames for attribute
collision detection
.. to resolve quadratic runtime behavior
(cherry picked from commit 4cd4eb0683e04cd45a2ffc81a08ca2a2663994b5)
CVE: CVE-2026-45186
Upstream-Status: Backport [https://github.com/libexpat/libexpat/pull/1216/commits/4cd4eb0683e04cd45a2ffc81a08ca2a2663994b5]
Signed-off-by: Theo Gaige <tgaige.opensource@witekio.com>
---
lib/xmlparse.c | 14 ++++++++++----
1 file changed, 10 insertions(+), 4 deletions(-)
diff --git a/lib/xmlparse.c b/lib/xmlparse.c
index 4a29c18..b3f0b73 100644
--- a/lib/xmlparse.c
+++ b/lib/xmlparse.c
@@ -7177,10 +7177,10 @@ defineAttribute(ELEMENT_TYPE *type, ATTRIBUTE_ID *attId, XML_Bool isCdata,
if (value || isId) {
/* The handling of default attributes gets messed up if we have
a default which duplicates a non-default. */
- int i;
- for (i = 0; i < type->nDefaultAtts; i++)
- if (attId == type->defaultAtts[i].id)
- return 1;
+ NAMED *const nameFound
+ = (NAMED *)lookup(parser, &(type->defaultAttsNames), attId->name, 0);
+ if (nameFound)
+ return 1;
if (isId && ! type->idAtt && ! attId->xmlns)
type->idAtt = attId;
}
@@ -7227,6 +7227,12 @@ defineAttribute(ELEMENT_TYPE *type, ATTRIBUTE_ID *attId, XML_Bool isCdata,
att->isCdata = isCdata;
if (! isCdata)
attId->maybeTokenized = XML_TRUE;
+
+ NAMED *const nameAddedOrFound = (NAMED *)lookup(
+ parser, &(type->defaultAttsNames), attId->name, sizeof(NAMED));
+ if (! nameAddedOrFound)
+ return 0;
+
type->nDefaultAtts += 1;
return 1;
}
--
2.43.0

View File

@@ -51,6 +51,16 @@ SRC_URI = "${GITHUB_BASE_URI}/download/R_${VERSION_TAG}/expat-${PV}.tar.bz2 \
file://CVE-2026-32777-02.patch \
file://CVE-2026-32778-01.patch \
file://CVE-2026-32778-02.patch \
file://CVE-2026-41080-01.patch \
file://CVE-2026-41080-02.patch \
file://CVE-2026-41080-03.patch \
file://CVE-2026-45186-01.patch \
file://CVE-2026-45186-02.patch \
file://CVE-2026-45186-03.patch \
file://CVE-2026-45186-04.patch \
file://CVE-2026-45186-05.patch \
file://CVE-2026-45186-06.patch \
file://CVE-2026-45186-07.patch \
"
GITHUB_BASE_URI = "https://github.com/libexpat/libexpat/releases/"

View File

@@ -0,0 +1,113 @@
From 333f164f00fb874e3c670ce70d2a2a3667b9ebf9 Mon Sep 17 00:00:00 2001
From: Philip Withnall <pwithnall@gnome.org>
Date: Sun, 29 Mar 2026 19:10:41 +0100
Subject: [PATCH] gvariant: Fix an off-by-one error in an offset comparison
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This allows a single byte out-of-bounds read off the end of the
(potentially untrusted) byte array backing a `GVariant` when its
being checked for normal form.
I cant see how this could practically be exploited, but its certainly
a security bug as the `GVariant` normal form checking code is supposed
to be robust to malicious inputs.
Spotted by linhlhq as #YWH-PGM9867-190, and fix and reproducer provided
by them too, thanks. Confirmed and turned into a unit test by me.
Fixes: #3915
CVE: CVE-2026-58010
Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/glib/-/commit/aa1cb87d56111ef989811e824f0ac77484cc997f]
Signed-off-by: Philip Withnall <pwithnall@gnome.org>
(cherry picked from commit aa1cb87d56111ef989811e824f0ac77484cc997f)
Signed-off-by: Deepak Rathore <deeratho@cisco.com>
---
glib/gvariant-serialiser.c | 2 +-
glib/tests/gvariant.c | 48 ++++++++++++++++++++++++++++++++++++++
2 files changed, 49 insertions(+), 1 deletion(-)
diff --git a/glib/gvariant-serialiser.c b/glib/gvariant-serialiser.c
index 4e4a73ad1..99a1d3fbd 100644
--- a/glib/gvariant-serialiser.c
+++ b/glib/gvariant-serialiser.c
@@ -1247,7 +1247,7 @@ gvs_tuple_is_normal (GVariantSerialised value)
while (offset & alignment)
{
- if (offset > value.size || value.data[offset] != '\0')
+ if (offset >= value.size || value.data[offset] != '\0')
return FALSE;
offset++;
}
diff --git a/glib/tests/gvariant.c b/glib/tests/gvariant.c
index c8f13360c..55e2cee00 100644
--- a/glib/tests/gvariant.c
+++ b/glib/tests/gvariant.c
@@ -5637,6 +5637,52 @@ test_normal_checking_tuple_offsets5 (void)
g_variant_unref (variant);
}
+/* This is a regression test that looping over the padding bytes in a short
+ * (non-normal) tuple doesnt overflow the input data.
+ *
+ * See https://gitlab.gnome.org/GNOME/glib/-/issues/3915 */
+static void
+test_normal_checking_tuple_offsets6 (void)
+{
+ /*
+ * Type: (ynqiuxthdsog) — 12 members, first member 'y' (byte) has
+ * alignment 0, second 'n' (int16) has alignment 1.
+ * With 1 byte of data (0x28), after reading the first byte member,
+ * offset=1, alignment check for 'n' requires offset to be even,
+ * so the while loop checks value.data[1] — but size is only 1.
+ *
+ * Use heap allocation via GBytes so ASan reports heap-buffer-overflow.
+ */
+ guint8 *heap_data = NULL;
+ GBytes *bytes = NULL;
+ const GVariantType *data_type = G_VARIANT_TYPE ("(ynqiuxthdsog)");
+ GVariant *variant = NULL;
+ GVariant *normal_variant = NULL;
+ GVariant *expected = NULL;
+
+ g_test_bug ("https://gitlab.gnome.org/GNOME/glib/-/issues/3915");
+
+ heap_data = g_malloc (1);
+ heap_data[0] = 0x28;
+ bytes = g_bytes_new_take (heap_data, 1);
+
+ variant = g_variant_new_from_bytes (data_type, bytes, FALSE);
+ g_assert_nonnull (variant);
+
+ g_assert_false (g_variant_is_normal_form (variant));
+
+ normal_variant = g_variant_get_normal_form (variant);
+ g_assert_nonnull (normal_variant);
+
+ expected = g_variant_new_parsed ("(byte 0x28, int16 0, uint16 0, 0, uint32 0, int64 0, uint64 0, handle 0, 0.0, '', objectpath '/', signature '')");
+ g_assert_cmpvariant (expected, variant);
+ g_assert_cmpvariant (expected, normal_variant);
+
+ g_variant_unref (expected);
+ g_variant_unref (normal_variant);
+ g_variant_unref (variant);
+}
+
/* Test that an otherwise-valid serialised GVariant is considered non-normal if
* its offset table entries are too wide.
*
@@ -5890,6 +5936,8 @@ main (int argc, char **argv)
test_normal_checking_tuple_offsets4);
g_test_add_func ("/gvariant/normal-checking/tuple-offsets5",
test_normal_checking_tuple_offsets5);
+ g_test_add_func ("/gvariant/normal-checking/tuple-offsets6",
+ test_normal_checking_tuple_offsets6);
g_test_add_func ("/gvariant/normal-checking/tuple-offsets/minimal-sized",
test_normal_checking_tuple_offsets_minimal_sized);
g_test_add_func ("/gvariant/normal-checking/empty-object-path",
--
2.35.6

View File

@@ -0,0 +1,78 @@
From 371dbccb6b9a9a42b93c4b371214b159e7e94792 Mon Sep 17 00:00:00 2001
From: Philip Withnall <pwithnall@gnome.org>
Date: Sun, 29 Mar 2026 23:46:17 +0100
Subject: [PATCH] gdatetime: Add missing range validation to
g_date_time_add_full()
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Otherwise its possible to create a non-`NULL` but invalid `GDateTime`,
which breaks all kinds of internal assumptions.
Spotted by linhlhq as #YWH-PGM9867-191. Thanks to them for providing a
suggested fix and a test case, which I have adapted and validated.
Fixes: #3917
CVE: CVE-2026-58011
Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/glib/-/commit/ae27363f025ffc131e2d75ee88a5cd8320dffe3b]
Backport Changes:
- Used the target branch's existing literal day bounds because it does
not have upstream's MIN_DAYS/MAX_DAYS helper macros.
Signed-off-by: Philip Withnall <pwithnall@gnome.org>
(cherry picked from commit ae27363f025ffc131e2d75ee88a5cd8320dffe3b)
Signed-off-by: Deepak Rathore <deeratho@cisco.com>
---
glib/gdatetime.c | 4 +++-
glib/tests/gdatetime.c | 18 ++++++++++++++++++
2 files changed, 21 insertions(+), 1 deletion(-)
diff --git a/glib/gdatetime.c b/glib/gdatetime.c
index 2640e3b24..73eea643b 100644
--- a/glib/gdatetime.c
+++ b/glib/gdatetime.c
@@ -2024,7 +2024,9 @@ g_date_time_add_full (GDateTime *datetime,
new->days = full_time / USEC_PER_DAY;
new->usec = full_time % USEC_PER_DAY;
- /* XXX validate */
+ /* Validate its still in the range 0001-01-01 to 9999-12-31 */
+ if (new->days < 1 || new->days > 3652059)
+ g_clear_pointer (&new, g_date_time_unref);
return new;
}
diff --git a/glib/tests/gdatetime.c b/glib/tests/gdatetime.c
index 49390c900..527d61a11 100644
--- a/glib/tests/gdatetime.c
+++ b/glib/tests/gdatetime.c
@@ -1117,6 +1117,24 @@ test_GDateTime_add_full (void)
TEST_ADD_FULL (2010, 8, 25, 22, 45, 0,
0, 1, 6, 1, 25, 0,
2010, 10, 2, 0, 10, 0);
+
+#define TEST_ADD_FULL_ERROR(y,m,d,h,mi,s,ay,am,ad,ah,ami,as) G_STMT_START { \
+ GDateTime *dt; \
+ dt = g_date_time_new_utc (y, m, d, h, mi, s); \
+ g_assert_null (g_date_time_add_full (dt, ay, am, ad, ah, ami, as)); \
+ g_date_time_unref (dt); \
+} G_STMT_END
+
+ TEST_ADD_FULL_ERROR ( 1, 12, 1, 0, 0, 0,
+ -1, 0, 0, 0, 0, 0);
+ TEST_ADD_FULL_ERROR ( 1, 12, 1, 0, 0, 0,
+ 10000, 0, 0, 0, 0, 0);
+ TEST_ADD_FULL_ERROR ( 9999, 12, 1, 0, 0, 0,
+ -10000, 0, 0, 0, 0, 0);
+ TEST_ADD_FULL_ERROR ( 1, 12, 1, 0, 0, 0,
+ 0, 0, 3660001, 0, 0, 0);
+ TEST_ADD_FULL_ERROR ( 9999, 12, 1, 0, 0, 0,
+ 0, 0, -3660001, 0, 0, 0);
}
static void
--
2.35.6

View File

@@ -0,0 +1,228 @@
From 74564fefcec22fc1efc187c36aa1fb8dcfe34454 Mon Sep 17 00:00:00 2001
From: Philip Withnall <pwithnall@gnome.org>
Date: Tue, 31 Mar 2026 16:13:57 +0100
Subject: [PATCH] gregex: Fix case changing substitutions with G_REGEX_RAW
In `G_REGEX_RAW` mode, the input string is treated as a byte array
(basically ASCII) rather than a unichar array. Accordingly, the case
changing code for substitutions needs to operate on bytes with
`G_REGEX_RAW`, rather than operating on unichars.
This fixes a potential buffer overflow when trying to do a case change
on a match of a set of bytes which are a truncated multi-byte UTF-8
encoding at the end of the input buffer.
Spotted by linhlhq as #YWH-PGM9867-193. I adapted their reproducer as
the unit test, but implemented the fix in `gregex.c` independently.
Fixes: #3918
CVE: CVE-2026-58012
Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/glib/-/commit/d337aabd24ee2b8ac2a690dba3ccf26aa70e638f]
Signed-off-by: Philip Withnall <pwithnall@gnome.org>
(cherry picked from commit d337aabd24ee2b8ac2a690dba3ccf26aa70e638f)
Signed-off-by: Deepak Rathore <deeratho@cisco.com>
---
glib/gregex.c | 59 ++++++++++++++++++++++++++++++++++------------
glib/tests/regex.c | 53 +++++++++++++++++++++++++++++++++++++++++
2 files changed, 97 insertions(+), 15 deletions(-)
diff --git a/glib/gregex.c b/glib/gregex.c
index 116ecacbb..496b34bbd 100644
--- a/glib/gregex.c
+++ b/glib/gregex.c
@@ -3147,19 +3147,25 @@ split_replacement (const gchar *replacement,
return g_list_reverse (list);
}
-/* Change the case of c based on change_case. */
-#define CHANGE_CASE(c, change_case) \
+/* Change the case of c based on change_case.
+ * g_ascii_to*() will happily pass through non-ASCII bytes unchanged. */
+#define UTF8_CHANGE_CASE(c, change_case) \
(((change_case) & CHANGE_CASE_LOWER_MASK) ? \
g_unichar_tolower (c) : \
g_unichar_toupper (c))
+#define RAW_CHANGE_CASE(c, change_case) \
+ (((change_case) & CHANGE_CASE_LOWER_MASK) ? \
+ g_ascii_tolower (c) : \
+ g_ascii_toupper (c))
+/* If @text_is_raw is set, @text might not be valid UTF-8 (but will be
+ * nul-terminated). */
static void
string_append (GString *string,
const gchar *text,
+ gboolean text_is_raw,
ChangeCase *change_case)
{
- gunichar c;
-
if (text[0] == '\0')
return;
@@ -3169,22 +3175,44 @@ string_append (GString *string,
}
else if (*change_case & CHANGE_CASE_SINGLE_MASK)
{
- c = g_utf8_get_char (text);
- g_string_append_unichar (string, CHANGE_CASE (c, *change_case));
- g_string_append (string, g_utf8_next_char (text));
+ if (!text_is_raw)
+ {
+ gunichar c = g_utf8_get_char (text);
+ g_string_append_unichar (string, UTF8_CHANGE_CASE (c, *change_case));
+ g_string_append (string, g_utf8_next_char (text));
+ }
+ else
+ {
+ g_string_append_c (string, RAW_CHANGE_CASE (text[0], *change_case));
+ g_string_append (string, text + 1);
+ }
+
*change_case = CHANGE_CASE_NONE;
}
else
{
- while (*text != '\0')
+ if (!text_is_raw)
{
- c = g_utf8_get_char (text);
- g_string_append_unichar (string, CHANGE_CASE (c, *change_case));
- text = g_utf8_next_char (text);
+ while (*text != '\0')
+ {
+ gunichar c = g_utf8_get_char (text);
+ g_string_append_unichar (string, UTF8_CHANGE_CASE (c, *change_case));
+ text = g_utf8_next_char (text);
+ }
+ }
+ else
+ {
+ while (*text != '\0')
+ {
+ char c = *text;
+ g_string_append_c (string, RAW_CHANGE_CASE (c, *change_case));
+ text++;
+ }
}
}
}
+/* @match_info is (nullable) */
static gboolean
interpolate_replacement (const GMatchInfo *match_info,
GString *result,
@@ -3194,6 +3222,7 @@ interpolate_replacement (const GMatchInfo *match_info,
InterpolationData *idata;
gchar *match;
ChangeCase change_case = CHANGE_CASE_NONE;
+ gboolean is_raw = (match_info != NULL && (match_info->regex->orig_compile_opts & G_REGEX_RAW));
for (list = data; list; list = list->next)
{
@@ -3201,10 +3230,10 @@ interpolate_replacement (const GMatchInfo *match_info,
switch (idata->type)
{
case REPL_TYPE_STRING:
- string_append (result, idata->text, &change_case);
+ string_append (result, idata->text, is_raw, &change_case);
break;
case REPL_TYPE_CHARACTER:
- g_string_append_c (result, CHANGE_CASE (idata->c, change_case));
+ g_string_append_c (result, UTF8_CHANGE_CASE (idata->c, change_case));
if (change_case & CHANGE_CASE_SINGLE_MASK)
change_case = CHANGE_CASE_NONE;
break;
@@ -3212,7 +3241,7 @@ interpolate_replacement (const GMatchInfo *match_info,
match = g_match_info_fetch (match_info, idata->num);
if (match)
{
- string_append (result, match, &change_case);
+ string_append (result, match, is_raw, &change_case);
g_free (match);
}
break;
@@ -3220,7 +3249,7 @@ interpolate_replacement (const GMatchInfo *match_info,
match = g_match_info_fetch_named (match_info, idata->text);
if (match)
{
- string_append (result, match, &change_case);
+ string_append (result, match, is_raw, &change_case);
g_free (match);
}
break;
diff --git a/glib/tests/regex.c b/glib/tests/regex.c
index d7a698ec6..bffb52a87 100644
--- a/glib/tests/regex.c
+++ b/glib/tests/regex.c
@@ -2529,6 +2529,58 @@ test_compiled_regex_after_jit_failure (void)
g_regex_unref (regex);
}
+static void
+test_replace_raw_change_case (void)
+{
+ GError *local_error = NULL;
+ GRegex *regex = NULL;
+
+ g_test_bug ("https://gitlab.gnome.org/GNOME/glib/-/issues/3918");
+ g_test_summary ("Test that case changes as part of a replacement are handled correctly in G_REGEX_RAW mode");
+
+ /*
+ * Match a multi-byte sequence in RAW mode. The pattern matches
+ * exactly 2 bytes. The subject contains a 4-byte UTF-8 lead (0xF4)
+ * followed by only one continuation byte, then NUL.
+ *
+ * The matched substring will be "\xf4\x80" (2 bytes, heap-allocated
+ * as 3-byte buffer with NUL). If the code regresses and tries to handle
+ * the replacement as UTF-8 then g_utf8_get_char() would see 0xF4 and try
+ * to read 4 bytes, going 1 byte past the NUL into OOB territory.
+ */
+ regex = g_regex_new ("..", G_REGEX_RAW, 0, &local_error);
+ g_assert_no_error (local_error);
+
+ /*
+ * Build a subject string with truncated UTF-8.
+ * \xF4 = 4-byte UTF-8 lead byte
+ * \x80 = continuation byte
+ * No 3rd/4th continuation bytes — the match is only 2 bytes.
+ *
+ * \U\0 = uppercase the entire match → triggers string_append()
+ * with case change on the 2-byte non-UTF-8 match.
+ */
+ char subject[] = "\xf4\x80";
+ char *result = g_regex_replace (regex, subject, -1, 0, "\\U\\0", 0, &local_error);
+ g_assert_no_error (local_error);
+
+ g_clear_pointer (&result, g_free);
+ g_clear_pointer (&regex, g_regex_unref);
+
+ /*
+ * Second variant: single-char case change \u with \0 backreference.
+ */
+ regex = g_regex_new (".", G_REGEX_RAW, 0, &local_error);
+ g_assert_no_error (local_error);
+
+ char subject2[] = "\xe6\xb0"; /* 3-byte UTF-8 lead, only 2 bytes */
+ result = g_regex_replace (regex, subject2, -1, 0, "\\u\\0", 0, &local_error);
+ g_assert_no_error (local_error);
+
+ g_clear_pointer (&result, g_free);
+ g_clear_pointer (&regex, g_regex_unref);
+}
+
int
main (int argc, char *argv[])
{
@@ -2550,6 +2602,7 @@ main (int argc, char *argv[])
g_test_add_func ("/regex/jit-unsupported-matching", test_jit_unsupported_matching_options);
g_test_add_func ("/regex/unmatched-named-subpattern", test_unmatched_named_subpattern);
g_test_add_func ("/regex/compiled-regex-after-jit-failure", test_compiled_regex_after_jit_failure);
+ g_test_add_func ("/regex/replace-raw-change-case", test_replace_raw_change_case);
/* TEST_NEW(pattern, compile_opts, match_opts) */
TEST_NEW("[A-Z]+", G_REGEX_CASELESS | G_REGEX_EXTENDED | G_REGEX_OPTIMIZE, G_REGEX_MATCH_NOTBOL | G_REGEX_MATCH_PARTIAL);
--
2.35.6

View File

@@ -0,0 +1,140 @@
From cb9d97e1b261d75eb8ea255e0a9f3e846d547af7 Mon Sep 17 00:00:00 2001
From: Philip Withnall <pwithnall@gnome.org>
Date: Tue, 28 Apr 2026 16:45:14 +0100
Subject: [PATCH] giochannel: Fix memcmp() off the end of the buffer with long
terminators
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
If the line terminator is longer than a single byte, and the current
line extends to the end of the buffer, and the buffer (which is a
`GString`) is near a power of two in length (as thats how `GString`s
are allocated) its possible for the `memcmp()` which checks the
terminator to read off the end of the string buffer.
Fix that by checking the terminator length against the last character
before calling `memcmp()`. Add a unit test.
Spotted by linhlhq as #YWH-PGM9867-199. The fix is theirs (validated by
me), and the unit test is adapted from their proof of concept.
Fixes: #3925
CVE: CVE-2026-58013
Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/glib/-/commit/6a2583dec39bfe05553b16d9b7419d6c2a257244]
Backport Changes:
- Added the <stdint.h> include for the regression test because these target
branches do not otherwise expose uint8_t in glib/tests/io-channel.c.
Signed-off-by: Philip Withnall <pwithnall@gnome.org>
(cherry picked from commit 6a2583dec39bfe05553b16d9b7419d6c2a257244)
Signed-off-by: Deepak Rathore <deeratho@cisco.com>
---
glib/giochannel.c | 3 ++-
glib/tests/io-channel.c | 61 +++++++++++++++++++++++++++++++++++++++++
2 files changed, 63 insertions(+), 1 deletion(-)
diff --git a/glib/giochannel.c b/glib/giochannel.c
index 7572c47a2..8d867d0fb 100644
--- a/glib/giochannel.c
+++ b/glib/giochannel.c
@@ -1833,7 +1833,8 @@ read_again:
{
if (channel->line_term)
{
- if (memcmp (channel->line_term, nextchar, line_term_len) == 0)
+ if ((size_t) (lastchar - nextchar) >= line_term_len &&
+ memcmp (channel->line_term, nextchar, line_term_len) == 0)
{
line_length = nextchar - use_buf->str;
got_term_len = line_term_len;
diff --git a/glib/tests/io-channel.c b/glib/tests/io-channel.c
index c5dd01d04..cf81a9f6b 100644
--- a/glib/tests/io-channel.c
+++ b/glib/tests/io-channel.c
@@ -29,6 +29,7 @@
#include <glib.h>
#include <glib/gstdio.h>
+#include <stdint.h>
static void
test_small_writes (void)
@@ -216,6 +217,65 @@ test_read_line_embedded_nuls (void)
g_free (filename);
}
+static void
+test_read_line_long_terminator (void)
+{
+ uint8_t *test_data = NULL;
+ size_t test_data_len = 0;
+ int fd;
+ char *filename = NULL;
+ GIOChannel *channel = NULL;
+ GError *local_error = NULL;
+ char *line = NULL;
+ size_t line_length, terminator_pos;
+ const char *line_term;
+ int line_term_length;
+ GIOStatus status;
+
+ g_test_summary ("Test that reading a line when using a long terminator doesnt over-read the buffer.");
+ g_test_bug ("https://gitlab.gnome.org/GNOME/glib/-/work_items/3925");
+
+ /* Write out a temporary file containing 2047 bytes. This is enough to make it
+ * near the length of the GString buffer when read back in. */
+ fd = g_file_open_tmp ("glib-test-io-channel-XXXXXX", &filename, &local_error);
+ g_assert_no_error (local_error);
+ g_close (g_steal_fd (&fd), NULL);
+
+ test_data_len = 2047;
+ test_data = g_malloc (test_data_len);
+ memset (test_data, 'M', test_data_len);
+ g_file_set_contents (filename, (const gchar *) test_data, test_data_len, &local_error);
+ g_assert_no_error (local_error);
+
+ /* Create the channel. */
+ channel = g_io_channel_new_file (filename, "r", &local_error);
+ g_assert_no_error (local_error);
+
+ /* Use a long line terminator so it could potentially over-read the end of the buffer. */
+ g_io_channel_set_line_term (channel, "DEADBEEF", 8);
+
+ line_term = g_io_channel_get_line_term (channel, &line_term_length);
+ g_assert_cmpstr (line_term, ==, "DEADBEEF");
+ g_assert_cmpint (line_term_length, ==, 8);
+
+ g_io_channel_set_encoding (channel, "UTF-8", &local_error);
+ g_assert_no_error (local_error);
+
+ status = g_io_channel_read_line (channel, &line, &line_length,
+ &terminator_pos, &local_error);
+ g_assert_no_error (local_error);
+ g_assert_cmpint (status, ==, G_IO_STATUS_NORMAL);
+ g_assert_cmpuint (line_length, ==, 2047);
+ g_assert_cmpuint (terminator_pos, ==, 2047);
+ g_assert_cmpmem (line, line_length, test_data, test_data_len);
+
+ g_free (line);
+ g_io_channel_unref (channel);
+ g_free (test_data);
+ g_unlink (filename);
+ g_free (filename);
+}
+
int
main (int argc,
char *argv[])
@@ -224,6 +283,7 @@ main (int argc,
g_test_add_func ("/io-channel/read-write", test_read_write);
g_test_add_func ("/io-channel/read-line/embedded-nuls", test_read_line_embedded_nuls);
+ g_test_add_func ("/io-channel/read-line/long-terminator", test_read_line_long_terminator);
return g_test_run ();
}
--
2.35.6

View File

@@ -0,0 +1,106 @@
From ba0478c206bc04542df774343c6c85f77df49f6e Mon Sep 17 00:00:00 2001
From: Philip Withnall <pwithnall@gnome.org>
Date: Sat, 11 Apr 2026 14:42:57 +0100
Subject: [PATCH] gkeyfile: Fix a one-byte heap under-read with
g_key_file_get_locale_string_list()
If this method was called on a key file key which has an empty value,
`len == 0` and this leads to a one-byte under-read off the start of the
key file buffer.
Spotted by linhlhq as #YWH-PGM9867-200. The suggested fix is theirs, and
the unit test is adapted from their report. I added the fuzzing test.
Fixes: #3930
CVE: CVE-2026-58014
Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/glib/-/commit/94ecb5b44a1cae09f481dd5e693832f129948893]
Signed-off-by: Philip Withnall <pwithnall@gnome.org>
(cherry picked from commit 94ecb5b44a1cae09f481dd5e693832f129948893)
Signed-off-by: Deepak Rathore <deeratho@cisco.com>
---
fuzzing/fuzz_key.c | 9 +++++++++
glib/gkeyfile.c | 2 +-
glib/tests/keyfile.c | 23 +++++++++++++++++++++++
3 files changed, 33 insertions(+), 1 deletion(-)
diff --git a/fuzzing/fuzz_key.c b/fuzzing/fuzz_key.c
index 77cb684..7d00443 100644
--- a/fuzzing/fuzz_key.c
+++ b/fuzzing/fuzz_key.c
@@ -26,11 +26,20 @@ test_parse (const gchar *data,
GKeyFileFlags flags)
{
GKeyFile *key = NULL;
+ char *comment = NULL;
+ char **list = NULL;
key = g_key_file_new ();
g_key_file_load_from_data (key, (const gchar*) data, size, G_KEY_FILE_NONE,
NULL);
+ /* Also try some additional parsing and see if it crashes */
+ comment = g_key_file_get_comment (key, "group", "key", NULL);
+ g_free (comment);
+
+ list = g_key_file_get_locale_string_list (key, "group", "key", "de", NULL, NULL);
+ g_strfreev (list);
+
g_key_file_free (key);
}
diff --git a/glib/gkeyfile.c b/glib/gkeyfile.c
index d08a485..54d77a5 100644
--- a/glib/gkeyfile.c
+++ b/glib/gkeyfile.c
@@ -2421,7 +2421,7 @@ g_key_file_get_locale_string_list (GKeyFile *key_file,
}
len = strlen (value);
- if (value[len - 1] == key_file->list_separator)
+ if (len > 0 && value[len - 1] == key_file->list_separator)
value[len - 1] = '\0';
list_separator[0] = key_file->list_separator;
diff --git a/glib/tests/keyfile.c b/glib/tests/keyfile.c
index bc125c1..289bd2b 100644
--- a/glib/tests/keyfile.c
+++ b/glib/tests/keyfile.c
@@ -850,6 +850,28 @@ test_locale_string_multiple_loads (void)
g_free (old_locale);
}
+static void
+test_locale_string_empty (void)
+{
+ GKeyFile *keyfile = NULL;
+ GError *local_error = NULL;
+ const char *data =
+ "[valid]\n"
+ "key1=\n";
+
+ g_test_summary ("Check that loading an empty translatable string works");
+ g_test_bug ("https://gitlab.gnome.org/GNOME/glib/-/issues/3930");
+
+ keyfile = g_key_file_new ();
+
+ g_key_file_load_from_data (keyfile, data, -1, G_KEY_FILE_NONE, &local_error);
+ g_assert_no_error (local_error);
+
+ check_locale_string_list_value (keyfile, "valid", "key1", NULL, NULL);
+
+ g_key_file_free (keyfile);
+}
+
static void
test_lists (void)
{
@@ -1939,6 +1961,7 @@ main (int argc, char *argv[])
g_test_add_func ("/keyfile/number", test_number);
g_test_add_func ("/keyfile/locale-string", test_locale_string);
g_test_add_func ("/keyfile/locale-string/multiple-loads", test_locale_string_multiple_loads);
+ g_test_add_func ("/keyfile/locale-string/empty", test_locale_string_empty);
g_test_add_func ("/keyfile/lists", test_lists);
g_test_add_func ("/keyfile/lists-set-get", test_lists_set_get);
g_test_add_func ("/keyfile/group-remove", test_group_remove);

View File

@@ -0,0 +1,94 @@
From 38eee3870fbcf6bdf8e6b1281bc7a98d32b68521 Mon Sep 17 00:00:00 2001
From: Philip Withnall <pwithnall@gnome.org>
Date: Thu, 16 Apr 2026 15:27:37 +0100
Subject: [PATCH 1/2] gdbusintrospection: Fix XML parser state handling for
<node> element nesting
The check for whether a `<node>` element in D-Bus introspection XML was
nested correctly was broken. `<node>` elements can only be at the top
level, or nested immediately within another `<node>` element.
Fix the check and add some unit tests for it.
Spotted by linhlhq as #YWH-PGM9867-204. The fix is mine, and the unit test
uses example XML strings adapted from their report.
Signed-off-by: Philip Withnall <pwithnall@gnome.org>
Fixes: #3932
CVE: CVE-2026-58016
Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/glib/-/commit/c9da977c178fbfc0e4caf99f9fdf5dc433d6fcc2]
Signed-off-by: Benjamin Robin <benjamin.robin@bootlin.com>
---
gio/gdbusintrospection.c | 2 +-
gio/tests/gdbus-introspection.c | 33 +++++++++++++++++++++++++++++++++
2 files changed, 34 insertions(+), 1 deletion(-)
diff --git a/gio/gdbusintrospection.c b/gio/gdbusintrospection.c
index c7be334ce2f7..6f722ee6153d 100644
--- a/gio/gdbusintrospection.c
+++ b/gio/gdbusintrospection.c
@@ -1272,7 +1272,7 @@ parser_start_element (GMarkupParseContext *context,
/* ---------------------------------------------------------------------------------------------------- */
if (strcmp (element_name, "node") == 0)
{
- if (!(g_slist_length (stack) >= 1 || strcmp (stack->next->data, "node") != 0))
+ if (stack->next != NULL && strcmp (stack->next->data, "node") != 0)
{
g_set_error_literal (error,
G_MARKUP_ERROR,
diff --git a/gio/tests/gdbus-introspection.c b/gio/tests/gdbus-introspection.c
index 44cb7a96af45..daca313f77e7 100644
--- a/gio/tests/gdbus-introspection.c
+++ b/gio/tests/gdbus-introspection.c
@@ -299,6 +299,38 @@ test_extra_data (void)
g_dbus_node_info_unref (info);
}
+static void
+test_invalid (void)
+{
+ const struct
+ {
+ const char *xml;
+ GMarkupError expected_error_code;
+ }
+ vectors[] =
+ {
+ { "", G_MARKUP_ERROR_EMPTY },
+ { "<node><interface name=\"I\"><method name=\"M\"><node><interface name=\"I2\"></interface></node></method>", G_MARKUP_ERROR_INVALID_CONTENT },
+ { "<node><interface name=\"I\"><signal name=\"S\"><node><interface name=\"I2\"><signal name=\"S2\"></signal></interface></node></signal>", G_MARKUP_ERROR_INVALID_CONTENT },
+ { "<node><interface name=\"I\"><property name=\"P\" type=\"s\" access=\"read\"><node><interface name=\"I2\"></interface></node></property>", G_MARKUP_ERROR_INVALID_CONTENT },
+ { "<node><interface name=\"I\"><method name=\"M\"><arg type=\"\"><node><interface name=\"I2\"><method name=\"M2\"></method></interface></node></arg>", G_MARKUP_ERROR_INVALID_CONTENT },
+ };
+
+ for (size_t i = 0; i < G_N_ELEMENTS (vectors); i++)
+ {
+ GDBusNodeInfo *node;
+ GError *local_error = NULL;
+
+ g_test_message ("Testing parsing of %s gives an error", vectors[i].xml);
+
+ node = g_dbus_node_info_new_for_xml (vectors[i].xml, &local_error);
+ g_assert_error (local_error, G_MARKUP_ERROR, (int) vectors[i].expected_error_code);
+ g_assert_null (node);
+
+ g_clear_error (&local_error);
+ }
+}
+
/* ---------------------------------------------------------------------------------------------------- */
int
@@ -316,6 +348,7 @@ main (int argc,
g_test_add_func ("/gdbus/introspection-generate", test_generate);
g_test_add_func ("/gdbus/introspection-default-direction", test_default_direction);
g_test_add_func ("/gdbus/introspection-extra-data", test_extra_data);
+ g_test_add_func ("/gdbus/introspection/invalid", test_invalid);
ret = session_bus_run ();
--
2.54.0

View File

@@ -0,0 +1,98 @@
From a75052ceeebea434f271b670766acd5416bc83b9 Mon Sep 17 00:00:00 2001
From: Philip Withnall <pwithnall@gnome.org>
Date: Thu, 16 Apr 2026 15:08:10 +0100
Subject: [PATCH 2/2] gdbusintrospection: Add some assertions before array
dereferences
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
The state handling inside the D-Bus introspection XML parser is
complicated, and its possible that these dereferences of the
`len - 1`th element might get reached when the array is empty.
Make failures like that more debuggable by adding an assertion on the
length beforehand.
Signed-off-by: Philip Withnall <pwithnall@gnome.org>
Helps: #3932
CVE: CVE-2026-58016
Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/glib/-/commit/656ad4582cb1d7a7fa8bafe3ce8aec6aa3c17da0]
Signed-off-by: Benjamin Robin <benjamin.robin@bootlin.com>
---
gio/gdbusintrospection.c | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/gio/gdbusintrospection.c b/gio/gdbusintrospection.c
index 6f722ee6153d..ed0d291f99f0 100644
--- a/gio/gdbusintrospection.c
+++ b/gio/gdbusintrospection.c
@@ -1110,6 +1110,7 @@ parse_data_get_annotation (ParseData *data,
{
if (create_new)
g_ptr_array_add (data->annotations, g_new0 (GDBusAnnotationInfo, 1));
+ g_assert (data->annotations->len > 0);
return data->annotations->pdata[data->annotations->len - 1];
}
@@ -1119,6 +1120,7 @@ parse_data_get_arg (ParseData *data,
{
if (create_new)
g_ptr_array_add (data->args, g_new0 (GDBusArgInfo, 1));
+ g_assert (data->args->len > 0);
return data->args->pdata[data->args->len - 1];
}
@@ -1128,6 +1130,7 @@ parse_data_get_out_arg (ParseData *data,
{
if (create_new)
g_ptr_array_add (data->out_args, g_new0 (GDBusArgInfo, 1));
+ g_assert (data->out_args->len > 0);
return data->out_args->pdata[data->out_args->len - 1];
}
@@ -1137,6 +1140,7 @@ parse_data_get_method (ParseData *data,
{
if (create_new)
g_ptr_array_add (data->methods, g_new0 (GDBusMethodInfo, 1));
+ g_assert (data->methods->len > 0);
return data->methods->pdata[data->methods->len - 1];
}
@@ -1146,6 +1150,7 @@ parse_data_get_signal (ParseData *data,
{
if (create_new)
g_ptr_array_add (data->signals, g_new0 (GDBusSignalInfo, 1));
+ g_assert (data->signals->len > 0);
return data->signals->pdata[data->signals->len - 1];
}
@@ -1155,6 +1160,7 @@ parse_data_get_property (ParseData *data,
{
if (create_new)
g_ptr_array_add (data->properties, g_new0 (GDBusPropertyInfo, 1));
+ g_assert (data->properties->len > 0);
return data->properties->pdata[data->properties->len - 1];
}
@@ -1164,6 +1170,7 @@ parse_data_get_interface (ParseData *data,
{
if (create_new)
g_ptr_array_add (data->interfaces, g_new0 (GDBusInterfaceInfo, 1));
+ g_assert (data->interfaces->len > 0);
return data->interfaces->pdata[data->interfaces->len - 1];
}
@@ -1173,6 +1180,7 @@ parse_data_get_node (ParseData *data,
{
if (create_new)
g_ptr_array_add (data->nodes, g_new0 (GDBusNodeInfo, 1));
+ g_assert (data->nodes->len > 0);
return data->nodes->pdata[data->nodes->len - 1];
}
--
2.54.0

View File

@@ -47,6 +47,13 @@ SRC_URI = "${GNOME_MIRROR}/glib/${SHRT_VER}/glib-${PV}.tar.xz \
file://CVE-2026-1489-02.patch \
file://CVE-2026-1489-03.patch \
file://CVE-2026-1489-04.patch \
file://CVE-2026-58016-1.patch \
file://CVE-2026-58016-2.patch \
file://CVE-2026-58010.patch \
file://CVE-2026-58011.patch \
file://CVE-2026-58012.patch \
file://CVE-2026-58013.patch \
file://CVE-2026-58014.patch \
"
SRC_URI:append:class-native = " file://relocate-modules.patch \
file://0001-meson.build-do-not-enable-pidfd-features-on-native-g.patch \

View File

@@ -31,6 +31,7 @@ do_check:append () {
}
inherit nopackages
inherit nospdx
deltask do_stash_locale
deltask do_install
deltask do_populate_sysroot

View File

@@ -1,6 +1,6 @@
SRCBRANCH ?= "release/2.39/master"
PV = "2.39+git"
SRCREV_glibc ?= "ce65d944e38a20cb70af2a48a4b8aa5d8fabe1cc"
SRCREV_glibc ?= "be1e627cd72db31161a3b4ce1c8114674f0895eb"
SRCREV_localedef ?= "cba02c503d7c853a38ccfb83c57e343ca5ecd7e5"
GLIBC_GIT_URI ?= "git://sourceware.org/git/glibc.git;protocol=https"

View File

@@ -18,7 +18,8 @@ easier access for another. 'ASLR bypass itself is not a vulnerability.'"
CVE_STATUS_GROUPS += "CVE_STATUS_STABLE_BACKPORTS"
CVE_STATUS_STABLE_BACKPORTS = "CVE-2024-2961 CVE-2024-33599 CVE-2024-33600 CVE-2024-33601 CVE-2024-33602 CVE-2025-0395 \
CVE-2025-4802 CVE-2025-5702 CVE-2025-8058 CVE-2025-15281 CVE-2026-0861 CVE-2026-0915"
CVE-2025-4802 CVE-2025-5702 CVE-2025-8058 CVE-2025-15281 CVE-2026-0861 CVE-2026-0915 \
CVE-2026-4046 CVE-2026-4437 CVE-2026-4438"
CVE_STATUS_STABLE_BACKPORTS[status] = "cpe-stable-backport: fix available in used git hash"
DEPENDS += "gperf-native bison-native"

View File

@@ -0,0 +1,70 @@
From d8566dd918c612078dfb3ee1a95d7bb6f0656bfe Mon Sep 17 00:00:00 2001
From: Daniel Garcia Moreno <daniel.garcia@suse.com>
Date: Fri, 22 May 2026 12:21:20 +0200
Subject: [PATCH] xmlcatalog: overflow check for large --shell commands
Fix https://gitlab.gnome.org/GNOME/libxml2/-/work_items/1124
CVE: CVE-2026-11979
Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/libxml2/-/commit/c2e233fc1b341685fc99621b2768b503f777a72e]
Backport Changes:
- The commit modifies test/catalogs/test.sh.
- test/catalogs/test.sh does not exist in the libxml2 v2.12.10
source used in Scarthgap and was introduced later version
libxml2 v2.14.0 [1].
- The test changes were omitted; only the required fix in
xmlcatalog.c was backported.
[1] https://gitlab.gnome.org/GNOME/libxml2/-/commit/f06fc933cdaea2ce8e9cea275fdbf4edb85f9837
(cherry picked from commit c2e233fc1b341685fc99621b2768b503f777a72e)
Signed-off-by: Devansh Patel <devanshp@cisco.com>
---
xmlcatalog.c | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
diff --git a/xmlcatalog.c b/xmlcatalog.c
index 588802b41..51569b879 100644
--- a/xmlcatalog.c
+++ b/xmlcatalog.c
@@ -114,6 +114,12 @@ static void usershell(void) {
(*cur != '\n') && (*cur != '\r')) {
if (*cur == 0)
break;
+ /* Do not read beyond the command array capacity */
+ if (i >= (int)sizeof(command) - 2) {
+ printf("Invalid command %s\n", cur);
+ i = 0;
+ break;
+ }
command[i++] = *cur++;
}
command[i] = 0;
@@ -131,6 +137,11 @@ static void usershell(void) {
while ((*cur != '\n') && (*cur != '\r') && (*cur != 0)) {
if (*cur == 0)
break;
+ if (i >= (int)sizeof(arg) - 2) {
+ printf("Invalid arg %s\n", arg);
+ i = 0;
+ break;
+ }
arg[i++] = *cur++;
}
arg[i] = 0;
@@ -143,6 +154,11 @@ static void usershell(void) {
cur = arg;
memset(argv, 0, sizeof(argv));
while (*cur != 0) {
+ if (i >= (int)sizeof(argv) / (int)sizeof(char*)) {
+ printf("Too much arguments\n");
+ break;
+ }
+
while ((*cur == ' ') || (*cur == '\t')) cur++;
if (*cur == '\'') {
cur++;
--
2.35.6

View File

@@ -31,6 +31,7 @@ SRC_URI += "http://www.w3.org/XML/Test/xmlts20130923.tar;subdir=${BP};name=testt
file://CVE-2026-0992-02.patch \
file://CVE-2026-0992-03.patch \
file://CVE-2026-1757.patch \
file://CVE-2026-11979.patch \
"
SRC_URI[archive.sha256sum] = "c3d8c0c34aa39098f66576fe51969db12a5100b956233dc56506f7a8679be995"

View File

@@ -88,8 +88,13 @@ python do_fetch() {
shutil.copy2(db_file, db_tmp_file)
if update_db_file(db_tmp_file, d, database_time) == True:
# Update downloaded correctly, can swap files
shutil.move(db_tmp_file, db_file)
# Update downloaded correctly, we can swap files. To avoid potential
# NFS caching issues, ensure that the destination file has a new inode
# number. We do this in two steps as the downloads directory may be on
# a different filesystem to tmpdir we're working in.
new_file = "%s.new" % (db_file)
shutil.move(db_tmp_file, new_file)
os.rename(new_file, db_file)
else:
# Update failed, do not modify the database
bb.warn("CVE database update failed")

View File

@@ -47,6 +47,7 @@ SRC_URI = "${KERNELORG_MIRROR}/linux/utils/util-linux/v${MAJOR_VERSION}/util-lin
file://CVE-2025-14104-01.patch \
file://CVE-2025-14104-02.patch \
file://CVE-2026-27456.patch \
file://CVE-2026-13595.patch \
"
SRC_URI[sha256sum] = "7b6605e48d1a49f43cc4b4cfc59f313d0dd5402fa40b96810bd572e167dfed0f"

View File

@@ -0,0 +1,157 @@
From faf717ca4ed3b603eb213915fe15c6804c4b92d4 Mon Sep 17 00:00:00 2001
From: Karel Zak <kzak@redhat.com>
Date: Thu, 7 May 2026 12:50:48 +0200
Subject: [PATCH] libblkid: fix use-after-free in nested partition probing
The partitions list stores partitions in a contiguous array grown by
realloc(). When the array is reallocated to a new address, all
existing blkid_partition pointers (tab->parent, ls->next_parent, local
parent variables in nested probers) become dangling.
Fix this by changing the storage from an array of structs to an array
of pointers, where each partition is individually allocated via
calloc(). This makes all blkid_partition pointers stable across
reallocations -- only the pointer array itself may move, which is
harmless since no code caches pointers into the pointer array.
This eliminates the need for callers to re-fetch parent pointers after
every blkid_partlist_add_partition() call.
CVE: CVE-2026-13595
Upstream-Status: Backport [https://github.com/util-linux/util-linux/commit/132d9c8aa15a8efd0a23d8ca7ed8b98f365e84fa]
Backport Changes:
- Scarthgap util-linux 2.39.3 still uses realloc() at this allocation site,
so this backport keeps realloc() and changes only the element size to
sizeof(*ls->parts) instead of adopting upstream's reallocarray() style.
- The commit text was adjusted from reallocarray() to realloc() to match the
target source context.
Reported-by: Thai Duong <thaidn@gmail.com>
Signed-off-by: Karel Zak <kzak@redhat.com>
(cherry picked from commit c0186f14fbdb02f64c8e0ba701ce727ea764ff4c)
(cherry picked from commit 132d9c8aa15a8efd0a23d8ca7ed8b98f365e84fa)
Signed-off-by: Deepak Rathore <deeratho@cisco.com>
---
libblkid/src/partitions/partitions.c | 36 ++++++++++++++++++----------
1 file changed, 22 insertions(+), 14 deletions(-)
diff --git a/libblkid/src/partitions/partitions.c b/libblkid/src/partitions/partitions.c
index 8ebf480f5..6089028a8 100644
--- a/libblkid/src/partitions/partitions.c
+++ b/libblkid/src/partitions/partitions.c
@@ -197,7 +197,7 @@ struct blkid_struct_partlist {
int nparts; /* number of partitions */
int nparts_max; /* max.number of partitions */
- blkid_partition parts; /* array of partitions */
+ blkid_partition *parts; /* array of pointers to partitions */
struct list_head l_tabs; /* list of partition tables */
};
@@ -356,13 +356,16 @@ static void reset_partlist(blkid_partlist ls)
free_parttables(ls);
if (ls->next_partno) {
- /* already initialized - reset */
- int tmp_nparts = ls->nparts_max;
- blkid_partition tmp_parts = ls->parts;
+ /* already initialized - free individually allocated partitions */
+ int i, tmp_nparts_max = ls->nparts_max;
+ blkid_partition *tmp_parts = ls->parts;
+
+ for (i = 0; i < ls->nparts; i++)
+ free(ls->parts[i]);
memset(ls, 0, sizeof(struct blkid_struct_partlist));
- ls->nparts_max = tmp_nparts;
+ ls->nparts_max = tmp_nparts_max;
ls->parts = tmp_parts;
}
@@ -397,6 +400,7 @@ static void partitions_free_data(blkid_probe pr __attribute__((__unused__)),
void *data)
{
blkid_partlist ls = (blkid_partlist) data;
+ int i;
if (!ls)
return;
@@ -404,6 +408,8 @@ static void partitions_free_data(blkid_probe pr __attribute__((__unused__)),
free_parttables(ls);
/* deallocate partitions and partlist */
+ for (i = 0; i < ls->nparts; i++)
+ free(ls->parts[i]);
free(ls->parts);
free(ls);
}
@@ -436,16 +442,18 @@ static blkid_partition new_partition(blkid_partlist ls, blkid_parttable tab)
/* Linux kernel has DISK_MAX_PARTS=256, but it's too much for
* generic Linux machine -- let start with 32 partitions.
*/
- void *tmp = realloc(ls->parts, (ls->nparts_max + 32) *
- sizeof(struct blkid_struct_partition));
+ void *tmp = realloc(ls->parts, (ls->nparts_max + 32) *
+ sizeof(*ls->parts));
if (!tmp)
return NULL;
ls->parts = tmp;
ls->nparts_max += 32;
}
- par = &ls->parts[ls->nparts++];
- memset(par, 0, sizeof(struct blkid_struct_partition));
+ par = calloc(1, sizeof(struct blkid_struct_partition));
+ if (!par)
+ return NULL;
+ ls->parts[ls->nparts++] = par;
ref_parttable(tab);
par->tab = tab;
@@ -849,7 +857,7 @@ int blkid_probe_is_covered_by_pt(blkid_probe pr,
/* check if the partition table fits into the device */
for (i = 0; i < nparts; i++) {
- blkid_partition par = &ls->parts[i];
+ blkid_partition par = ls->parts[i];
if (par->start + par->size > (pr->size >> 9)) {
DBG(LOWPROBE, ul_debug("partition #%d overflows "
@@ -861,7 +869,7 @@ int blkid_probe_is_covered_by_pt(blkid_probe pr,
/* check if the requested area is covered by PT */
for (i = 0; i < nparts; i++) {
- blkid_partition par = &ls->parts[i];
+ blkid_partition par = ls->parts[i];
if (start >= par->start && end <= par->start + par->size) {
rc = 1;
@@ -960,7 +968,7 @@ blkid_partition blkid_partlist_get_partition(blkid_partlist ls, int n)
if (n < 0 || n >= ls->nparts)
return NULL;
- return &ls->parts[n];
+ return ls->parts[n];
}
blkid_partition blkid_partlist_get_partition_by_start(blkid_partlist ls, uint64_t start)
@@ -1072,7 +1080,7 @@ blkid_partition blkid_partlist_devno_to_partition(blkid_partlist ls, dev_t devno
* and an entry in partition table.
*/
for (i = 0; i < ls->nparts; i++) {
- blkid_partition par = &ls->parts[i];
+ blkid_partition par = ls->parts[i];
if (partno != blkid_partition_get_partno(par))
continue;
@@ -1088,7 +1096,7 @@ blkid_partition blkid_partlist_devno_to_partition(blkid_partlist ls, dev_t devno
DBG(LOWPROBE, ul_debug("searching by offset/size"));
for (i = 0; i < ls->nparts; i++) {
- blkid_partition par = &ls->parts[i];
+ blkid_partition par = ls->parts[i];
if ((uint64_t)blkid_partition_get_start(par) == start &&
(uint64_t)blkid_partition_get_size(par) == size)

View File

@@ -74,5 +74,9 @@ SRC_URI = "\
file://0030-CVE-2025-11840.patch \
file://CVE-2025-69644-CVE-2025-69647.patch \
file://CVE-2025-69648.patch \
file://CVE-2025-69649.patch \
file://CVE-2025-69652.patch \
file://CVE-2026-6846.patch \
file://CVE-2025-69645.patch \
"
S = "${WORKDIR}/git"

View File

@@ -0,0 +1,135 @@
From 3fe207e0625a76c8cba932e435762bfb5f544131 Mon Sep 17 00:00:00 2001
From: Alan Modra <amodra@gmail.com>
Date: Sun, 30 Nov 2025 12:51:54 +1030
Subject: [PATCH] PR 33637, abort in byte_get
When DWARF5 support was added to binutils in commit 77145576fadc,
the loop over CUs in process_debug_info set do_types when finding a
DW_UT_type unit, in order to process the signature and type offset
entries. Unfortunately that broke debug_information/debug_info_p
handling, which previously was allocated and initialised for each unit
in .debug_info. debug_info_p was NULL when processing a DWARF4
.debug_types section. After the 77145576fadc change it was possible
for debug_infp_p to be non-NULL but point to zeroed data, in
particular a zeroed offset_size. A zero for offset_size led to the
byte_get_little_endian abort triggered by the fuzzer testcase.
I haven't investigated whether there is any need for a valid
offset_size when processing a non-fuzzed DWARF4 .debug_types section.
Presumably we'd have found that out in the last 6 years if that was
the case. We don't want to change debug_information[] for
.debug_types!
PR 33637
* dwarf.c (process_debug_info): Don't change DO_TYPES flag bit
depending on cu_unit_type. Instead test cu_unit_type along
with DO_TYPES to handle signature and type_offset for a type
unit. Move find_cu_tu_set_v2 call a little later.
CVE: CVE-2025-69645
Upstream-Status: Backport [https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=cdb728d4da6184631989b192f1022c219dea7677]
Note:
Backported patch differs from upstream as commit
1f7e70ddd2c49dd5442b8873dd6ef29b0a10fdc3 is not cherry-picked
just to introduce `do_flags` instead of the separate `do_type`
and `do_loc` booleans for it to apply cleanly.
Signed-off-by: Roland Kovacs <roland.kovacs@est.tech>
---
binutils/dwarf.c | 18 ++++++------------
1 file changed, 6 insertions(+), 12 deletions(-)
diff --git a/binutils/dwarf.c b/binutils/dwarf.c
index 615e051b2bf..836872f1b26 100644
--- a/binutils/dwarf.c
+++ b/binutils/dwarf.c
@@ -3865,8 +3865,6 @@ process_debug_info (struct dwarf_section * section,
SAFE_BYTE_GET_AND_INC (compunit.cu_version, hdrptr, 2, end_cu);
- this_set = find_cu_tu_set_v2 (cu_offset, do_types);
-
if (compunit.cu_version < 5)
{
compunit.cu_unit_type = DW_UT_compile;
@@ -3876,8 +3874,6 @@ process_debug_info (struct dwarf_section * section,
else
{
SAFE_BYTE_GET_AND_INC (compunit.cu_unit_type, hdrptr, 1, end_cu);
- do_types = (compunit.cu_unit_type == DW_UT_type);
-
SAFE_BYTE_GET_AND_INC (compunit.cu_pointer_size, hdrptr, 1, end_cu);
}
@@ -3891,6 +3887,7 @@ process_debug_info (struct dwarf_section * section,
SAFE_BYTE_GET_AND_INC (dwo_id, hdrptr, 8, end_cu);
}
+ this_set = find_cu_tu_set_v2 (cu_offset, do_types);
if (this_set == NULL)
{
abbrev_base = 0;
@@ -3947,8 +3944,6 @@ process_debug_info (struct dwarf_section * section,
SAFE_BYTE_GET_AND_INC (compunit.cu_version, hdrptr, 2, end_cu);
- this_set = find_cu_tu_set_v2 (cu_offset, do_types);
-
if (compunit.cu_version < 5)
{
compunit.cu_unit_type = DW_UT_compile;
@@ -3958,13 +3953,12 @@ process_debug_info (struct dwarf_section * section,
else
{
SAFE_BYTE_GET_AND_INC (compunit.cu_unit_type, hdrptr, 1, end_cu);
- do_types = (compunit.cu_unit_type == DW_UT_type);
-
SAFE_BYTE_GET_AND_INC (compunit.cu_pointer_size, hdrptr, 1, end_cu);
}
SAFE_BYTE_GET_AND_INC (compunit.cu_abbrev_offset, hdrptr, offset_size, end_cu);
+ this_set = find_cu_tu_set_v2 (cu_offset, do_types);
if (this_set == NULL)
{
abbrev_base = 0;
@@ -3996,7 +3990,7 @@ process_debug_info (struct dwarf_section * section,
compunit.cu_pointer_size = offset_size;
}
- if (do_types)
+ if (do_types || compunit.cu_unit_type == DW_UT_type)
{
SAFE_BYTE_GET_AND_INC (signature, hdrptr, 8, end_cu);
SAFE_BYTE_GET_AND_INC (type_offset, hdrptr, offset_size, end_cu);
@@ -4011,7 +4005,7 @@ process_debug_info (struct dwarf_section * section,
if ((do_loc || do_debug_loc || do_debug_ranges || do_debug_info)
&& num_debug_info_entries == 0
&& alloc_num_debug_info_entries > unit
- && ! do_types)
+ && !do_types)
{
free_debug_information (&debug_information[unit]);
memset (&debug_information[unit], 0, sizeof (*debug_information));
@@ -4042,7 +4036,7 @@ process_debug_info (struct dwarf_section * section,
printf (_(" Abbrev Offset: %#" PRIx64 "\n"),
compunit.cu_abbrev_offset);
printf (_(" Pointer Size: %d\n"), compunit.cu_pointer_size);
- if (do_types)
+ if (do_types || compunit.cu_unit_type == DW_UT_type)
{
printf (_(" Signature: %#" PRIx64 "\n"), signature);
printf (_(" Type Offset: %#" PRIx64 "\n"), type_offset);
@@ -4319,7 +4313,7 @@ process_debug_info (struct dwarf_section * section,
we need to process .debug_loc and .debug_ranges sections. */
if ((do_loc || do_debug_loc || do_debug_ranges || do_debug_info)
&& num_debug_info_entries == 0
- && ! do_types)
+ && !do_types)
{
if (num_units > alloc_num_debug_info_entries)
num_debug_info_entries = alloc_num_debug_info_entries;
--
2.34.1

View File

@@ -19,7 +19,7 @@ length field.
(display_debug_ranges): Check display_debug_rnglists_unit_header
return status. Stop output on error.
CVE: CVE-2025-69648
CVE: CVE-2025-69648 CVE-2025-69646
Upstream-Status: Backport [https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=598704a00cbac5e85c2bedd363357b5bf6fcee33]
(cherry picked from commit 598704a00cbac5e85c2bedd363357b5bf6fcee33)

View File

@@ -0,0 +1,44 @@
From 37c8055eed3178a46417045dda63db7af21fd046 Mon Sep 17 00:00:00 2001
From: Alan Modra <amodra@gmail.com>
Date: Mon, 8 Dec 2025 15:58:33 +1030
Subject: [PATCH] PR 33697, fuzzer segfault
PR 33697
* readelf.c (process_relocs): Don't segfault on no sections.
CVE: CVE-2025-69649
Upstream-Status: Backport [https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=66a3492ce68e1ae45b2489bd9a815c39ea5d7f66]
Note:
The difference between this patch on v2.42 and upstream v2.46 is due to
the loop body printing the relocations in-line, which then in commit
8e8d0b63ff15896cc2c228c01f18dfcf2a4a9305 have been factored out to a
separate 'display_relocations()' function.
See: [https://sourceware.org/git/?p=binutils-gdb.git;a=blobdiff;f=binutils/readelf.c;h=fa0de3a7e0d9c2acc18fe047a7019e09f1ce3894;hp=c1006480b7bc3e83dd87fb20d215342375614af9;hb=8e8d0b63ff15896cc2c228c01f18dfcf2a4a9305;hpb=31c21e2c13d85793b525f74aa911eb28700ed89c]
Signed-off-by: Roland Kovacs <roland.kovacs@est.tech>
---
binutils/readelf.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/binutils/readelf.c b/binutils/readelf.c
index 5e4ad6ea6ad..8c1987ffaec 100644
--- a/binutils/readelf.c
+++ b/binutils/readelf.c
@@ -8961,9 +8961,9 @@ process_relocs (Filedata * filedata)
size_t i;
bool found = false;
- for (i = 0, section = filedata->section_headers;
- i < filedata->file_header.e_shnum;
- i++, section++)
+ section = filedata->section_headers;
+ if (section != NULL)
+ for (i = 0; i < filedata->file_header.e_shnum; i++, section++)
{
if ( section->sh_type != SHT_RELA
&& section->sh_type != SHT_REL
--
2.34.1

View File

@@ -0,0 +1,39 @@
From cb4f8fe24cc86a9f050be4cf9c619940f632ea6a Mon Sep 17 00:00:00 2001
From: Alan Modra <amodra@gmail.com>
Date: Mon, 8 Dec 2025 16:04:44 +1030
Subject: [PATCH] PR 33701, abort in byte_get_little_endian
PR 33701
* dwarf.c (process_debug_info): Set debug_info_p NULL when
DEBUG_INFO_UNAVAILABLE.
CVE: CVE-2025-69652
Upstream-Status: Backport [https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=44b79abd0fa12e7947252eb4c6e5d16ed6033e01]
Signed-off-by: Roland Kovacs <roland.kovacs@est.tech>
---
binutils/dwarf.c | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/binutils/dwarf.c b/binutils/dwarf.c
index 615e051b2bf..13b11b46e41 100644
--- a/binutils/dwarf.c
+++ b/binutils/dwarf.c
@@ -4222,9 +4222,11 @@ process_debug_info (struct dwarf_section * section,
break;
}
- debug_info *debug_info_p =
- (debug_information && unit < alloc_num_debug_info_entries)
- ? debug_information + unit : NULL;
+ debug_info *debug_info_p = NULL;
+ if (debug_information
+ && num_debug_info_entries != DEBUG_INFO_UNAVAILABLE
+ && unit < alloc_num_debug_info_entries)
+ debug_info_p = debug_information + unit;
assert (!debug_info_p
|| (debug_info_p->num_loc_offsets
--
2.34.1

View File

@@ -0,0 +1,57 @@
From 2a340616f7e6591f83e85777d1d1f6108c33f5b8 Mon Sep 17 00:00:00 2001
From: Alan Modra <amodra@gmail.com>
Date: Mon, 6 Apr 2026 22:58:22 +0930
Subject: [PATCH] PR 34049 buffer overflow in xcoff_link_add_symbols
The fact that coffcode.h:coff_set_alignment_hook for rs6000 removes
sections can result in target_index > section_count. Thus any array
indexed by target_index must not be sized by section_count.
PR ld/34049
* xcofflink.c (xcoff_link_add_symbols): Size reloc_info array
using max target_index.
CVE: CVE-2026-6846
Upstream-Status: Backport [https://sourceware.org/git/?p=binutils-gdb.git;a=commitdiff;h=7a089e0302382f4d4e077941156e1eaa68d01393]
(cherry picked from commit 7a089e0302382f4d4e077941156e1eaa68d01393)
Signed-off-by: Shubham Pushpkar <spushpka@cisco.com>
---
bfd/xcofflink.c | 15 ++++++++++++++-
1 file changed, 14 insertions(+), 1 deletion(-)
diff --git a/bfd/xcofflink.c b/bfd/xcofflink.c
index 6ef9abcd8..196967ed0 100644
--- a/bfd/xcofflink.c
+++ b/bfd/xcofflink.c
@@ -1300,6 +1300,7 @@ xcoff_link_add_symbols (bfd *abfd, struct bfd_link_info *info)
} *reloc_info = NULL;
bfd_size_type amt;
unsigned short visibility;
+ unsigned int max_target_index;
keep_syms = obj_coff_keep_syms (abfd);
@@ -1363,7 +1364,19 @@ xcoff_link_add_symbols (bfd *abfd, struct bfd_link_info *info)
order by VMA within a given section, so we handle this by
scanning along the relocs as we process the csects. We index
into reloc_info using the section target_index. */
- amt = abfd->section_count + 1;
+ max_target_index = 0;
+ for (o = abfd->section_last; o != NULL; o = o->prev)
+ if (o->target_index != 0)
+ {
+ /* The last section added from the object file will have the
+ highest target_index. See coffgen.c coff_real_object_p and
+ make_a_section_from_file. Sections added by
+ xcoff_link_create_extra_sections will have a zero
+ target_index. */
+ max_target_index = o->target_index;
+ break;
+ }
+ amt = max_target_index + 1;
amt *= sizeof (struct reloc_info_struct);
reloc_info = bfd_zmalloc (amt);
if (reloc_info == NULL)
--
2.35.6

View File

@@ -0,0 +1,62 @@
From b0810dddd6b789ead00c346ead873370710f103e Mon Sep 17 00:00:00 2001
From: Tony Cook <tony@develop-help.com>
Date: Tue, 12 May 2026 14:47:31 +1000
Subject: [PATCH 1/2] perl/perl-security#147: test cases
The suggested case from the ticket and an alternative.
(cherry picked from commit e842efdafe7c51a687a4907e4887988fe6a025ef)
CVE: CVE-2026-8376
Upstream-Status: Backport [https://github.com/Perl/perl5/commit/e842efdafe7c51a687a4907e4887988fe6a025ef]
Signed-off-by: Theo Gaige (Schneider Electric) <tgaige.opensource@witekio.com>
---
t/re/pat_psycho.t | 18 ++++++++++++++++--
1 file changed, 16 insertions(+), 2 deletions(-)
diff --git a/t/re/pat_psycho.t b/t/re/pat_psycho.t
index 336039521d..73a7992372 100644
--- a/t/re/pat_psycho.t
+++ b/t/re/pat_psycho.t
@@ -10,7 +10,7 @@
use strict;
use warnings;
use 5.010;
-
+use Config;
sub run_tests;
@@ -31,7 +31,7 @@ BEGIN {
skip_all('$PERL_SKIP_PSYCHO_TEST set') if $ENV{PERL_SKIP_PSYCHO_TEST};
-plan tests => 15; # Update this when adding/deleting tests.
+plan tests => 17; # Update this when adding/deleting tests.
run_tests() unless caller;
@@ -211,6 +211,20 @@ EOF
}
+
+ SKIP:
+ { # sec #147
+ $Config{ptrsize} == 4
+ or skip "these only fail on x32 and use too much memory on x64", 2;
+ local $::TODO = "This crashes";
+ # original case
+ fresh_perl_like('/\x{10000}{1073741824}/',
+ qr/Regexp out of space/, {}, "ssize_t overflow");
+
+ # synthesized but similar case
+ fresh_perl_like('/(?:\x{10001}\x{10000}){536870912}/',
+ qr/Regexp out of space/, {}, "ssize_t overflow again");
+ }
} # End of sub run_tests
1;
--
2.43.0

View File

@@ -0,0 +1,49 @@
From 3cc827ca6bdb7b7cfbebe30286db57b7edae0e65 Mon Sep 17 00:00:00 2001
From: Tony Cook <tony@develop-help.com>
Date: Tue, 12 May 2026 14:51:00 +1000
Subject: [PATCH 2/2] perl/perl-security#147: test against the actual character
lengths
(cherry picked from commit 5e7f119eb2bb1181be908701f22bf7068e722f1c)
CVE: CVE-2026-8376
Upstream-Status: Backport [https://github.com/Perl/perl5/commit/5e7f119eb2bb1181be908701f22bf7068e722f1c]
Signed-off-by: Theo Gaige (Schneider Electric) <tgaige.opensource@witekio.com>
---
regcomp_study.c | 7 +++++++
t/re/pat_psycho.t | 1 -
2 files changed, 7 insertions(+), 1 deletion(-)
diff --git a/regcomp_study.c b/regcomp_study.c
index db7ab3a409..9248e1de2b 100644
--- a/regcomp_study.c
+++ b/regcomp_study.c
@@ -2862,6 +2862,13 @@ Perl_study_chunk(pTHX_
(U8 *) SvEND(data->last_found))
- (U8*)s;
l -= old;
+
+ if (l > 0 &&
+ (mincount >= SSize_t_MAX / (SSize_t)l
+ || old > SSize_t_MAX - mincount * (SSize_t)l)) {
+ FAIL("Regexp out of space");
+ }
+
/* Get the added string: */
last_str = newSVpvn_utf8(s + old, l, UTF);
last_chrs = UTF ? utf8_length((U8*)(s + old),
diff --git a/t/re/pat_psycho.t b/t/re/pat_psycho.t
index 73a7992372..9fd764fd5e 100644
--- a/t/re/pat_psycho.t
+++ b/t/re/pat_psycho.t
@@ -216,7 +216,6 @@ EOF
{ # sec #147
$Config{ptrsize} == 4
or skip "these only fail on x32 and use too much memory on x64", 2;
- local $::TODO = "This crashes";
# original case
fresh_perl_like('/\x{10000}{1073741824}/',
qr/Regexp out of space/, {}, "ssize_t overflow");
--
2.43.0

View File

@@ -18,6 +18,8 @@ SRC_URI = "https://www.cpan.org/src/5.0/perl-${PV}.tar.gz;name=perl \
file://determinism.patch \
file://0001-cpan-Sys-Syslog-Makefile.PL-Fix-_PATH_LOG-for-determ.patch \
file://0001-Fix-intermittent-failure-of-test-t-op-sigsystem.t.patch \
file://CVE-2026-8376-01.patch \
file://CVE-2026-8376-02.patch \
"
SRC_URI:append:class-native = " \
file://perl-configpm-switch.patch \

View File

@@ -65,4 +65,6 @@ FILES:${PN}-dbg += " \
${PYTHON_SITEPACKAGES_DIR}/${SRCNAME}/hazmat/bindings/.debug \
"
CVE_PRODUCT = "cryptography.io:cryptography pyca:cryptography"
BBCLASSEXTEND = "native nativesdk"

View File

@@ -15,4 +15,6 @@ RDEPENDS:${PN}:class-target += "\
python3-shell \
"
CVE_PRODUCT = "dabeaz:ply"
BBCLASSEXTEND = "native nativesdk"

View File

@@ -1,3 +1,4 @@
inherit pypi setuptools3
require python-pyasn1.inc
CVE_PRODUCT = "pyasn1:pyasn1"

View File

@@ -0,0 +1,194 @@
From d54dff79a9568c25551092711c7ebc28422006a4 Mon Sep 17 00:00:00 2001
From: "Jason R. Coombs" <jaraco@jaraco.com>
Date: Sat, 27 Jun 2026 10:46:34 -0400
Subject: [PATCH] Normalize Unicode form when matching MANIFEST.in patterns
FileList matched MANIFEST.in patterns against on-disk names byte-for-byte
with no Unicode normalization. On macOS APFS/HFS+, a file stored NFD and a
pattern authored NFC denote the same file but differ byte-for-byte, so an
exclude/global-exclude/recursive-exclude/prune rule could silently fail to
drop a non-ASCII-named file, publishing it in the sdist despite the rule.
Normalize both the pattern and the candidate path to NFC before matching,
via a new unicode_utils.normalize() helper and a _NormalizedMatcher wrapper
around the compiled pattern in translate_pattern.
Fixes GHSA-h35f-9h28-mq5c.
CVE: CVE-2026-59890
Upstream-Status: Backport [https://github.com/pypa/setuptools/commit/dd9f436a36486b4cb8a4c70a2321548b0be09b8f]
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
(cherry picked from commit dd9f436a36486b4cb8a4c70a2321548b0be09b8f)
Signed-off-by: Darsh Kelaiya <dkelaiya@cisco.com>
---
newsfragments/+ghsa-h35f-9h28-mq5c.bugfix.rst | 7 +++
setuptools/command/egg_info.py | 28 +++++++++++-
setuptools/tests/test_manifest.py | 45 +++++++++++++++++++
setuptools/unicode_utils.py | 14 ++++++
4 files changed, 93 insertions(+), 1 deletion(-)
create mode 100644 newsfragments/+ghsa-h35f-9h28-mq5c.bugfix.rst
diff --git a/newsfragments/+ghsa-h35f-9h28-mq5c.bugfix.rst b/newsfragments/+ghsa-h35f-9h28-mq5c.bugfix.rst
new file mode 100644
index 000000000..42d6c4cfe
--- /dev/null
+++ b/newsfragments/+ghsa-h35f-9h28-mq5c.bugfix.rst
@@ -0,0 +1,7 @@
+``MANIFEST.in`` matching (via ``FileList``) is now insensitive to Unicode
+normalization form. A pattern authored in one form (e.g. NFC, as typically
+saved by editors) now matches a file whose name is stored on disk in another
+(e.g. NFD, as produced by macOS APFS/HFS+). Previously an ``exclude``,
+``global-exclude``, ``recursive-exclude``, or ``prune`` rule could silently
+fail to drop a non-ASCII-named file from the source distribution, publishing
+it despite the exclusion -- see GHSA-h35f-9h28-mq5c.
diff --git a/setuptools/command/egg_info.py b/setuptools/command/egg_info.py
index 62d2feea9..e858708ee 100644
--- a/setuptools/command/egg_info.py
+++ b/setuptools/command/egg_info.py
@@ -34,6 +34,27 @@ from ..warnings import SetuptoolsDeprecationWarning
PY_MAJOR = '{}.{}'.format(*sys.version_info)
+class _NormalizedMatcher:
+ """
+ Wrap a compiled pattern so that matching is insensitive to Unicode
+ normalization form.
+
+ File names walked from disk (NFD on macOS APFS/HFS+) and patterns from
+ ``MANIFEST.in`` (typically NFC) can denote the same file while differing
+ byte-for-byte. Normalizing both sides before matching keeps an exclusion
+ (or inclusion) from silently failing. See GHSA-h35f-9h28-mq5c.
+ """
+
+ def __init__(self, pattern: re.Pattern) -> None:
+ self._pattern = pattern
+
+ def match(self, path):
+ return self._pattern.match(unicode_utils.normalize(path))
+
+ def search(self, path):
+ return self._pattern.search(unicode_utils.normalize(path))
+
+
def translate_pattern(glob): # noqa: C901 # is too complex (14) # FIXME
"""
Translate a file path glob like '*.txt' in to a regular expression.
@@ -43,6 +64,11 @@ def translate_pattern(glob): # noqa: C901 # is too complex (14) # FIXME
"""
pat = ''
+ # Normalize the pattern so it matches paths regardless of the Unicode
+ # normalization form used on disk (GHSA-h35f-9h28-mq5c). Candidate paths
+ # are normalized to the same form by ``_NormalizedMatcher``.
+ glob = unicode_utils.normalize(glob)
+
# This will split on '/' within [character classes]. This is deliberate.
chunks = glob.split(os.path.sep)
@@ -114,7 +140,7 @@ def translate_pattern(glob): # noqa: C901 # is too complex (14) # FIXME
pat += sep
pat += r'\Z'
- return re.compile(pat, flags=re.MULTILINE | re.DOTALL)
+ return _NormalizedMatcher(re.compile(pat, flags=re.MULTILINE | re.DOTALL))
class InfoCommon:
diff --git a/setuptools/tests/test_manifest.py b/setuptools/tests/test_manifest.py
index fbd21b197..1a7441fc3 100644
--- a/setuptools/tests/test_manifest.py
+++ b/setuptools/tests/test_manifest.py
@@ -10,6 +10,7 @@ import io
import logging
from distutils import log
from distutils.errors import DistutilsTemplateError
+import unicodedata
from setuptools.command.egg_info import FileList, egg_info, translate_pattern
from setuptools.dist import Distribution
@@ -158,6 +159,21 @@ def test_translated_pattern_mismatch(pattern_mismatch):
assert not translate_pattern(pattern).match(target)
+def test_translate_pattern_unicode_normalization():
+ """
+ Matching is insensitive to Unicode normalization form: a pattern authored
+ in one form matches a path stored on disk in another (and vice versa), so
+ that an exclusion cannot be bypassed by an NFC/NFD mismatch.
+
+ Regression test for GHSA-h35f-9h28-mq5c.
+ """
+ nfc = unicodedata.normalize('NFC', 'café.txt') # 'café.txt' composed
+ nfd = unicodedata.normalize('NFD', 'café.txt') # 'café.txt' decomposed
+ assert nfc != nfd # the two byte forms genuinely differ
+ assert translate_pattern(nfc).match(nfd)
+ assert translate_pattern(nfd).match(nfc)
+
+
class TempDirTestCase:
def setup_method(self, method):
self.temp_dir = tempfile.mkdtemp()
@@ -331,6 +347,35 @@ class TestManifestTest(TempDirTestCase):
files = default_files | set([ml('app/a.txt'), ml('app/b.txt'), ml('app/c.rst')])
assert files == self.get_files()
+ def test_global_exclude_unicode_normalization(self):
+ """
+ A ``global-exclude`` authored NFC must drop a file whose on-disk name
+ is NFD: on macOS APFS/HFS+ the two are the same file, and even on
+ case/normalization-exact filesystems the decomposed name can be
+ committed and reach the build. Otherwise the file is published in the
+ sdist despite the exclusion.
+
+ Regression test for GHSA-h35f-9h28-mq5c.
+ """
+ nfc_name = unicodedata.normalize('NFC', 'café.txt')
+ nfd_name = unicodedata.normalize('NFD', 'café.txt')
+ assert nfc_name != nfd_name
+ # write the file under its decomposed (NFD) name ...
+ touch(os.path.join(self.temp_dir, 'app', nfd_name))
+ # ... and exclude it with the composed (NFC) form.
+ self.make_manifest(
+ f"""
+ global-include *.txt
+ global-exclude {nfc_name}
+ """
+ )
+ leaked = {
+ f
+ for f in self.get_files()
+ if unicodedata.normalize('NFC', os.path.basename(f)) == nfc_name
+ }
+ assert not leaked, f"excluded file leaked into manifest: {leaked}"
+
class TestFileListTest(TempDirTestCase):
"""
diff --git a/setuptools/unicode_utils.py b/setuptools/unicode_utils.py
index d43dcc11f..311d4075a 100644
--- a/setuptools/unicode_utils.py
+++ b/setuptools/unicode_utils.py
@@ -15,6 +15,20 @@ def decompose(path):
return path
+def normalize(text):
+ """
+ Return *text* in a canonical Unicode form (NFC) so that names which are
+ visually identical but encoded differently compare equal.
+
+ macOS APFS/HFS+ store file names in decomposed form (NFD), while patterns
+ in ``MANIFEST.in`` are typically authored composed (NFC). The two denote
+ the same file but differ byte-for-byte, so matching them directly lets an
+ exclusion silently fail. Normalizing both the walked path and the pattern
+ to a single form before matching avoids that (GHSA-h35f-9h28-mq5c).
+ """
+ return unicodedata.normalize('NFC', text) if isinstance(text, str) else text
+
+
def filesys_decode(path):
"""
Ensure that the given path is decoded,
--
2.44.4

View File

@@ -15,6 +15,7 @@ SRC_URI += " \
file://CVE-2024-6345.patch \
file://CVE-2025-47273-pre1.patch \
file://CVE-2025-47273.patch \
file://CVE-2026-59890.patch \
"
SRC_URI[sha256sum] = "5c0806c7d9af348e6dd3777b4f4dbb42c7ad85b190104837488eab9a7c945cf8"

View File

@@ -0,0 +1,163 @@
From d5517b0ab50030a8f389757b3ba648633c504cbc Mon Sep 17 00:00:00 2001
From: Illia Volochii <illia.volochii@gmail.com>
Date: Thu, 7 May 2026 18:40:31 +0300
Subject: [PATCH] Merge commit from fork
* Remove sensitive headers in proxy pools too
* Add a changelog entry
* Check retries history in tests
CVE: CVE-2026-44431
Upstream-Status: Backport [https://github.com/urllib3/urllib3/commit/5ec0de499b9166ca71c65ab04f2a7e4eb0d66fcc]
Co-authored-by: Copilot <copilot@github.com>
---------
Co-authored-by: Copilot <copilot@github.com>
(cherry picked from commit 5ec0de499b9166ca71c65ab04f2a7e4eb0d66fcc)
Signed-off-by: Sudhir Dumbhare <sudumbha@cisco.com>
---
changelog/GHSA-qccp-gfcp-xxvc.bugfix.rst | 3 +
dummyserver/asgi_proxy.py | 1 +
src/urllib3/connectionpool.py | 12 ++++
.../test_proxy_poolmanager.py | 72 +++++++++++++++++++
4 files changed, 88 insertions(+)
create mode 100644 changelog/GHSA-qccp-gfcp-xxvc.bugfix.rst
diff --git a/changelog/GHSA-qccp-gfcp-xxvc.bugfix.rst b/changelog/GHSA-qccp-gfcp-xxvc.bugfix.rst
new file mode 100644
index 00000000..bac765ea
--- /dev/null
+++ b/changelog/GHSA-qccp-gfcp-xxvc.bugfix.rst
@@ -0,0 +1,3 @@
+Fixed HTTP pools created using ``ProxyManager.connection_from_url`` to strip
+sensitive headers specified in ``Retry.remove_headers_on_redirect`` when
+redirecting to a different host.
diff --git a/dummyserver/asgi_proxy.py b/dummyserver/asgi_proxy.py
index 107c5e0a..094807cd 100755
--- a/dummyserver/asgi_proxy.py
+++ b/dummyserver/asgi_proxy.py
@@ -52,6 +52,7 @@ class ProxyApp:
client_response = await client.request(
method=scope["method"],
url=scope["path"],
+ params=scope["query_string"].decode(),
headers=list(scope["headers"]),
content=await _read_body(receive),
)
diff --git a/src/urllib3/connectionpool.py b/src/urllib3/connectionpool.py
index a2c3cf60..f64ee2f8 100644
--- a/src/urllib3/connectionpool.py
+++ b/src/urllib3/connectionpool.py
@@ -898,6 +898,18 @@ class HTTPConnectionPool(ConnectionPool, RequestMethods):
body = None
headers = HTTPHeaderDict(headers)._prepare_for_method_change()
+ # Strip headers marked as unsafe to forward to the redirected location.
+ # Check remove_headers_on_redirect to avoid a potential network call within
+ # self.is_same_host() which may use socket.gethostbyname() in the future.
+ if retries.remove_headers_on_redirect and not self.is_same_host(
+ redirect_location
+ ):
+ new_headers = headers.copy() # type: ignore[union-attr]
+ for header in headers:
+ if header.lower() in retries.remove_headers_on_redirect:
+ new_headers.pop(header, None)
+ headers = new_headers
+
try:
retries = retries.increment(method, url, response=response, _pool=self)
except MaxRetryError:
diff --git a/test/with_dummyserver/test_proxy_poolmanager.py b/test/with_dummyserver/test_proxy_poolmanager.py
index 397181a9..a0b11726 100644
--- a/test/with_dummyserver/test_proxy_poolmanager.py
+++ b/test/with_dummyserver/test_proxy_poolmanager.py
@@ -37,6 +37,7 @@ from urllib3.exceptions import (
SSLError,
)
from urllib3.poolmanager import ProxyManager, proxy_from_url
+from urllib3.util.retry import RequestHistory
from urllib3.util.ssl_ import create_urllib3_context
from urllib3.util.timeout import Timeout
@@ -299,6 +300,77 @@ class TestHTTPProxyManager(HypercornDummyProxyTestCase):
assert r._pool is not None
assert r._pool.host != self.http_host_alt
+ _sensitive_headers = {
+ "Authorization": "foo",
+ "Proxy-Authorization": "bar",
+ "Cookie": "foo=bar",
+ }
+
+ @pytest.mark.parametrize(
+ "sensitive_headers",
+ (_sensitive_headers, {k.lower(): v for k, v in _sensitive_headers.items()}),
+ ids=("capitalized", "lowercase"),
+ )
+ def test_cross_host_redirect_remove_headers_via_proxy_manager(
+ self, sensitive_headers: dict[str, str]
+ ) -> None:
+ headers_url = f"{self.http_url_alt}/headers"
+ initial_url = f"{self.http_url}/redirect?target={headers_url}"
+ with proxy_from_url(self.proxy_url) as proxy_mgr:
+ r = proxy_mgr.request(
+ "GET", initial_url, headers=sensitive_headers, retries=1
+ )
+ assert r.status == 200
+ assert r.retries is not None
+ assert r.retries.history == (
+ RequestHistory(
+ method="GET",
+ url=initial_url,
+ error=None,
+ status=303,
+ redirect_location=headers_url,
+ ),
+ )
+ data = r.json()
+ for header in sensitive_headers:
+ assert header not in data
+
+ @pytest.mark.parametrize(
+ "sensitive_headers",
+ (_sensitive_headers, {k.lower(): v for k, v in _sensitive_headers.items()}),
+ ids=("capitalized", "lowercase"),
+ )
+ def test_cross_host_redirect_remove_headers_via_pool(
+ self, sensitive_headers: dict[str, str]
+ ) -> None:
+ headers_url = f"{self.http_url_alt}/headers"
+ initial_url = f"{self.http_url}/redirect?target={headers_url}"
+ with proxy_from_url(self.proxy_url) as proxy_mgr:
+ pool = proxy_mgr.connection_from_url(self.http_url)
+ r = pool.urlopen(
+ "GET",
+ initial_url,
+ headers=sensitive_headers,
+ retries=1,
+ redirect=True,
+ assert_same_host=False,
+ preload_content=True,
+ )
+ assert r.status == 200
+ assert r.retries is not None
+ assert r.retries.history == (
+ RequestHistory(
+ method="GET",
+ url=initial_url,
+ error=None,
+ status=303,
+ redirect_location=headers_url,
+ ),
+ )
+ data = r.json()
+ for header in sensitive_headers:
+ assert header not in data
+
def test_cross_protocol_redirect(self) -> None:
with proxy_from_url(self.proxy_url, ca_certs=DEFAULT_CA) as http:
cross_protocol_location = f"{self.https_url}/echo?a=b"

View File

@@ -12,6 +12,7 @@ SRC_URI += " \
file://CVE-2025-66418.patch \
file://CVE-2025-66471.patch \
file://CVE-2026-21441.patch \
file://CVE-2026-44431.patch \
"
RDEPENDS:${PN} += "\

View File

@@ -0,0 +1,66 @@
From 91a9bd79cdbab8f8518c4a5e669b3f19680a2f31 Mon Sep 17 00:00:00 2001
From: Stan Ulbrych <stan@python.org>
Date: Tue, 23 Jun 2026 14:31:38 +0100
Subject: [PATCH] gh-151558: Fix symlink escape via `tarfile`
hardlink-extraction fallback (GH-151559)
CVE: CVE-2026-11940
Upstream-Status: Backport [https://github.com/python/cpython/commit/27dd970bf6b17ebca7c8ed486a40ab043ed7af8f]
Signed-off-by: Benjamin Robin <benjamin.robin@bootlin.com>
---
Lib/tarfile.py | 3 +++
Lib/test/test_tarfile.py | 24 ++++++++++++++++++++++++
2 files changed, 27 insertions(+)
diff --git a/Lib/tarfile.py b/Lib/tarfile.py
index 59d3f6e5cce1..83226e907e4b 100755
--- a/Lib/tarfile.py
+++ b/Lib/tarfile.py
@@ -2650,6 +2650,9 @@ def makelink_with_filter(self, tarinfo, targetpath,
"makelink_with_filter: if filter_function is not None, "
+ "extraction_root must also not be None")
try:
+ filter_function(
+ unfiltered.replace(name=tarinfo.name, deep=False),
+ extraction_root)
filtered = filter_function(unfiltered, extraction_root)
except _FILTER_ERRORS as cause:
raise LinkFallbackError(tarinfo, unfiltered.name) from cause
diff --git a/Lib/test/test_tarfile.py b/Lib/test/test_tarfile.py
index 759fa03ead70..29719d95b6c1 100644
--- a/Lib/test/test_tarfile.py
+++ b/Lib/test/test_tarfile.py
@@ -4080,6 +4080,30 @@ def test_sneaky_hardlink_fallback(self):
self.expect_file("boom", symlink_to='../../link_here')
self.expect_file("c", symlink_to='b')
+ @symlink_test
+ def test_sneaky_hardlink_fallback_deep(self):
+ # (CVE-2026-11940)
+ with ArchiveMaker() as arc:
+ arc.add("a/b/s", symlink_to=os.path.join("..", "escape"))
+ arc.add("s", hardlink_to=os.path.join("a", "b", "s"))
+
+ with self.check_context(arc.open(), 'data'):
+ e = self.expect_exception(
+ tarfile.LinkFallbackError,
+ "link 's' would be extracted as a copy of "
+ + "'a/b/s', which was rejected")
+ self.assertIsInstance(e.__cause__,
+ tarfile.LinkOutsideDestinationError)
+
+ for filter in 'tar', 'fully_trusted':
+ with self.subTest(filter), self.check_context(arc.open(), filter):
+ if not os_helper.can_symlink():
+ self.expect_file("a/")
+ self.expect_file("a/b/")
+ else:
+ self.expect_file("a/b/s", symlink_to=os.path.join('..', 'escape'))
+ self.expect_file("s", symlink_to=os.path.join('..', 'escape'))
+
@symlink_test
def test_exfiltration_via_symlink(self):
# (CVE-2025-4138)
--
2.54.0

View File

@@ -0,0 +1,60 @@
From a83ebdb495a9cbd28a03675acdeda235fade90b3 Mon Sep 17 00:00:00 2001
From: Petr Viktorin <encukou@gmail.com>
Date: Tue, 23 Jun 2026 15:13:30 +0200
Subject: [PATCH] gh-151981: Make tarfile._Stream.seek break at EOF (GH-151982)
Co-authored-by: Stan Ulbrych <stan@python.org>
CVE: CVE-2026-11972
Upstream-Status: Backport [https://github.com/python/cpython/commit/f50bf13566189c8d0ce5a814f33eff3d89951896]
Signed-off-by: Benjamin Robin <benjamin.robin@bootlin.com>
---
Lib/tarfile.py | 4 +++-
Lib/test/test_tarfile.py | 16 ++++++++++++++++
2 files changed, 19 insertions(+), 1 deletion(-)
diff --git a/Lib/tarfile.py b/Lib/tarfile.py
index 83226e907e4b..c0007a78f700 100755
--- a/Lib/tarfile.py
+++ b/Lib/tarfile.py
@@ -516,7 +516,9 @@ def seek(self, pos=0):
if pos - self.pos >= 0:
blocks, remainder = divmod(pos - self.pos, self.bufsize)
for i in range(blocks):
- self.read(self.bufsize)
+ data = self.read(self.bufsize)
+ if not data:
+ break
self.read(remainder)
else:
raise StreamError("seeking backwards is not allowed")
diff --git a/Lib/test/test_tarfile.py b/Lib/test/test_tarfile.py
index 29719d95b6c1..8aeb2e1b1b9a 100644
--- a/Lib/test/test_tarfile.py
+++ b/Lib/test/test_tarfile.py
@@ -4480,6 +4480,22 @@ def valueerror_filter(tarinfo, path):
with self.check_context(arc.open(errorlevel='boo!'), filtererror_filter):
self.expect_exception(TypeError) # errorlevel is not int
+ @support.subTests('format', [tarfile.GNU_FORMAT, tarfile.PAX_FORMAT])
+ def test_getmembers_big_size(self, format):
+ # gh-151981: A loop in seek() for streaming files tried to read the
+ # declared number of blocks even at EOF
+ tinfo = tarfile.TarInfo("huge-file")
+ tinfo.size = 1 << 64
+ bio = io.BytesIO()
+ # Write header without data
+ bio.write(tinfo.tobuf(format))
+
+ # Reset & try to get contents
+ bio.seek(0)
+ with tarfile.open(fileobj=bio, mode="r|") as tar:
+ with self.assertRaises(tarfile.ReadError):
+ tar.getmembers()
+
class OverwriteTests(archiver_tests.OverwriteTests, unittest.TestCase):
testdir = os.path.join(TEMPDIR, "testoverwrite")
--
2.54.0

View File

@@ -0,0 +1,96 @@
From 5b412e1f7bdb3e0667b2bc8b216ad216d59d8373 Mon Sep 17 00:00:00 2001
From: Stan Ulbrych <stan@python.org>
Date: Mon, 8 Jun 2026 11:55:32 +0200
Subject: [PATCH] gh-150599: Prevent bz2 decompressor reuse after errors
(GH-150600)
CVE: CVE-2026-9669
Upstream-Status: Backport [https://github.com/python/cpython/commit/5755d0f083949ff3c5bf3a37e673e24e306b036e]
Signed-off-by: Benjamin Robin <benjamin.robin@bootlin.com>
---
Lib/test/test_bz2.py | 15 +++++++++++++++
Modules/_bz2module.c | 18 +++++++++++++++---
2 files changed, 30 insertions(+), 3 deletions(-)
diff --git a/Lib/test/test_bz2.py b/Lib/test/test_bz2.py
index cb730a1a46e2..dcbf6a298264 100644
--- a/Lib/test/test_bz2.py
+++ b/Lib/test/test_bz2.py
@@ -958,6 +958,21 @@ def test_failure(self):
# Previously, a second call could crash due to internal inconsistency
self.assertRaises(Exception, bzd.decompress, self.BAD_DATA * 30)
+ def test_decompress_after_data_error(self):
+ data = bytes.fromhex(
+ "425a6839314159265359000000000000007fffff000000000000000000000000"
+ "00000000000000000000000000000000000000e0370000000000000000000000"
+ "000000000000000000000000000000000000000000000000000083f3"
+ )
+ bzd = BZ2Decompressor()
+ with self.assertRaisesRegex(OSError, "Invalid data stream"):
+ bzd.decompress(data)
+ # Previously, a second call could crash due to internal inconsistency
+ self.assertFalse(bzd.needs_input)
+ self.assertFalse(bzd.eof)
+ with self.assertRaisesRegex(ValueError, "previous error"):
+ bzd.decompress(b'\x00' * 18)
+
@support.refcount_test
def test_refleaks_in___init__(self):
gettotalrefcount = support.get_attribute(sys, 'gettotalrefcount')
diff --git a/Modules/_bz2module.c b/Modules/_bz2module.c
index 97bd44b4ac96..0b0916142f57 100644
--- a/Modules/_bz2module.c
+++ b/Modules/_bz2module.c
@@ -114,6 +114,7 @@ typedef struct {
typedef struct {
PyObject_HEAD
bz_stream bzs;
+ int bzerror;
char eof; /* T_BOOL expects a char */
PyObject *unused_data;
char needs_input;
@@ -453,8 +454,11 @@ decompress_buf(BZ2Decompressor *d, Py_ssize_t max_length)
d->bzs_avail_in_real += bzs->avail_in;
- if (catch_bz2_error(bzret))
+ if (catch_bz2_error(bzret)) {
+ d->bzerror = bzret;
+ d->needs_input = 0;
goto error;
+ }
if (bzret == BZ_STREAM_END) {
d->eof = 1;
break;
@@ -621,10 +625,17 @@ _bz2_BZ2Decompressor_decompress_impl(BZ2Decompressor *self, Py_buffer *data,
PyObject *result = NULL;
ACQUIRE_LOCK(self);
- if (self->eof)
+ if (self->eof) {
PyErr_SetString(PyExc_EOFError, "End of stream already reached");
- else
+ }
+ else if (self->bzerror) {
+ // Re-entering BZ2_bzDecompress() after an error can write out of bounds.
+ PyErr_SetString(PyExc_ValueError,
+ "Decompressor is unusable after a previous error");
+ }
+ else {
result = decompress(self, data->buf, data->len, max_length);
+ }
RELEASE_LOCK(self);
return result;
}
@@ -658,6 +669,7 @@ _bz2_BZ2Decompressor_impl(PyTypeObject *type)
return NULL;
}
+ self->bzerror = 0;
self->needs_input = 1;
self->bzs_avail_in_real = 0;
self->input_buffer = NULL;
--
2.54.0

View File

@@ -44,6 +44,9 @@ SRC_URI = "http://www.python.org/ftp/python/${PV}/Python-${PV}.tar.xz \
file://CVE-2026-6019_p2.patch \
file://CVE-2025-13462.patch \
file://CVE-2026-4224.patch \
file://CVE-2026-11940.patch \
file://CVE-2026-11972.patch \
file://CVE-2026-9669.patch \
"
SRC_URI:append:class-native = " \
@@ -256,8 +259,24 @@ do_install:append:class-nativesdk () {
create_wrapper ${D}${bindir}/python${PYTHON_MAJMIN} TERMINFO_DIRS='${sysconfdir}/terminfo:/etc/terminfo:/usr/share/terminfo:/usr/share/misc/terminfo:/lib/terminfo' PYTHONNOUSERSITE='1'
}
do_install_ptest:append:class-target:libc-musl () {
sed -i -e 's|SKIPPED_TESTS=|SKIPPED_TESTS="-x test__locale -x test_c_locale_coercion -x test_locale -x test_os test_re -x test__xxsubinterpreters -x test_threading"|' ${D}${PTEST_PATH}/run-ptest
# Fails with segfault
# Bugzilla YP 16182 (test_tracemalloc_track_race)
SKIPPED_TESTS = " \
--ignore test.test_tracemalloc.TestCAPI.test_tracemalloc_track_race \
"
SKIPPED_TESTS:append:class-target:libc-musl = " \
-x test__locale \
-x test_c_locale_coercion \
-x test_locale \
-x test_os test_re \
-x test__xxsubinterpreters \
-x test_threading \
"
do_install_ptest:append () {
sed -i -e "s|SKIPPED_TESTS=|SKIPPED_TESTS=\"${SKIPPED_TESTS}\"|" ${D}${PTEST_PATH}/run-ptest
}
SYSROOT_PREPROCESS_FUNCS:append:class-target = " provide_target_config_script"

View File

@@ -48,6 +48,10 @@ SRC_URI = "https://download.qemu.org/${BPN}-${PV}.tar.xz \
file://CVE-2025-11234-01.patch \
file://CVE-2025-11234-02.patch \
file://CVE-2024-6519.patch \
file://CVE-2025-14876_p1.patch \
file://CVE-2025-14876_p2.patch \
file://CVE-2026-0665.patch \
file://CVE-2026-2243.patch \
"
UPSTREAM_CHECK_REGEX = "qemu-(?P<pver>\d+(\.\d+)+)\.tar"

View File

@@ -0,0 +1,52 @@
From 96ac1b4f958287776ec2199749beaaad60148a85 Mon Sep 17 00:00:00 2001
From: zhenwei pi <pizhenwei@tensorfer.com>
Date: Sun, 21 Dec 2025 10:43:20 +0800
Subject: [PATCH] hw/virtio/virtio-crypto: verify asym request size
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
The total lenght of request is limited by cryptodev config, verify it
to avoid unexpected request from guest.
CVE: CVE-2025-14876
Upstream-Status: Backport [https://gitlab.com/qemu-project/qemu/-/commit/e649201bb96ae7e91a69d57392c8907ec085111e]
Fixes: CVE-2025-14876
Fixes: 0e660a6f90a ("crypto: Introduce RSA algorithm")
Reported-by: 이재영 <nakamurajames123@gmail.com>
Signed-off-by: zhenwei pi <zhenwei.pi@linux.dev>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Message-Id: <20251221024321.143196-2-zhenwei.pi@linux.dev>
(cherry picked from commit 91c6438caffc880e999a7312825479685d659b44)
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
(cherry picked from commit e649201bb96ae7e91a69d57392c8907ec085111e)
Signed-off-by: Ashishkumar Parmar <asparmar@cisco.com>
---
hw/virtio/virtio-crypto.c | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/hw/virtio/virtio-crypto.c b/hw/virtio/virtio-crypto.c
index 4aaced74b..6927f7d1a 100644
--- a/hw/virtio/virtio-crypto.c
+++ b/hw/virtio/virtio-crypto.c
@@ -767,11 +767,18 @@ virtio_crypto_handle_asym_req(VirtIOCrypto *vcrypto,
uint32_t len;
uint8_t *src = NULL;
uint8_t *dst = NULL;
+ uint64_t max_len;
asym_op_info = g_new0(CryptoDevBackendAsymOpInfo, 1);
src_len = ldl_le_p(&req->para.src_data_len);
dst_len = ldl_le_p(&req->para.dst_data_len);
+ max_len = (uint64_t)src_len + dst_len;
+ if (unlikely(max_len > vcrypto->conf.max_size)) {
+ virtio_error(vdev, "virtio-crypto asym request is too large");
+ goto err;
+ }
+
if (src_len > 0) {
src = g_malloc0(src_len);
len = iov_to_buf(iov, out_num, 0, src, src_len);

View File

@@ -0,0 +1,56 @@
From 17f89320724d16437a26a250c82b1649777387f1 Mon Sep 17 00:00:00 2001
From: zhenwei pi <pizhenwei@tensorfer.com>
Date: Sun, 21 Dec 2025 10:43:21 +0800
Subject: [PATCH] cryptodev-builtin: Limit the maximum size
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This backend driver is used for demonstration purposes only, unlimited
size leads QEMU OOM.
CVE: CVE-2025-14876
Upstream-Status: Backport [https://gitlab.com/qemu-project/qemu/-/commit/3464e88bc98d72acc3a9674054b9ed0c3d4e9b90]
Fixes: CVE-2025-14876
Fixes: 1653a5f3fc7 ("cryptodev: introduce a new cryptodev backend")
Reported-by: 이재영 <nakamurajames123@gmail.com>
Signed-off-by: zhenwei pi <zhenwei.pi@linux.dev>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Message-Id: <20251221024321.143196-3-zhenwei.pi@linux.dev>
(cherry picked from commit 7b913094c703641a0442bb1d1165323a019c591c)
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
(cherry picked from commit 3464e88bc98d72acc3a9674054b9ed0c3d4e9b90)
Signed-off-by: Ashishkumar Parmar <asparmar@cisco.com>
---
backends/cryptodev-builtin.c | 9 +++------
1 file changed, 3 insertions(+), 6 deletions(-)
diff --git a/backends/cryptodev-builtin.c b/backends/cryptodev-builtin.c
index 940104ee5..a4c544b6d 100644
--- a/backends/cryptodev-builtin.c
+++ b/backends/cryptodev-builtin.c
@@ -53,6 +53,8 @@ typedef struct CryptoDevBackendBuiltinSession {
#define CRYPTODEV_BUITLIN_MAX_AUTH_KEY_LEN 512
#define CRYPTODEV_BUITLIN_MAX_CIPHER_KEY_LEN 64
+/* demonstration purposes only, use a limited size to avoid QEMU OOM */
+#define CRYPTODEV_BUITLIN_MAX_REQUEST_SIZE (1024 * 1024)
struct CryptoDevBackendBuiltin {
CryptoDevBackend parent_obj;
@@ -98,12 +100,7 @@ static void cryptodev_builtin_init(
1u << QCRYPTODEV_BACKEND_SERVICE_MAC;
backend->conf.cipher_algo_l = 1u << VIRTIO_CRYPTO_CIPHER_AES_CBC;
backend->conf.hash_algo = 1u << VIRTIO_CRYPTO_HASH_SHA1;
- /*
- * Set the Maximum length of crypto request.
- * Why this value? Just avoid to overflow when
- * memory allocation for each crypto request.
- */
- backend->conf.max_size = LONG_MAX - sizeof(CryptoDevBackendOpInfo);
+ backend->conf.max_size = CRYPTODEV_BUITLIN_MAX_REQUEST_SIZE;
backend->conf.max_cipher_key_len = CRYPTODEV_BUITLIN_MAX_CIPHER_KEY_LEN;
backend->conf.max_auth_key_len = CRYPTODEV_BUITLIN_MAX_AUTH_KEY_LEN;
cryptodev_builtin_init_akcipher(backend);

View File

@@ -0,0 +1,38 @@
From 91e98ce0a879010ef5b5ab5778cc71c0e9e92a57 Mon Sep 17 00:00:00 2001
From: Vulnerability Report <vr@darknavy.com>
Date: Fri, 9 Jan 2026 10:35:48 +0800
Subject: [PATCH] hw/i386/kvm: fix PIRQ bounds check in xen_physdev_map_pirq()
Reject pirq == s->nr_pirqs in xen_physdev_map_pirq().
CVE: CVE-2026-0665
Upstream-Status: Backport [https://gitlab.com/qemu-project/qemu/-/commit/4ba877461e6b1a8637b15ff1a8c77ba97639c927]
Fixes: aa98ee38a5 ("hw/xen: Implement emulated PIRQ hypercall support")
Fixes: CVE-2026-0665
Reported-by: DARKNAVY (@DarkNavyOrg) <vr@darknavy.com>
Reviewed-by: David Woodhouse <dwmw@amazon.co.uk>
Signed-off-by: Vulnerability Report <vr@darknavy.com>
Link: https://lore.kernel.org/r/13FE03BE60EA78D6+20260109023548.4047-1-vr@darknavy.com
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
(cherry picked from commit c7504ba2a560fd884557f6e5142f03b491aad0c7)
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
(cherry picked from commit 4ba877461e6b1a8637b15ff1a8c77ba97639c927)
Signed-off-by: Ashishkumar Parmar <asparmar@cisco.com>
---
hw/i386/kvm/xen_evtchn.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/hw/i386/kvm/xen_evtchn.c b/hw/i386/kvm/xen_evtchn.c
index 02b8cbf8d..5a1ad3782 100644
--- a/hw/i386/kvm/xen_evtchn.c
+++ b/hw/i386/kvm/xen_evtchn.c
@@ -1843,7 +1843,7 @@ int xen_physdev_map_pirq(struct physdev_map_pirq *map)
return pirq;
}
map->pirq = pirq;
- } else if (pirq > s->nr_pirqs) {
+ } else if (pirq >= s->nr_pirqs) {
return -EINVAL;
} else {
/*

View File

@@ -0,0 +1,45 @@
From 8480e4b3718302e7f63efb87e07720f70509c8c7 Mon Sep 17 00:00:00 2001
From: "Halil Oktay (oblivionsage)" <cookieandcream560@gmail.com>
Date: Tue, 10 Feb 2026 13:33:25 +0100
Subject: [PATCH] block/vmdk: fix OOB read in vmdk_read_extent()
Bounds check for marker.size doesn't account for the 12-byte marker
header, allowing zlib to read past the allocated buffer.
Move the check inside the has_marker block and subtract the marker size.
CVE: CVE-2026-2243
Upstream-Status: Backport [https://gitlab.com/qemu-project/qemu/-/commit/37ff880a1252de304985c7e8493765014012ed2f]
Fixes: CVE-2026-2243
Reported-by: Halil Oktay (oblivionsage) <cookieandcream560@gmail.com>
Signed-off-by: Halil Oktay (oblivionsage) <cookieandcream560@gmail.com>
Reviewed-by: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
(cherry picked from commit cfda94eddb6c9c49b66461c950b22845a46a75c9)
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
(cherry picked from commit 37ff880a1252de304985c7e8493765014012ed2f)
Signed-off-by: Ashishkumar Parmar <asparmar@cisco.com>
---
block/vmdk.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/block/vmdk.c b/block/vmdk.c
index d6971c706..7f63d0947 100644
--- a/block/vmdk.c
+++ b/block/vmdk.c
@@ -1949,10 +1949,10 @@ vmdk_read_extent(VmdkExtent *extent, int64_t cluster_offset,
marker = (VmdkGrainMarker *)cluster_buf;
compressed_data = marker->data;
data_len = le32_to_cpu(marker->size);
- }
- if (!data_len || data_len > buf_bytes) {
- ret = -EINVAL;
- goto out;
+ if (!data_len || data_len > buf_bytes - sizeof(VmdkGrainMarker)) {
+ ret = -EINVAL;
+ goto out;
+ }
}
ret = uncompress(uncomp_buf, &buf_len, compressed_data, data_len);
if (ret != Z_OK) {

Some files were not shown because too many files have changed in this diff Show More