Patch kernel to fix CVE-2026-31431#17417
Conversation
…IGH] - branch main (microsoft#15189) Co-authored-by: Azure Linux Security Servicing Account <azurelinux-security@microsoft.com> Co-authored-by: Kanishk Bansal <103916909+Kanishk-Bansal@users.noreply.github.com> Co-authored-by: jslobodzian <joslobo@microsoft.com>
…] and CVE-2025-12969 [Medium] - branch main" microsoft#15207 Co-authored-by: BinduSri-6522866 <v-badabala@microsoft.com>
…-66031 [High] and CVE-2025-66030 [Medium] - branch main" microsoft#15208 Co-authored-by: Akhila Guruju <v-guakhila@microsoft.com> Co-authored-by: jslobodzian <joslobo@microsoft.com>
… main" microsoft#15223 Signed-off-by: Kanishk Bansal <kanbansal@microsoft.com> Co-authored-by: Kanishk Bansal <103916909+Kanishk-Bansal@users.noreply.github.com> Co-authored-by: Kanishk Bansal <kanbansal@microsoft.com>
…es-base' - branch main" microsoft#15232 Co-authored-by: Pawel Winogrodzki <pawelwi@microsoft.com> Co-authored-by: jslobodzian <joslobo@microsoft.com>
…6.52 for CVE-2025-66293 [HIGH] - branch main" microsoft#15234 Co-authored-by: jslobodzian <joslobo@microsoft.com>
…in (microsoft#15229) Co-authored-by: Archana Shettigar <v-shettigara@microsoft.com> Co-authored-by: jslobodzian <joslobo@microsoft.com>
…VE-2025-65637 [HIGH] - branch main" microsoft#15312 Co-authored-by: Azure Linux Security Servicing Account <azurelinux-security@microsoft.com> Co-authored-by: jslobodzian <joslobo@microsoft.com>
…VE-2025-65637 [HIGH] - branch main" microsoft#15313 Co-authored-by: Azure Linux Security Servicing Account <azurelinux-security@microsoft.com> Co-authored-by: jslobodzian <joslobo@microsoft.com>
…VE-2025-65637 [HIGH] - branch main" microsoft#15314 Co-authored-by: Azure Linux Security Servicing Account <azurelinux-security@microsoft.com>
…-2025-65637 [HIGH] - branch main" microsoft#15315 Co-authored-by: Azure Linux Security Servicing Account <azurelinux-security@microsoft.com> Co-authored-by: jslobodzian <joslobo@microsoft.com>
…65637 [HIGH] - branch main" microsoft#15316 Co-authored-by: Azure Linux Security Servicing Account <azurelinux-security@microsoft.com> Co-authored-by: jslobodzian <joslobo@microsoft.com>
…2025-65637 [HIGH] - branch main" microsoft#15317 Co-authored-by: Azure Linux Security Servicing Account <azurelinux-security@microsoft.com> Co-authored-by: jslobodzian <joslobo@microsoft.com>
…VE-2025-65637 [HIGH] - branch main" microsoft#15318 Co-authored-by: Azure Linux Security Servicing Account <azurelinux-security@microsoft.com> Co-authored-by: jslobodzian <joslobo@microsoft.com>
…VE-2025-66293 [HIGH] - branch main" microsoft#15319 Co-authored-by: Azure Linux Security Servicing Account <azurelinux-security@microsoft.com> Co-authored-by: Kanishk Bansal <103916909+Kanishk-Bansal@users.noreply.github.com> Co-authored-by: Archana Shettigar <v-shettigara@microsoft.com>
…-2025-65637 [HIGH] - branch main" microsoft#15320 Co-authored-by: Azure Linux Security Servicing Account <azurelinux-security@microsoft.com> Co-authored-by: jslobodzian <joslobo@microsoft.com>
…025-65637 [HIGH] - branch main" microsoft#15321 Co-authored-by: Azure Linux Security Servicing Account <azurelinux-security@microsoft.com> Co-authored-by: jslobodzian <joslobo@microsoft.com>
…VE-2025-65637 [HIGH] - branch main" microsoft#15322 Co-authored-by: Azure Linux Security Servicing Account <azurelinux-security@microsoft.com>
…- branch main" microsoft#15323 Co-authored-by: Ratiranjan5 <v-ratbehera@microsoft.com> Co-authored-by: jslobodzian <joslobo@microsoft.com>
….66 for CVE-2025-55753, CVE-2025-58098, CVE-2025-59775, CVE-2025-65082, CVE-2025-66200 [High] - branch main" microsoft#15324 Co-authored-by: jslobodzian <joslobo@microsoft.com>
…-2025-65637 [HIGH] - branch main" microsoft#15325 Co-authored-by: Azure Linux Security Servicing Account <azurelinux-security@microsoft.com> Co-authored-by: Kanishk Bansal <103916909+Kanishk-Bansal@users.noreply.github.com> Co-authored-by: jslobodzian <joslobo@microsoft.com>
…rovider for CVE-2025-65637 [HIGH] - branch main" microsoft#15326 Co-authored-by: Azure Linux Security Servicing Account <azurelinux-security@microsoft.com> Co-authored-by: jslobodzian <joslobo@microsoft.com>
…-68146 [MEDIUM] (microsoft#16212) Co-authored-by: Archana Shettigar <v-shettigara@microsoft.com>
…[HIGH] - branch main (microsoft#16860) Co-authored-by: Azure Linux Security Servicing Account <azurelinux-security@microsoft.com>
…[HIGH] - branch main (microsoft#16863) Co-authored-by: Azure Linux Security Servicing Account <azurelinux-security@microsoft.com> Co-authored-by: akhila-guruju <v-guakhila@microsoft.com>
…VE-2025-49010 [LOW] (microsoft#16452) Co-authored-by: Ratiranjan Behera <v-ratbehera@microsoft.com>
…E-2026-32776 [MEDIUM] (microsoft#16229) Co-authored-by: Kanishk Bansal <103916909+Kanishk-Bansal@users.noreply.github.com> Co-authored-by: Aditya Singh <v-aditysing@microsoft.com>
…6004) Co-authored-by: Kanishk Bansal <103916909+Kanishk-Bansal@users.noreply.github.com> Co-authored-by: Archana Shettigar <v-shettigara@microsoft.com>
…16647) Co-authored-by: akhila-guruju <v-guakhila@microsoft.com>
…-2026-0965, CVE-2026-0964, CVE-2026-3731 [MEDIUM] (microsoft#16409) Co-authored-by: Aditya Singh <v-aditysing@microsoft.com>
…icrosoft#16432) Co-authored-by: Kanishk Bansal <103916909+Kanishk-Bansal@users.noreply.github.com> Co-authored-by: akhila-guruju <v-guakhila@microsoft.com>
Backport the linux-stable v5.15.204 fix series for CVE-2026-31431 ("copy.fail") — page-cache write primitive in crypto/algif_aead's authencesn AF_ALG splice path. Local unprivileged users can corrupt the page cache of any readable file and escalate to root via a 4-byte write into /etc/passwd. Six commits cherry-picked verbatim (via git format-patch -1) from linux-stable linux-5.15.y; all preserved attribution trailers intact: - 36435a56cd6b crypto: scatterwalk - Backport memcpy_sglist() - 17774d99bb43 crypto: algif_aead - use memcpy_sglist() instead of null skcipher - 19d43105a97b crypto: algif_aead - Revert to operating out-of-place (upstream a664bf3d603d, the load-bearing fix) - a920cabdb0b7 crypto: algif_aead - snapshot IV for async AEAD requests - fd427dd84f22 crypto: algif_aead - Fix minimum RX size check for decryption - e416c41a96c8 crypto: authenc - use memcpy_sglist() instead of null skcipher Verified on a Mariner 2.0 marketplace VM (Standard_F16as_v6, eastus, kernel 5.15.202.1-1.cm2): the published Theori PoC reproduces VULNERABLE 10/10 against the stock kernel; getpwnam(azureuser).pw_uid reads 0 every run via page-cache scratch-write. Signed-off-by: Omkhar Arasaratnam <omkhar@linkedin.com>
Patched-side empirical proof now capturedThe Phase 3 empirical proof on the patched kernel — initially blocked by Mariner 2.0's Recipe (works on the Mariner 2.0 marketplace image without compromising secure boot or grub default):
Patched-kernel fingerprint (this proof's VM): PoC against patched kernel ≥10×: Every patched run reproduced the same FIX_HOLDS signature: the kernel rejects the small-RX-buffer Full evidence bundle (including the lockdown-flip and kexec scripts) at this repo's 🤖 Generated with Claude Code |
LTP crypto suite: baseline vs patched (no regressions)Ran LTP v20260130
Delta: identical. The CONF (config-skip) tests are gated on CONFIG_PCRYPT and similar — same on both kernels, not patch-related. The Final PoC against patched kernel post-LTPAll 10 PoC runs: kernel rejects the under-sized RX buffer on Patched-kernel fingerprint (this run's VM)Full evidence bundle at the source repo: 🤖 Generated with Claude Code |
|
Closing — this is a Mariner 2.0 kernel backport (head branch is Holding on opening the equivalent PR on |
Merge Checklist
.patchfiles added underSPECS/kernel/; verbatimgit format-patch -1output from linux-stable linux-5.15.y. Source-server upload required by a Mariner maintainer per CONTRIBUTING.md ("Uploading to the source server can only be accomplished by a CBL-Mariner developer"). Please advise.*.signatures.jsonfiles —SPECS/kernel/kernel.signatures.jsonupdated with sha256 of all six new.patchfilessudo make go-tidy-allandsudo make go-test-coveragepass — n/a (no Go changes)Summary
Backport upstream fix for CVE-2026-31431 ("copy.fail") — page-cache write primitive in
crypto/algif_aead'sauthencesn(hmac(sha256),cbc(aes))AF_ALG splice path. A local unprivileged user can splice 4 bytes of attacker-controlled AAD data into the page cache of any readable file (canonically/etc/passwd), flipping a 4-digit UID to0000and obtaining root viasuand PAM's UID-based setuid.Six commits cherry-picked verbatim (via
git format-patch -1 <sha>againstlinux-stablelinux-5.15.y); all upstreamSigned-off-by:,Reported-by:,Co-developed-by:,Tested-by:,Cc: stable@kernel.orgtrailers preserved byte-for-byte inside each.patchfile:36435a56cd6b9ec26b5d-class prereq for the fix)17774d99bb43f2804d0e19d43105a97ba664bf3d603d(Reported-by: Taeyang Lee 0wn@theori.io, Signed-off-by: Herbert Xu)a920cabdb0b75aa58c3a572bfd427dd84f223d14bd48e3a7e416c41a96c88c0a5fc8-class companion)No follow-up
Fixes:commits found on torvalds/master as of 2026-05-23 UTC.Why a backport here and not a kernel version bump
The fix is already absorbed into the
azlinux-5.15.ybranch ofmicrosoft/CBL-Mariner-Linux-Kerneland the nextrolling-lts/mariner-2/5.15.204.1tag — but the Mariner 2.0 spec onmainis pinned at5.15.202.1and no kernel-upgrade PR has been opened. This is a minimal-diff CVE backport (6.patchfiles + 6 lines inkernel.spec%prep+ 6PatchN:lines +Release: 1 → 2+ one%changelogblock). Once the Mariner 2.0 autopatcher catches up to5.15.204.1+, these patches will be naturally superseded.Empirical evidence
Positive control (vulnerable behaviour on the marketplace image): Mariner 2.0 marketplace VM (
MicrosoftCBLMariner:cbl-mariner:cbl-mariner-2-gen2:latest, Standard_F16as_v6, eastus). Running kernel:5.15.202.1-1.cm2. Published Theori PoC adapted for Python 3.9 (libcsplice()via ctypes;os.spliceis Python 3.10+). Run asazureuser(UID 1000, 4-digit).Every run:
getpwnam('azureuser').pw_uid = 0after splicing 4 bytes of AAD into the page-cache copy of/etc/passwd.Static fix-content corroboration:
rolling-lts/mariner-2/5.15.204.1inmicrosoft/CBL-Mariner-Linux-Kernelalready contains all six patches above.crypto/algif_aead.cshrinks 605 → 486 lines (-119) between the5.15.202.1and5.15.204.1tags — exactly the contour of the upstreamRevert to operating out-of-placeseries.api.github.com/repos/microsoft/CBL-Mariner-Linux-Kernel/commits/<sha>.git.kernel.org/pub/scm/linux/security/vulns.git/.../CVE-2026-31431.jsonlists5.15.204as theunaffectedlower bound for the 5.15.y line.Mariner 2.0 EOL caveat
AKS support for Mariner 2.0 ended 2025-11-30 per https://learn.microsoft.com/en-us/azure/azure-linux/support-cycle. The 2.0 branch still receives kernel auto-upgrades and this backport is intended for non-AKS Mariner 2.0 consumers (Azure Linux 2.0 VMs, pinned build pipelines, on-prem images). Please advise if priority differs.
Source-server upload
SPECS/kernel/0001-...patchthrough0006-...patchare added underSPECS/kernel/. Per CONTRIBUTING.md: "Uploading to the source server can only be accomplished by a CBL-Mariner developer." I cannot perform that upload; please request whichever maintainer owns the Mariner-2.0 spec to flush these to the source server.🤖 Generated with Claude Code