Skip to content

fix(talos): bump Talos to v1.13.6 (CVE-2026-53359) - #3240

Merged
Aleksei Sviridkin (lexfrei) merged 1 commit into
mainfrom
security/cve-2026-53359-bake-kvm-nested-uki
Jul 10, 2026
Merged

fix(talos): bump Talos to v1.13.6 (CVE-2026-53359)#3240
Aleksei Sviridkin (lexfrei) merged 1 commit into
mainfrom
security/cve-2026-53359-bake-kvm-nested-uki

Conversation

@lexfrei

@lexfrei Aleksei Sviridkin (lexfrei) commented Jul 8, 2026

Copy link
Copy Markdown
Contributor

What this PR does

Bumps the platform Talos profiles from v1.13.5 to v1.13.6.

CVE-2026-53359 and CVE-2026-46113 are related KVM x86 shadow-paging use-after-free bugs that let a guest escape to the host, and the fix is complete only once both upstream patches (81ccda30b4e8, 0cb2af2ea66a) are applied. On the 6.18 stable line CVE-2026-46113 landed in 6.18.30 and CVE-2026-53359 in 6.18.38. Talos v1.13.5 runs Linux 6.18.36, so it carries only the first of the two. Talos v1.13.6 runs Linux 6.18.38 and carries both.

Nested virtualization stays enabled. The bugs are fixed in the kernel, so there is no reason to take the feature away from workloads that rely on it — bumping the kernel is the complete fix.

Profiles are regenerated with hack/gen-profiles.sh v1.13.6. Alongside the Talos version and the installer reference, this refreshes the pinned system-extension digests: the firmware extensions move from the 20260519 to the 20260622 build, and intel-ucode keeps its 20260512 tag but resolves to a new digest because upstream re-pushed that tag as an OCI image index (identical config and layer blobs underneath).

References: Talos v1.13.6 release notes (Linux: 6.18.38)

Screenshots

Not applicable, no UI changes.

Release note

fix(talos): bump Talos Linux to v1.13.6, which ships Linux 6.18.38 with the kernel fixes for the CVE-2026-53359 and CVE-2026-46113 KVM guest-to-host escapes

@coderabbitai

coderabbitai Bot commented Jul 8, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

This PR bumps the Talos profile version from v1.13.5 to v1.13.6 across six profile YAML files (initramfs, installer, iso, kernel, metal, nocloud). It updates baseInstaller.imageRef and all systemExtensions imageRef entries with new tags and SHA256 digests.

Changes

Talos v1.13.6 image profile bump

Layer / File(s) Summary
Installer and boot-media profiles
packages/core/talos/images/talos/profiles/installer.yaml, packages/core/talos/images/talos/profiles/iso.yaml, packages/core/talos/images/talos/profiles/initramfs.yaml, packages/core/talos/images/talos/profiles/kernel.yaml
Version bumped to v1.13.6; baseInstaller.imageRef and all systemExtensions imageRefs updated with new tags/digests.
Metal and nocloud profiles
packages/core/talos/images/talos/profiles/metal.yaml, packages/core/talos/images/talos/profiles/nocloud.yaml
Version bumped to v1.13.6; baseInstaller.imageRef and all systemExtensions imageRefs updated with new tags/digests.

Estimated code review effort: 1 (Trivial) | ~5 minutes

Possibly related PRs

  • cozystack/cozystack#1527: Both PRs bump Talos version and refresh baseInstaller/systemExtensions imageRefs across the same profile files.
  • cozystack/cozystack#3008: Both PRs perform the same profile version and imageRef bump pattern for a different version range.

Suggested reviewers: kvaps, lllamnyp

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately reflects the main change: bumping Talos profiles to v1.13.6 for the CVE mitigation.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch security/cve-2026-53359-bake-kvm-nested-uki

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions github-actions Bot added size/M This PR changes 30-99 lines, ignoring generated files area/platform Issues or PRs related to platform infrastructure (bundle, flux, talos, installer) kind/bug Categorizes issue or PR as related to a bug labels Jul 8, 2026
@lexfrei
Aleksei Sviridkin (lexfrei) marked this pull request as ready for review July 8, 2026 08:56
@gemini-code-assist

Copy link
Copy Markdown
Contributor

Summary of Changes

