Repository navigation
SECURITY: microvm-rootfs: musl 1.2.6-r3 (CVE-2026-107891, regcomp overflows) - #993
Conversation
…rflows) Overlay Alpine v3.24 main's musl and musl-utils 1.2.6-r3 over the 3.24.1 minirootfs base layer's 1.2.6-r2. Every musl through 1.2.6 has the regcomp integer overflows of CVE-2026-107891; Alpine's r3 carries the fix. Same override pattern as openssl and ca-certificates-bundle: the overlay replaces the files and build.sh reconciles the apk db. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info
📝 Walkthrough
Merge Risk: ⚪ Minimal · up to
|
| Check name | Status | Explanation |
|---|---|---|
| Description Check | Check skipped - CodeRabbit’s high-level summary is enabled. | |
| Title check | The title clearly identifies the security change: updating musl to 1.2.6-r3 in microvm-rootfs to address CVE-2026-107891. | |
| Docstring Coverage | No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0… | |
| Linked Issues check | Check skipped because no linked issues were found for this pull request. | |
| Out of Scope Changes check | Check skipped because no linked issues were found for this pull request. |
Full details: Docstring Coverage
-
Explanation
No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0 files. (1 skipped: 1 unsupported.)
✨ Finishing Touches
-
🧪 Generate unit tests (beta)
-
- Commit to this branch
- Create a new PR
-
Comment @coderabbitai help to get the list of available commands.
CVE-2026-107891: integer overflows in musl's
regcomp, in every musl from 0.5.0 through 1.2.6 (oss-security, 2026-10-21). A large or complex regular expression produces undersized heap allocations and then out-of-bounds heap writes: a crash at minimum, possibly code execution. Upstream's fix ships in 1.2.7, which is unreleased. Alpine carries the patch in musl 1.2.6-r3 (aports3.24-stablemain/musl,secfixes: 1.2.6-r3: CVE-2026-107891).What changes
microvm-rootfsis the guest userland for the libkrun microVM, assembled from Alpine 3.24.1's minirootfs. That minirootfs ships musl and musl-utils 1.2.6-r2 on both arches, read fromlib/apk/db/installedin our mirrored tarballs. This PR overlaysmusl-1.2.6-r3andmusl-utils-1.2.6-r3from v3.24 main, using the existing security-override pattern (as for openssl and ca-certificates-bundle):lib/ld-musl-<arch>.so.1(loader and libc in one), itslibc.muslsymlink, and the musl-utils binaries;build.sh's apk-db reconcile moves both recorded versions to 1.2.6-r3, so our component audit reads the patched version.The comment in
build.nclsays to drop both entries oncealpine_releasereaches a minirootfs carrying ≥ 1.2.6-r3.Provenance of the pinned apks
For each arch (x86_64, aarch64) and package:
APKINDEX.tar.gzsignature verifies against Alpine's keys from the minirootfs's/etc/apk/keys(…6165ee59for x86_64,…616ae350for aarch64).C:checksum.gs://minimal-staging-archives/alpine/v3.24/main/<arch>/, created no-clobber, and read back to the same sha256:2e178641…daed8a5e142255d…789c21dabb460bdc…2fbaf4947263d05…2de137caVerification
nickel format --checkandbash -npass, andMINIMAL_SCIENCE_MODE=1 mip dump --packagesresolves the r3 apks on amd64 and arm64.--rebuild:build.shprintedreconciled apk db: musl -> 1.2.6-r3andmusl-utils -> 1.2.6-r3(superseded the base layer).rootfs.imgback withdebugfs, via a temporary uncommitted probe in a separate freshly activated session:/lib/ld-musl-aarch64.so.1hashes to53282acc…cda11793, identical to the loader inside the r3 apk;32377e6d…c4d4a44d;musl 1.2.6-r3andmusl-utils 1.2.6-r3.min check --packages microvm-rootfs: every check passes, standalone tests included, with no Skip.38d022ce…9d72806and r3's is095b047c…dc630de5. CI'sminimal buildbuilds it.Risk and scope
grep/sed/awk, bash=~, or git. Matching untrusted text against a trusted pattern isn't enough. The VM is the trust boundary, so this is guest hygiene rather than a host escape, but it's an out-of-bounds heap write in the guest's only libc, so it's worth closing now.stage0-*bootstrap rungs (stage0-musl-1.1.24,-1.1.24-cc2,-1.2.5, and the musl-built tcc stages) build older musl. They're in the affected range, but they're build-only: no package declares them as a runtime dependency (checked againstmip dump'sruntime_deps). They only run during the toolchain bootstrap, on our own pinned sources, and patching them would rebuild the whole ladder. Not changed here.🤖 Generated with Claude Code
Summary by CodeRabbit