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

Goal: 1000 CNY · Raised: 1336 CNY

100%

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

CVSS 8.1 · High EPSS 0.16% · P5

Affected Version Matrix 10

VendorProductVersion RangeStatus
LinuxLinux59bec00ace28d565ae0a68b23063ef3b961d82d5< 8093442a2d1d4b42b9340a86023ccb2afb30b93aaffected
59bec00ace28d565ae0a68b23063ef3b961d82d5< d59cc66b702757e3c5a711e78a38583eac0c2738affected
59bec00ace28d565ae0a68b23063ef3b961d82d5< 9edff632ca216169846f8a63a5a3dc467e239c7aaffected
59bec00ace28d565ae0a68b23063ef3b961d82d5< a17dc12bfed8868e6a86f3b45c16065a70641acbaffected
6.9affected
< 6.9unaffected
6.12.93≤ 6.12.*unaffected
6.18.35≤ 6.18.*unaffected
… +2 more rows
Get alerts for future matching vulnerabilitiesLog 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

Affected Products

VendorProductAffected VersionsCPESubscribe
LinuxLinux 59bec00ace28d565ae0a68b23063ef3b961d82d5 ~ 8093442a2d1d4b42b9340a86023ccb2afb30b93a -
LinuxLinux 6.9 -

II. Public POCs for CVE-2026-64235

#POC DescriptionSource LinkShenlong Link
AI-Generated POCPremium

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-642169.8 CRITICALnetfs: Fix potential UAF in netfs_unlock_abandoned_read_pages()
CVE-2026-642329.8 CRITICALblock: recompute nr_integrity_segments in blk_insert_cloned_request
CVE-2026-642558.8 HIGHwifi: iwlwifi: mld: validate sta_mask before ffs() in BA session handlers
CVE-2026-642478.4 HIGHKVM: x86: hyper-v: Bound the bank index when querying sparse banks
CVE-2026-642238.1 HIGHwifi: mac80211: consume only present negotiated TTLM maps
CVE-2026-642267.8 HIGHsched_ext: Avoid UAF in scx_root_enable_workfn() init failure path
CVE-2026-642177.8 HIGHnetfs: Fix overrun check in netfs_extract_user_iter()
CVE-2026-642517.8 HIGHpwrseq: core: fix use-after-free in pwrseq_debugfs_seq_next()
CVE-2026-642217.8 HIGHspi: ti-qspi: fix use-after-free after DMA setup failure
CVE-2026-642187.8 HIGHbatman-adv: bla: fix report_work leak on backbone_gw purge
CVE-2026-642087.5 HIGHcrypto/krb5, rxrpc: Fix lack of pre-decrypt/pre-verify length checks
CVE-2026-642107.5 HIGHnet/mlx5e: xsk: Fix unlocked writing to ICOSQ
CVE-2026-642437.1 HIGHASoC: codecs: simple-mux: Fix enum control bounds check
CVE-2026-642197.0 HIGHdrm/amd/display: Validate payload length and link_index in dc_process_dmub_aux_transfer_as
CVE-2026-642227.0 HIGHocteontx2-pf: avoid double free of pool->stack on AQ init failure
CVE-2026-64225octeontx2-af: CGX: add bounds check to cgx_speed_mbps index
CVE-2026-64227ACPI: driver: Check ACPI_COMPANION() against NULL during probe
CVE-2026-64212wifi: iwlwifi: mld: don't dereference a pointer before NULL checking it
CVE-2026-64211srcu: Don't queue workqueue handlers to never-online CPUs
CVE-2026-64209phy: 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