Goal Reached Thanks to every supporter — we hit 100%!

Goal: 1000 CNY · Raised: 1359 CNY

100%

CVE-2026-64235— x86/ftrace: Relocate %rip-relative percpu refs in dynamic trampolines

Quick assessment

Affected
Linux Linux
Exploitation
No confirmed in-the-wild exploitation; assess based on exposure
Recommended action
Check the vendor advisory and references for a fixed version. If immediate upgrade is impossible, restrict exposure and increase monitoring.

Linux kernel是美国Linux基金会开源的一款操作系统内核。 Linux kernel 6.9版本存在安全漏洞,该漏洞源于x86/ftrace中动态trampoline的%rip相对percpu引用未在运行时正确重新定位,导致调用深度计数指令访问错误地址,可能允许攻击者触发内核崩溃(拒绝服务)。

CVSS 8.1 · High EPSS 0.57% · P46

Affected Version Matrix 10

VendorProduct Version RangeStatus
Linux Linux 59bec00ace28d565ae0a68b23063ef3b961d82d5< 8093442a2d1d4b42b9340a86023ccb2afb30b93a affected
59bec00ace28d565ae0a68b23063ef3b961d82d5< d59cc66b702757e3c5a711e78a38583eac0c2738 affected
59bec00ace28d565ae0a68b23063ef3b961d82d5< 9edff632ca216169846f8a63a5a3dc467e239c7a affected
59bec00ace28d565ae0a68b23063ef3b961d82d5< a17dc12bfed8868e6a86f3b45c16065a70641acb affected
6.9 affected
< 6.9 unaffected
6.12.93≤ 6.12.* unaffected
6.18.35≤ 6.18.* unaffected
… +2 more rows
Get alerts for future matching vulnerabilities Log in to subscribe

I. Basic Information for CVE-2026-64235

Vulnerability Information

Have questions about the vulnerability? See if Shenlong's analysis helps!
View Shenlong Deep Dive ↗

Although we use advanced large model technology, its output may still contain inaccurate or outdated information.Shenlong tries to ensure data accuracy, but please verify and judge based on the actual situation.

Vulnerability Title
x86/ftrace: Relocate %rip-relative percpu refs in dynamic trampolines
Source: CVE Program / CVE List V5
Vulnerability Description
In the Linux kernel, the following vulnerability has been resolved: x86/ftrace: Relocate %rip-relative percpu refs in dynamic trampolines With CONFIG_CALL_DEPTH_TRACKING enabled on an x86 retbleed-affected platform (eg: Skylake), with retbleed=stuff, registering a dynamic ftrace trampoline crashes on the first call into the traced function: BUG: unable to handle page fault for address: ffff88817ae18880 #PF: supervisor write access in kernel mode #PF: error_code(0x0002) - not-present page PGD 4b53067 P4D 4b53067 PUD 0 Oops: Oops: 0002 [#1] SMP PTI CPU: 3 UID: 0 PID: 187 Comm: usleep Not tainted 7.0.10 #243 PREEMPT(full) Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS Arch Linux 1.17.0-2-2 04/01/2014 Code: 24 78 00 00 00 00 48 89 ea 48 89 54 24 20 48 8b b4 24 b8 00 00 00 48 8b bc 24 b0 00 00 00 48 89 bc 24 80 00 00 00 48 83 ef 05 <65> 48 c1 3d 1f a8 b6 02 05 48 8b 15 f6 00 00 00 4c 89 3c 24 4c 89 Call Trace: <TASK> ? find_held_lock ? exc_page_fault ? lock_release ? __x64_sys_clock_nanosleep ? lockdep_hardirqs_on_prepare ? trace_hardirqs_on __x64_sys_clock_nanosleep do_syscall_64 ? exc_page_fault ? call_depth_return_thunk entry_SYSCALL_64_after_hwframe ... Kernel panic - not syncing: Fatal exception This small reproducer allows to easily trigger the crash: # echo 'p __x64_sys_clock_nanosleep' > /sys/kernel/tracing/kprobe_events # echo 1 > /sys/kernel/tracing/events/kprobes/p___x64_sys_clock_nanosleep_0/enable # usleep 1 Monitoring the crash under GDB points to the exact instruction in charge of incrementing the call depth: sarq $5, %gs:__x86_call_depth(%rip) This instruction matches the one inserted by the ftrace_regs_caller from ftrace_64.S. This emitted code was likely working fine until the introduction of 59bec00ace28 ("x86/percpu: Introduce %rip-relative addressing to PER_CPU_VAR()"): it has made the call depth accounting addressing relative to $rip, instead of being based on an absolute address. As this code exact location depends on where the trampoline lives in memory, the corresponding displacement needs to be adjusted at runtime to actually correctly find the per-cpu __x86_call_depth value, otherwise the targeted address is wrong, leading to the page fault seen above. Fix the %rip-relative displacement of the copied CALL_DEPTH_ACCOUNT instruction (from ftrace_regs_caller) by calling text_poke_apply_relocation(), as it is done for example by the x86 BPF JIT compiler through x86_call_depth_emit_accounting(). This corrects both CALL_DEPTH_ACCOUNT slots, in ftrace_caller and ftrace_regs_caller. [ bp: Massage. ]
Source: CVE Program / CVE List V5
CVSS Information
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
Source: CVE Program / CVE List V5
Vulnerability Type
N/A
Source: CVE Program / CVE List V5
Vulnerability Title
Linux kernel 安全漏洞
Source: CNNVD (China National Vulnerability Database)
Vulnerability Description
Linux kernel是美国Linux基金会开源的一款操作系统内核。 Linux kernel 6.9版本存在安全漏洞,该漏洞源于x86/ftrace中动态trampoline的%rip相对percpu引用未在运行时正确重新定位,导致调用深度计数指令访问错误地址,可能允许攻击者触发内核崩溃(拒绝服务)。
Source: CNNVD (China National Vulnerability Database)
CVSS Information
N/A
Source: CNNVD (China National Vulnerability Database)
Vulnerability Type
N/A
Source: CNNVD (China National Vulnerability Database)