Hello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request implements a security hardening measure for Talos images to address the 'Januscape' vulnerability (CVE-2026-53359). By baking the necessary kernel arguments directly into the boot assets during the image build process, the changes ensure that nested virtualization is disabled on the host, preventing potential guest-to-host escapes. This approach is necessary because standard machine-config overrides are ineffective for kernel command-line arguments in certain boot configurations.

Highlights

  • Security Mitigation: Disabled KVM nested virtualization by baking kvm_intel.nested=0 and kvm_amd.nested=0 into Talos boot assets to mitigate CVE-2026-53359.
  • Build Process Update: Updated hack/gen-profiles.sh to inject these kernel arguments at image build time, ensuring they are correctly applied to UEFI/systemd-boot environments where machine-config arguments are ignored.
New Features

🧠 You can now enable Memory (public preview) to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console.

Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment Gemini (@gemini-code-assist) Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize the Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counterproductive. You can react with 👍 and 👎 on Gemini (@gemini-code-assist) comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for GitHub and other Google products, sign up here.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

@dosubot dosubot Bot added the security Security-related issues and features label Jul 8, 2026

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request updates the Talos profile generation script (hack/gen-profiles.sh) and regenerates the corresponding profile YAML files (installer.yaml, iso.yaml, metal.yaml, and nocloud.yaml) to disable KVM nested virtualization (kvm_intel.nested=0 and kvm_amd.nested=0) as a mitigation for CVE-2026-53359 (Januscape). This customization is applied to all boot-producing profiles while excluding bare kernel and initramfs outputs. There are no review comments, and I have no feedback to provide.

Important

The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.

@kvaps Andrei Kvapil (kvaps) left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@lexfrei
Aleksei Sviridkin (lexfrei) force-pushed the security/cve-2026-53359-bake-kvm-nested-uki branch 3 times, most recently from 5364552 to af11c41 Compare July 8, 2026 22:51
@lexfrei
Aleksei Sviridkin (lexfrei) force-pushed the security/cve-2026-53359-bake-kvm-nested-uki branch from af11c41 to 8f0e7f0 Compare July 9, 2026 12:09
@github-actions github-actions Bot added size/L This PR changes 100-499 lines, ignoring generated files and removed size/M This PR changes 30-99 lines, ignoring generated files labels Jul 9, 2026
@lexfrei
Aleksei Sviridkin (lexfrei) deleted the security/cve-2026-53359-bake-kvm-nested-uki branch July 9, 2026 12:33
@lexfrei
Aleksei Sviridkin (lexfrei) restored the security/cve-2026-53359-bake-kvm-nested-uki branch July 9, 2026 12:35
@lexfrei Aleksei Sviridkin (lexfrei) changed the title fix(talos): bake KVM nested-virt off into boot assets (CVE-2026-53359) fix(talos): bump Talos to v1.13.6 (CVE-2026-53359) Jul 9, 2026

@IvanHunters IvanHunters left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. Clean security bump to Talos v1.13.6 closing CVE-2026-53359 (and CVE-2026-46113). All 6 profiles regenerated consistently via gen-profiles.sh; extension digests and firmware build coherent. Nested virt correctly left enabled: the fix is in the kernel, disabling the feature would only mask the symptom. No upgrade/fresh-install impact (build-time image generation only).

