In the Linux kernel, the following vulnerability has been resolved:
x86/Kconfig: make CFI_AUTO_DEFAULT depend on !RUST or Rust >= 1.88
Calling core::fmt::write() from rust code while FineIBT is enabled results in a kernel panic:
[ 4614.199779] kernel BUG at arch/x86/kernel/cet.c:132! [ 4614.205343] Oops: invalid opcode: 0000 [#1] PREEMPT SMP NOPTI [ 4614.211781] CPU: 2 UID: 0 PID: 6057 Comm: dmabuf_dump Tainted: G U O 6.12.17-android16-0-g6ab38c534a43 #1 9da040f27673ec3945e23b998a0f8bd64c846599 [ 4614.227832] Tainted: [U]=USER, [O]=OOT_MODULE [ 4614.241247] RIP: 0010:do_kernel_cp_fault+0xea/0xf0 ... [ 4614.398144] RIP: 0010:_RNvXs5_NtNtNtCs3o2tGsuHyou_4core3fmt3num3impyNtB9_7Display3fmt+0x0/0x20 [ 4614.407792] Code: 48 f7 df 48 0f 48 f9 48 89 f2 89 c6 5d e9 18 fd ff ff 0f 1f 84 00 00 00 00 00 f3 0f 1e fa 41 81 ea 14 61 af 2c 74 03 0f 0b 90 <66> 0f 1f 00 55 48 89 e5 48 89 f2 48 8b 3f be 01 00 00 00 5d e9 e7 [ 4614.428775] RSP: 0018:ffffb95acfa4ba68 EFLAGS: 00010246 [ 4614.434609] RAX: 0000000000000000 RBX: 0000000000000010 RCX: 0000000000000000 [ 4614.442587] RDX: 0000000000000007 RSI: ffffb95acfa4ba70 RDI: ffffb95acfa4bc88 [ 4614.450557] RBP: ffffb95acfa4bae0 R08: ffff0a00ffffff05 R09: 0000000000000070 [ 4614.458527] R10: 0000000000000000 R11: ffffffffab67eaf0 R12: ffffb95acfa4bcc8 [ 4614.466493] R13: ffffffffac5d50f0 R14: 0000000000000000 R15: 0000000000000000 [ 4614.474473] ? __cfi__RNvXs5_NtNtNtCs3o2tGsuHyou_4core3fmt3num3impyNtB9_7Display3fmt+0x10/0x10 [ 4614.484118] ? _RNvNtCs3o2tGsuHyou_4core3fmt5write+0x1d2/0x250
This happens because core::fmt::write() calls core::fmt::rt::Argument::fmt(), which currently has CFI disabled:
library/core/src/fmt/rt.rs: 171 // FIXME: Transmuting formatter in new and indirectly branching to/calling 172 // it here is an explicit CFI violation. 173 #[allow(inline_no_sanitize)] 174 #[no_sanitize(cfi, kcfi)] 175 #[inline] 176 pub(super) unsafe fn fmt(&self, f: &mut Formatter<'_>) -> Result {
This causes a Control Protection exception, because FineIBT has sealed off the original function's endbr64.
This makes rust currently incompatible with FineIBT. Add a Kconfig dependency that prevents FineIBT from getting turned on by default if rust is enabled.
[ Rust 1.88.0 (scheduled for 2025-06-26) should have this fixed [1], and thus we relaxed the condition with Rust >= 1.88.
When `objtool` lands checking for this with e.g. [2], the plan is to ideally run that in upstream Rust's CI to prevent regressions early [3], since we do not control `core`'s source code.
Alice tested the Rust PR backported to an older compiler.
Peter would like that Rust provides a stable `core` which can be pulled into the kernel: "Relying on that much out of tree code is 'unfortunate'".
- Miguel ]
[ Reduced splat. - Miguel ]
CVSS Details
- CVSS 3.1 Base Score: 5.5
- CVSS 3.1 Vector: (CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H)
Covered by Rapid7
| Product | Vendor Advisory | Solution File | Added | Published |
|---|---|---|---|---|
| Amazon_linux_2023 | — | Upgrade kernel-tools-debuginfoUpgrade kernel6.12-debuginfo-common-x86_64Upgrade kernel-libbpfUpgrade bpftoolUpgrade kernel-libbpf-debuginfoUpgrade perf6.12-debuginfoUpgrade kernel-develUpgrade kernel-libbpf-staticUpgrade kernel-tools-develUpgrade kernel-livepatch-6.12.31-35.92Upgrade python3-perf6.12Upgrade kernel-toolsUpgrade kernel6.12-debuginfo-common-aarch64Upgrade perf6.12Upgrade python3-perf6.12-debuginfoUpgrade kernel6.12Upgrade kernel-headersUpgrade kernel-libbpf-develUpgrade kernel-modules-extra-commonUpgrade kernel6.12-debuginfoUpgrade bpftool-debuginfoUpgrade kernel6.12-modules-extra | Aug 5, 2025 | Jun 18, 2025 |
| Debian | — | No solution existsUpgrade linux | Jun 20, 2025 | Jun 18, 2025 |
| Ubuntu | — | Upgrade linux-image-generic-6.14Upgrade linux-image-raspi-6.14Upgrade linux-image-gcp-64kUpgrade linux-image-gcpUpgrade linux-image-realtimeUpgrade linux-image-virtual-6.14Upgrade linux-image-virtual-hwe-24.04Upgrade linux-image-oracle-64k-6.14Upgrade linux-image-oracle-64kUpgrade linux-image-gcp-64k-6.14Upgrade linux-image-generic-64k-6.14Upgrade linux-image-6.14.0-1013-aws-64kUpgrade linux-image-generic-hwe-24.04Upgrade linux-image-oem-24.04aUpgrade linux-image-realtime-hwe-24.04Upgrade linux-image-6.14.0-1013-oracleUpgrade linux-image-realtime-6.14Upgrade linux-image-aws-6.14Upgrade linux-image-raspiUpgrade linux-image-6.14.0-1013-oracle-64kUpgrade linux-image-6.14.0-1013-awsUpgrade linux-image-aws-64kUpgrade linux-image-6.14.0-32-generic-64kUpgrade linux-image-azureUpgrade linux-image-awsUpgrade linux-image-6.14.0-1012-oemUpgrade linux-image-gcp-6.14Upgrade linux-image-oem-24.04cUpgrade linux-image-6.14.0-1012-realtimeUpgrade linux-image-aws-64k-6.14Upgrade linux-image-oem-24.04bUpgrade linux-image-6.14.0-1016-gcpUpgrade linux-image-generic-64kUpgrade linux-image-genericUpgrade linux-image-6.14.0-1014-raspiUpgrade linux-image-oracleUpgrade linux-image-6.14.0-1012-azureUpgrade linux-image-generic-64k-hwe-24.04Upgrade linux-image-oracle-6.14Upgrade linux-image-oem-24.04Upgrade linux-image-virtualUpgrade linux-image-6.14.0-32-genericUpgrade linux-image-azure-6.14Upgrade linux-image-oem-6.14Upgrade linux-image-6.14.0-1016-gcp-64k | Jun 26, 2025 | Jun 18, 2025 |
Prioritise with Active Threat Intelligence
With curated Threat Intelligence, you can see which vulnerabilities truly put you at risk, prioritize what matters most, and act before attackers do.
Explore Intelligence Hub