Upgrade coreutils to 9.8 for CVE-2025-5278 - #18181
Conversation
|
Azure Pipelines: There may be pipelines that require an authorized user to comment /azp run to run. |
|
Azure Pipelines: There may be pipelines that require an authorized user to comment /azp run to run. |
|
@akhila-guruju have you run an analysis for taking this upgrade? It appears to significantly impact the usage of nproc. Although the behavior is corrected in this version, it means anyone using it today in a typical kubernetes/AKS pod could have significant operational differences. Old behavior (≤9.7): nproc calls sched_getaffinity(2) and counts the CPUs in the process's affinity mask. New behavior (9.8): nproc also reads cpu.max from the process's cgroup-v2 hierarchy and takes the minimum of affinity_count and ceil(quota / period) . Why containers see a change A typical Kubernetes/AKS pod with a CPU limit (not just a request) of, say, 500m on a 16-core node gets: • CPU affinity mask: still all 16 CPUs (the kernel doesn't pin container tasks to a subset — the scheduler enforces the quota via throttling instead). ┌───────────┬───────────────────────────────────────┐ |
|
Thanks. I verified it against the 9.8 source: the quota is rounded half-up with a floor of 1, not ceil. Scope of impact (confirmed in
My assessment is that this is an upstream correctness fix, not a regression: The old behavior (full node core count under a CPU limit) is precisely what causes container over-threading, and that over-threading then triggers CFS throttling. The new value matches the pod's real CPU budget, so workloads doing |
|
@jslobodzian we can take #18261 |
Merge Checklist
All boxes should be checked before merging the PR (just tick any boxes which don't apply to this PR)
*-staticsubpackages, etc.) have had theirReleasetag incremented../cgmanifest.json,./toolkit/scripts/toolchain/cgmanifest.json,.github/workflows/cgmanifest.json)./LICENSES-AND-NOTICES/SPECS/data/licenses.json,./LICENSES-AND-NOTICES/SPECS/LICENSES-MAP.md,./LICENSES-AND-NOTICES/SPECS/LICENSE-EXCEPTIONS.PHOTON)*.signatures.jsonfilessudo make go-tidy-allandsudo make go-test-coveragepassSummary
Upgrade coreutils 9.4 → 9.8 (addresses CVE-2025-5278).
Rebase the i18n multibyte patch to 9.8 (coreutils-9.8-i18n.patch). Patch has been taken from Fedora.
Drop CVE-2024-0684.patch, fixed upstream in 9.5.
Build fix
Changed
autoreconf -fi→AUTOPOINT=true autoreconf -fiin%build.Why: coreutils declares
AM_GNU_GETTEXT_VERSION([0.19.2]), soautopointoverwrites the tarball's bundled gnulib m4 macros with stale gettext‑0.19 copies that lackgl_ANYTHREADLIB_EARLY,gl_PTHREADLIB,gl_WEAK_SYMBOLS,gl_TYPE_WINT_T_PREREQ→ autoreconf fails. Skipping autopoint keeps the tarball's already-coherent macro set (verified: those macros are defined in the bundled m4/threadlib.m4/wint_t.m4).Chose
AUTOPOINT=trueover Fedora'ssed 's/0.19.2/<gettext-ver>/'because it's version-independent (azl ships gettext 0.22, and gettext-devel is only a virtual Provide here), can't silently no-op on a future rebase, and needs no rpm -q/BuildRequires plumbing. Both fixes are functionally equivalent; this one is lower-maintenance for AZL.Compatibility:
No library API/ABI change (coreutils ships executables, not a linkable library). Behavioral deltas are CLI-only, documented in NEWS, and auditable. The notable ones for scripts are
cp -n/mv -n exit-status revert (9.5),ls -f flag semantics (9.6), andnproc cgroup‑v2 quota awareness (9.8). C/POSIX‑locale default behavior is unchanged.Refs:
https://src.fedoraproject.org/rpms/coreutils/blob/20976b8be8f329b2ffc60ed31fba89ed8ad2106a/f/coreutils-i18n.patch
https://src.fedoraproject.org/rpms/coreutils/blob/f44/f/coreutils.spec
Change Log
Does this affect the toolchain?
YES
Associated issues
Links to CVEs
Test Methodology