@IvanHunters
IvanHunters force-pushed the security/cve-2026-53359-bake-kvm-nested-uki branch from 8f0e7f0 to b384980 Compare July 9, 2026 17:12
IvanHunters added a commit that referenced this pull request Jul 9, 2026
…workers (#3254)

## What this PR does

The in-sandbox Talos image cache added in #3244 is unreachable by the
tenant workers it was meant to serve, so it makes the
`kubernetes-latest` / `kubernetes-previous` e2e tests fail
deterministically instead of relieving the intermittent public-factory
flake it targets (#3231). Every branch off current `main` inherits this
— for example #3240 has failed its tenant-Kubernetes e2e repeatedly for
this reason alone, despite being unrelated (it only touches host boot
assets).

Root cause: tenant namespaces run under a default-deny Cilium egress
installed by the tenant chart. A worker's CDI importer is allowed to
reach the outside world (so the public factory works) and kube-dns (so
the name resolves), but nothing permits egress to an arbitrary
`kube-system` Service. The importer therefore resolves
`talos-image-cache.kube-system.svc` yet its TCP connect to the ClusterIP
is silently dropped (`dial tcp <clusterip>:80: i/o timeout`), the
DataVolume import never starts, the worker VM stays `DataVolumeError`,
and no tenant node joins within the 12-minute deadline. #3244's
readiness gate never caught this because it probed the server over
`localhost` inside the serve Pod, which passes regardless of cross-Pod
reachability.

Two changes:

- Ship a tightly-scoped `CiliumClusterwideNetworkPolicy` that lets
importer Pods in `tenant-test` egress to the mirror Pod in
`kube-system`. Cilium unions allow rules, so this only adds a hole;
scoping it to a namespace that is already default-deny egress means it
never flips another namespace's posture, and the mirror Pod needs no
ingress rule because no ingress policy selects it. The policy is applied
at point-of-use (not with the rest of the mirror manifest, which is
applied before Cilium's CRDs exist).
- Replace the localhost range-probe with one that faces the exact same
network path as a real importer: a throwaway Pod in the tenant
namespace, labelled `cdi.kubevirt.io=importer`, that fetches the seeded
image from the Service ClusterIP with a Range request and must get a
`206`. Tenants are pointed at the mirror only when that end-to-end check
passes; otherwise the harness falls back to the public factory. This
restores the invariant #3244 intended — the mirror can only help, never
make CI worse.

Not a retry/timeout bump: it fixes the real network path and adds a
genuine reachability gate.

### Screenshots

N/A — CI-only change, no user-facing surface.

### Release note

```release-note
test(e2e): make the in-sandbox Talos image cache reachable by tenant Kubernetes workers, fixing deterministic kubernetes-* e2e failures (#3231)
```


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **New Features**
* Updated Talos image cache e2e selection to run a tenant-scoped
reachability probe to the local mirror and require HTTP byte-range
support (`206`) before using it.
* If the probe fails or does not confirm byte-range behavior, the flow
now reliably falls back to the public Talos image source.
* Added CI-only tenant egress controls to allow importer Pods to reach
the mirror Service.
* **Documentation**
* Expanded e2e guidance to clarify the mirror is best-effort and that
fallback happens at probe time.
* **Tests**
* Added a new Bats suite covering manifest splitting, policy wiring,
probe overrides, and strict `206` gating/fallback scenarios.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Talos v1.13.5 ships Linux 6.18.36, which carries the fix for
CVE-2026-46113 but not the one for CVE-2026-53359. The two are related
KVM x86 shadow-paging bugs allowing a guest to escape to the host, and
both patches are needed for the mitigation to hold. Talos v1.13.6 ships
Linux 6.18.38, the first release on the 6.18 stable line that has both.

Profiles regenerated with hack/gen-profiles.sh v1.13.6. Alongside the
Talos version and the installer reference, this refreshes the pinned
system-extension digests: the firmware extensions move from the 20260519
to the 20260622 build, and intel-ucode stays on its 20260512 tag but
resolves to a new digest because upstream re-pushed that tag.

Assisted-By: Claude <noreply@anthropic.com>
Signed-off-by: Aleksei Sviridkin <f@lex.la>
@lexfrei
Aleksei Sviridkin (lexfrei) force-pushed the security/cve-2026-53359-bake-kvm-nested-uki branch from b384980 to 3e9b560 Compare July 9, 2026 17:58
@lexfrei
Aleksei Sviridkin (lexfrei) merged commit a3829ab into main Jul 10, 2026
15 checks passed
@lexfrei
Aleksei Sviridkin (lexfrei) deleted the security/cve-2026-53359-bake-kvm-nested-uki branch July 10, 2026 01:30
myasnikovdaniil added a commit that referenced this pull request Jul 10, 2026
Reconciles the talos-image-cache conflicts created when #3254 merged to
main: keep the Chainsaw _lib/ port (hack/e2e-chainsaw/_lib/talos-image-cache.sh,
a superset of #3254's logic + the node-join diagnose helper), drop the
BATS-era hack/e2e-apps/talos-image-cache.sh, and keep the _lib/-path
versions of the mirror manifest, install bats, and unit test. Also picks
up main's zizmor action-pinning (#3223, unblocks pre-commit/zizmor) and
Talos v1.13.6 (#3240).

Assisted-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Signed-off-by: Myasnikov Daniil <myasnikovdaniil2001@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/platform Issues or PRs related to platform infrastructure (bundle, flux, talos, installer) kind/bug Categorizes issue or PR as related to a bug security Security-related issues and features size/L This PR changes 100-499 lines, ignoring generated files

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants