When we unpack sstate files, we want to update the mtime+atime of the sstate
object and any sig/siginfo files, both for the files themselves and symlinks.
The logic was getting a bit hard to follow and wasn't entirely consistent with
only a time in some cases.
Clean it up and be consistent for all the files.
(From OE-Core rev: 147004ef60987039372c977e6c2f304a5414f39f)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 5213ca88cbec4e86b50d8da1fe4c300ca8f5de17)
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
[YC: for [YOCTO #15289] ]
Signed-off-by: Paul Barker <paul@pbarker.dev>
If we touch sstatefile, we should also touch any .sig/.siginfo file if we can.
We try and keep them both updated with accesses so one isn't removed without
the other and they stay consistent.
[YOCTO #15289]
(From OE-Core rev: 2bd595a9d95fac64174a25759124a0aa3d0dd001)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit cc07895f951140dbbffcf32d3eabf65788cc4d00)
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
Unusual upgrade for expat to version 2.8.3
This is because there is a lot of CVEs and some are bigger than 20+ commits
so maintaining them is difficult
In new version there are fixes for CVE-2026-50219, CVE-2026-56131,
CVE-2026-56412, CVE-2026-72522 that was not backported yet
No braking ABI changes only 3 functions was added:
3 Added functions:
[A] 'function XML_Bool XML_SetAllocTrackerActivationThreshold(XML_Parser, long long unsigned int)' {XML_SetAllocTrackerActivationThreshold}
[A] 'function XML_Bool XML_SetAllocTrackerMaximumAmplification(XML_Parser, float)' {XML_SetAllocTrackerMaximumAmplification}
[A] 'function XML_Bool XML_SetHashSalt16Bytes(XML_Parser, const uint8_t*)' {XML_SetHashSalt16Bytes}
SONAME name stays the same as it was before - libexpat.so.1
Build all find package that depends on expat:
python3-xml fontconfig python3-xmltodict apr-util libxml-parser-perl exiv2
graphviz libdbus-c++ libwmf log4c neon poco polkit sdbus-c++ sdbus-c++-tools
wbxml2 apache2 lftp unbound wireshark libmusicbrainz mpd gegl
Tested using ptests for python3-xmltodict apr-util libxml-parser-perl
and expat itself
There is already planned expat 2.8.4 release but CVE fix there are small
and thus maintainable
Changelog notes here:
https://github.com/libexpat/libexpat/blob/R_2_8_3/expat/Changes
(From OE-Core rev: 408425eee8d281188a0f8b8e3e535e7c3af99f12)
Signed-off-by: Jakub Szczudlo <jakub.szczudlo@nokia.com>
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
[YC: CVE-2026-72522 was ignored in the meantime, I removed the
CVE_STATUS line]
Signed-off-by: Paul Barker <paul@pbarker.dev>
Backport six commits from upstream glibc to fix CVE-2026-6238.
4ba0b79b95 resolv: Add test case tst-ns_sprintrr (bug 34033, bug 34069)
a7b60d23bb resolv: Fix buffer overreads in ns_sprintrrf (CVE-2026-6238)
cd0db208d5 resolv: Check for inet_ntop failure in ns_sprintrrf
d58415eb17 resolv: Improve formatting of unknown records in ns_sprintrrf
f69b7f95e3 resolv: Fix ns_sprintrrf formatting of class, type values (bug 34289)
360f352c9a resolv: Declare __p_class_syms, __p_type_syms for internal use
The upstream patch series [PATCH 0/5] contains five commits:
1/5: Update GLIBC-SA-2026-0012 to mention A6 records (doc only)
2/5: resolv: Check for inet_ntop failure in ns_sprintrrf
3/5: resolv: Remove incorrect parts of TSIG handling from ns_sprintrrf
(CVE-2026-5435)
4/5: resolv: Fix buffer overreads in ns_sprintrrf (CVE-2026-6238)
5/5: resolv: Add test case tst-ns_sprintrr (bug 34033, bug 34069)
For this backport:
- Patch 1/5 is skipped (documentation-only change to advisories,
upstream glibc itself does not backport this to older releases)
- Patch 3/5 (CVE-2026-5435) is already patched in scarthgap sources
- Patches 2/5, 4/5, and 5/5 are backported as:
0028-CVE-2026-6238-0004.patch (inet_ntop failure check)
0029-CVE-2026-6238-0005.patch (buffer overread fix - CVE-2026-6238)
0030-CVE-2026-6238-0006.patch (test case for bug 34033, bug 34069)
However, the test case (tst-ns_sprintrr) from patch 5/5 failed on
scarthgap's glibc 2.39 due to missing prerequisite commits. Three
additional patches were backported to resolve the test failure:
0025-CVE-2026-6238-0001.patch (Declare __p_class_syms, __p_type_syms for internal)
0026-CVE-2026-6238-0002.patch (Fix ns_sprintrrf formatting of class, type values)
0027-CVE-2026-6238-0003.patch (Improve formatting of unknown records in ns_sprintrrf)
CVE-2026-6238 fixes buffer overreads in ns_sprintrrf affecting A6 and
LOC record handling. The vulnerable LOC record handling was introduced
before glibc 2.0, while A6 record handling was added in glibc 2.7.
Reference:
https://inbox.sourceware.org/libc-alpha/cover.1777546194.git.fweimer@redhat.com/https://nvd.nist.gov/vuln/detail/CVE-2026-6238https://sourceware.org/bugzilla/show_bug.cgi?id=34069
Testing Results:
Before After Diff
PASS 4896 4897 +1
XPASS 4 4 0
FAIL 372 372 0
XFAIL 16 16 0
UNSUPPORTED 224 224 0
Changes in testcases:
testcase-name before after
resolv/tst-ns_sprintrr(new) - PASS
commit - 4ba0b79b95 resolv: Add test case tst-ns_sprintrr (bug 34033, bug 34069)
+PASS: resolv/tst-ns_sprintrr
(From OE-Core rev: 7761a8aaac0703a738a2a4979ddb015157374dcb)
Signed-off-by: Deepesh Varatharajan <Deepesh.Varatharajan@windriver.com>
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
[YC: fixed patch format]
Signed-off-by: Paul Barker <paul@pbarker.dev>
Using bash to handle execution parameters isn't a great idea, particularly using
os.system. In theory this could be exploited by injecting shell code through the
placeholders although whether this can be done without security tokens is unclear.
Regardless, we have been cleaning up shell=True and similar calls in the codebase.
Instead use shlex to parse the callback command, then we can iterate the parameters
to perform any expansions needed and avoid the need to call any shell expansion.
Any invalid data will then just become an invalid image target to bitbake.
Reported-by: Lei Zhang <18792670849@163.com>
(Bitbake rev: d3b32587c2314febf96897f97e0172790b4fc1cf)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Paul Barker <paul@pbarker.dev>
When SDKMACHINE is set to i686 or i586, nativesdk binaries are compiled
as 32-bit. Without -D_TIME_BITS=64 and -D_FILE_OFFSET_BITS=64, stat()
and time-related syscalls use 32-bit types, causing EOVERFLOW on
filesystems with large inode numbers (e.g. container overlay filesystems)
and Y2038 issues.
Add SDK_CC_ARCH appends for class-nativesdk:i686 and class-nativesdk:i586
using GLIBC_64BIT_TIME_FLAGS, mirroring how target architectures are
handled.
The existing GLIBC_64BIT_TIME_FLAGS:pn-glibc override only matches the
target recipe, not the class extended nativesdk-glibc, so an additional
pn-nativesdk-glibc override is needed here. This is required on
scarthgap but not on master/wrynose, because scarthgap carries glibc
2.39, which predates glibc commit a4ed0471d717 ("Always define
__USE_TIME_BITS64 when 64 bit time_t is used"). In 2.39 the header
redirect turns sigtimedwait into an alias of __sigtimedwait64, which
then collides with glibc's own weak_alias() and fails to assemble:
Error: symbol '__sigtimedwait64' is already defined
Also exclude nativesdk-mingw-w64-runtime. The MinGW runtime provides the
Windows CRT rather than glibc, and _FILE_OFFSET_BITS=64 changes its
stat declarations. That causes conflicting declarations for wstat when
building the CRT itself.
(From OE-Core rev: 07ca97baad7b182849ee50f0bd629b68dc9f53b3)
Signed-off-by: Peter Tatrai <peter.tatrai.ext@siemens.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit d9f62a45555673842021d5746437e66c40d3f3cc)
Signed-off-by: Peter Tatrai <peter.tatrai.ext@siemens.com>
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
Analysis:
- The problem only exists when curl is built with libpsl support enabled.[1]
- The recipe is built with "--without-libpsl" option.
- Hence, ignoring the CVE for this recipe.
Reference:
[1] https://curl.se/docs/CVE-2026-82209.html
(From OE-Core rev: a3804a343732b601c06167ec6414b69850992897)
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>
ROOTFS_BOOTSTRAP_INSTALL in image.bbclass unconditionally stages
run-postinsts into every image. When no delayed postinsts remain,
_uninstall_unneeded() is supposed to remove it again, but the removal
call used the bare "run-postinsts" package name without applying
MLPREFIX.
On a multilib image (e.g. lib32-core-image-minimal), the package that
is actually installed is lib32-run-postinsts, so the unprefixed
removal silently matches nothing and run-postinsts leaks into the
final image manifest, along with its now-pointless init script /
systemd unit.
Expand MLPREFIX before removing the package, matching the pattern
already used elsewhere in oe-core (e.g. oe/package.py) for
package-name lookups that need to work across multilib variants.
(From OE-Core rev: 2522a1ad4fb66af0a9ca146ca7a88aece8f471da)
Signed-off-by: Kyungjik Min <dp.min@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 dfa5673907bdc5211671ecdfce8ab1fb332eae48)
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
Adds suport for a working close_range() intercept.
(From OE-Core rev: 2d50a4b12798e57a6d7900de2cb2b6b4edcb77e9)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 9a68d3f4bd0e80ea7e1ea745b6a10acd341dc7d8)
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
Pulls in various important fixes:
Makefile.in: Bump to 1.9.10
test: various: Move to makefile compilation
test-bash-exec-env: Add bash env test case
test/test-openat2-func.c: Remove unusuaed saved_errno
pseudo_util.c: strchr now returns const char
pseudo_client: remove the unused pseudo_prefix_dir_fd
pseudo_client: step around all of pseudo's own fds in closefrom
pseudo_client: step fully past pseudo's own fds when computing startfd
makewrappers: Avoid efault workaround if using AT_EMPTY_PATH
ports/linux/guts: Add __open64_2 wrapper
Makefile.in: Bump to 1.9.9
(From OE-Core rev: fc1a18d4da57dcee29861b3b5efd1924541ac71a)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 4232a7cc5fa28828fdf3223b3c0a6432c8c1e670)
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
Pull in buffering fix:
"""
When running slow ptests, we can see an issue where the tests are writing output
but it doesn't make it to the process (e.g. ssh connection) running ptest-runner.
The issue is that the standard buffering for non-interactive terminals is 8kb and
some ptests don't output enough data to trigger a write. This can lead to
the controlling connection timing out.
This change forces the output streams to be line buffered in all cases. Most
ptest output would contain newlines so this should work well. stderr can be
unbuffered by default but making it consistent here seems the best approach.
Testing with this change on slow ptest runs (e.g. qemu emulated) showed much
more consistent data with this change.
"""
(From OE-Core rev: b969018b72abd96e4b504a23cb7054db4f661761)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit b57105311f1c5fd879dd58fa1de8862ebad989c1)
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
Changelog:
- utils.c: Fix dirname() handling in run_ptests()
- ptest-runner-collect-system-data: add info to logs
- main.c: Set PYTHONUNBUFFERED in the environment
- utils.c: print a message when a timeout occurs
- main.c: Add print_helptext() for detailed help
- main.print_usage: Remove unused argument list of -l
(From OE-Core rev: 62d96e61678773686773203216f924d34a47160b)
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 869d70d46c8e31cfc380b5143059cab3713cae26)
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
This is 2 commits squashed:
| ptest-runner: upgrade 2.4.5 -> 2.5.1
|
| Signed-off-by: Wang Mingyu <wangmy@fujitsu.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 d4497ba3fed93807f59c00925056aa21e72c2189)
|ptest-runner: correct PV from 2.5.1 to 2.4.5.1
|
|2.4.5.1 is an actual version, 2.5.1 was a typo mistake.
|That merged less than an hour ago, so no one should
|trip over version going backwards hopefully.
|
|Signed-off-by: Alexander Kanavin <alex@linutronix.de>
|Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
|(cherry picked from commit d5e0f51bccae7410b10c98a93fa5853155c2f59e)
Changelog: https://git.yoctoproject.org/ptest-runner2/log/?h=v2.4.5.1
* Makefile: use pkg-config to obtain libcheck flags
* Makefile: remove redundant rule
* README.md: Add my cc to be aware of patches
* README: Update mailing list address for patches + add git command
(From OE-Core rev: 6688fc0df342dfb75061647462e36590dc5175ca)
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
Fix incorrect function call when processing SPDX_CUSTOM_ANNOTATION_VARS.
The code was calling new_annotation() as a standalone function, but it
should be called as a method on the build_objset object.
Error:
new_annotation(d, build_objset, build, ...)
Corrected to:
build_objset.new_annotation(d, build_objset, build, ...)
This bug would cause a NameError at runtime if SPDX_CUSTOM_ANNOTATION_VARS
was set to a non-empty value, preventing SPDX document generation.
The fix aligns with how new_annotation() is called elsewhere in the
codebase and matches the SBOMObjset class method signature.
(From OE-Core rev: de5c85b2c4c5a62d12aa5b9ab328d9a51d831c41)
Signed-off-by: Stefano Tondo <stefano.tondo.ext@siemens.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
(cherry picked from commit 52ab3b640c6bb7ece34cb4ea6026fd6375f17af4)
Cc: Joshua Watt <jpewhacker@gmail.com>
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
[YC:
Link: https://lore.kernel.org/all/CAJdd5GaqcWujQae-GXQpcgAGtosHe7_X0T%2B8LyOfrr8-mOgzLA@mail.gmail.com/
]
Signed-off-by: Paul Barker <paul@pbarker.dev>
Update to the 5.0.20 release of the 5.0 series for buildtools
(From OE-Core rev: 955e0ed1c6651f0a1d18d0c9bee5f6ef494cd189)
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
Leading space leads to SPDX document validation errors in some tools.
Example:
SchemaError: \" http://certifi.io/\" is not valid under any of the
schemas listed in the 'anyOf' keyword
(components -> ... -> externalReferences -> 0 -> url)
(From OE-Core rev: 758899639692fb76e28f3914f75249957c0b3600)
Signed-off-by: Peter Marko <peter.marko@siemens.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(From OE-Core rev: ee556d1e1cc16327e0a11207e90ac61d9f1577f3)
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>
Leading space leads to SPDX document validation errors in some tools.
Example:
SchemaError: \" http://golang.org/\" is not valid under any of the
schemas listed in the 'anyOf' keyword
(components -> ... -> externalReferences -> 0 -> url)
(From OE-Core rev: e859061f8f00937e5bb737c029ca2da3837d551c)
Signed-off-by: Peter Marko <peter.marko@siemens.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(From OE-Core rev: cbf36f436b477d81b58ff605846a2482308aefa)
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>
The guard added in 80ff4903ea tests "detail" in cve_data, but cve_data is
keyed by CVE id, so it asks whether a CVE literally named "detail" was
scanned. That is never true, the condition short-circuits, and the guard
never runs: a CVE_STATUS[CVE-...] = "backported-patch" set for a vendor
cherry-picked patch is silently overwritten to Unpatched by the CNA.
Use .get() on the entry instead. Guard the fallthrough warning the same
way, it makes the same assumption.
Tested against a qemuarm64 linux-yocto report (6.6.142+git, 16221 entries,
4313 of them with no detail). Current master and this version produce
identical output, 18773 entries with no difference. Adding
CVE_STATUS[CVE-2024-42067] = "backported-patch" to that report then makes
the only difference between them: master overwrites it to Unpatched, this
version keeps it Patched. The pre-80ff4903ea code aborts on the same
report with "KeyError: 'detail'".
AI-Generated: Uses Claude (claude-opus-5)
Fixes: 80ff4903ea1b ("improve_kernel_cve_report: validate that cve details field exists")
(From OE-Core rev: ff8709c6ea17ef64e660c12f225c839865b3facb)
Signed-off-by: Hiago De Franco <hfranco@baylibre.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit f5da16b0d3c8f889dab061ba1d8808aba95d4c67)
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
CVE-2026-8458 allows a Negotiate-authenticated connection to be
incorrectly reused for a request using a different SASL service name.
Scarthgap uses curl 8.7.1, which is within the affected version range.
The vulnerable code path on Linux requires both Negotiate authentication
and GSSAPI support, represented by the negotiate-auth and krb5
PACKAGECONFIG options.
The upstream fix [1] stores the SASL service name in struct Curl_creds
and includes it in connection-reuse comparisons. However, struct
Curl_creds was introduced by the credential-management rework in [2],
after curl 8.7.1. Therefore, the security fix cannot be cleanly
backported without introducing a substantial credential-management
refactor.
Use a conditional CVE_STATUS as the least invasive solution. Report the
CVE as unpatched when both krb5 and negotiate-auth are enabled. Otherwise,
mark it not-applicable-config because the vulnerable GSSAPI-backed
Negotiate implementation is not built. The default Scarthgap
configuration enables negotiate-auth but does not enable krb5.
References:
[1] https://github.com/curl/curl/commit/5e99b73cf441d9c369768b9cd48b5389b9a2503d
[2] https://github.com/curl/curl/commit/8f71d0fde515aa4c68002477356c35bd79927729
[3] https://curl.se/docs/CVE-2026-8458.html
(From OE-Core rev: e986fa2c8d74c1b943bb9069e47d1a9ae7dee9e0)
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>