Affected Products

Vendor Product Affected Versions CPE Subscribe
Linux Linux 59bec00ace28d565ae0a68b23063ef3b961d82d5 ~ 8093442a2d1d4b42b9340a86023ccb2afb30b93a -
Linux Linux 6.9 -

II. Public POCs for CVE-2026-64235

# POC Description Source Link Shenlong Link
AI-Generated POC Premium

No public POC found.

Login to generate AI POC

III. Intelligence Information for CVE-2026-64235

请登录查看更多情报信息。

Patches & Fixes for CVE-2026-64235 (4)

Same Patch Batch · Linux · 2026-07-24 · 48 CVEs total

CVE-2026-64216 9.8 CRITICAL netfs: Fix potential UAF in netfs_unlock_abandoned_read_pages()
CVE-2026-64232 9.8 CRITICAL block: recompute nr_integrity_segments in blk_insert_cloned_request
CVE-2026-64255 8.8 HIGH wifi: iwlwifi: mld: validate sta_mask before ffs() in BA session handlers
CVE-2026-64247 8.4 HIGH KVM: x86: hyper-v: Bound the bank index when querying sparse banks
CVE-2026-64223 8.1 HIGH wifi: mac80211: consume only present negotiated TTLM maps
CVE-2026-64226 7.8 HIGH sched_ext: Avoid UAF in scx_root_enable_workfn() init failure path
CVE-2026-64217 7.8 HIGH netfs: Fix overrun check in netfs_extract_user_iter()
CVE-2026-64251 7.8 HIGH pwrseq: core: fix use-after-free in pwrseq_debugfs_seq_next()
CVE-2026-64221 7.8 HIGH spi: ti-qspi: fix use-after-free after DMA setup failure
CVE-2026-64218 7.8 HIGH batman-adv: bla: fix report_work leak on backbone_gw purge
CVE-2026-64208 7.5 HIGH crypto/krb5, rxrpc: Fix lack of pre-decrypt/pre-verify length checks
CVE-2026-64210 7.5 HIGH net/mlx5e: xsk: Fix unlocked writing to ICOSQ
CVE-2026-64243 7.1 HIGH ASoC: codecs: simple-mux: Fix enum control bounds check
CVE-2026-64219 7.0 HIGH drm/amd/display: Validate payload length and link_index in dc_process_dmub_aux_transfer_as
CVE-2026-64222 7.0 HIGH octeontx2-pf: avoid double free of pool->stack on AQ init failure
CVE-2026-64225 octeontx2-af: CGX: add bounds check to cgx_speed_mbps index
CVE-2026-64227 ACPI: driver: Check ACPI_COMPANION() against NULL during probe
CVE-2026-64212 wifi: iwlwifi: mld: don't dereference a pointer before NULL checking it
CVE-2026-64211 srcu: Don't queue workqueue handlers to never-online CPUs
CVE-2026-64209 phy: qcom: qmp-usbc: Fix out-of-bounds array access in dp swing config

Showing top 20 of 48 CVEs. View all on vendor page &rarr; →

IV. Related Vulnerabilities

V. Comments for CVE-2026-64235

No comments yet


Leave a comment