CVE-2023-53634: bpf, arm64: Fixed a BTI error on returning to patched function
In the Linux kernel, the following vulnerability has been resolved:
bpf, arm64: Fixed a BTI error on returning to patched function
When BPF_TRAMP_F_CALL_ORIG is set, BPF trampoline uses BLR to jump
back to the instruction next to call site to call the patched function.
For BTI-enabled kernel, the instruction next to call site is usually
PACIASP, in this case, it's safe to jump back with BLR. But when
the call site is not followed by a PACIASP or bti, a BTI exception
is triggered.
Here is a fault log:
Unhandled 64-bit el1h sync exception on CPU0, ESR 0x0000000034000002 -- BTI
CPU: 0 PID: 263 Comm: test_progs Tainted: GF
Hardware name: linux,dummy-virt (DT)
pstate: 40400805 (nZcv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=-c)
pc : bpf_fentry_test1+0xc/0x30
lr : bpf_trampoline_6442573892_0+0x48/0x1000
sp : ffff80000c0c3a50
x29: ffff80000c0c3a90 x28: ffff0000c2e6c080 x27: 0000000000000000
x26: 0000000000000000 x25: 0000000000000000 x24: 0000000000000050
x23: 0000000000000000 x22: 0000ffffcfd2a7f0 x21: 000000000000000a
x20: 0000ffffcfd2a7f0 x19: 0000000000000000 x18: 0000000000000000
x17: 0000000000000000 x16: 0000000000000000 x15: 0000ffffcfd2a7f0
x14: 0000000000000000 x13: 0000000000000000 x12: 0000000000000000
x11: 0000000000000000 x10: ffff80000914f5e4 x9 : ffff8000082a1528
x8 : 0000000000000000 x7 : 0000000000000000 x6 : 0101010101010101
x5 : 0000000000000000 x4 : 00000000fffffff2 x3 : 0000000000000001
x2 : ffff8001f4b82000 x1 : 0000000000000000 x0 : 0000000000000001
Kernel panic - not syncing: Unhandled exception
CPU: 0 PID: 263 Comm: test_progs Tainted: GF
Hardware name: linux,dummy-virt (DT)
Call trace:
dump_backtrace+0xec/0x144
show_stack+0x24/0x7c
dump_stack_lvl+0x8c/0xb8
dump_stack+0x18/0x34
panic+0x1cc/0x3ec
__el0_error_handler_common+0x0/0x130
el1h_64_sync_handler+0x60/0xd0
el1h_64_sync+0x78/0x7c
bpf_fentry_test1+0xc/0x30
bpf_fentry_test1+0xc/0x30
bpf_prog_test_run_tracing+0xdc/0x2a0
__sys_bpf+0x438/0x22a0
__arm64_sys_bpf+0x30/0x54
invoke_syscall+0x78/0x110
el0_svc_common.constprop.0+0x6c/0x1d0
do_el0_svc+0x38/0xe0
el0_svc+0x30/0xd0
el0t_64_sync_handler+0x1ac/0x1b0
el0t_64_sync+0x1a0/0x1a4
Kernel Offset: disabled
CPU features: 0x0000,00034c24,f994fdab
Memory Limit: none
And the instruction next to call site of bpf_fentry_test1 is ADD,
not PACIASP:
<bpf_fentry_test1>:
bti c
nop
nop
add w0, w0, #0x1
paciasp
For BPF prog, JIT always puts a PACIASP after call site for BTI-enabled
kernel, so there is no problem. To fix it, replace BLR with RET to bypass
the branch target check.
Security readout for executives and security teams
Plain-English summary
This Linux kernel issue affects ARM64 systems where BPF trampoline return handling can violate Branch Target Identification expectations and trigger a kernel panic. The public record describes a crash condition, not data theft or remote compromise. Business urgency depends on whether affected ARM64 kernels run workloads that allow BPF tracing or related BPF program execution.
Executive priority
Treat this as a targeted kernel stability risk rather than a confirmed active breach issue. Prioritize patch validation for ARM64 Linux fleets, especially shared infrastructure or systems where local users, containers, or observability agents can exercise BPF features.
Technical view
On BTI-enabled ARM64 kernels, BPF trampolines with BPF_TRAMP_F_CALL_ORIG used BLR to return near a patched call site. If the next instruction was not PACIASP or BTI, the branch target check raised a BTI exception and panicked the kernel. The fix replaces BLR with RET to bypass that branch target check.
Likely exposure
Exposure appears limited to Linux ARM64 kernels with BTI enabled and the affected BPF trampoline path. The source lists affected Linux kernel versions including 6.0, 6.1.25, 6.2.12, and 6.3, but version mapping should be confirmed against vendor kernel packages and stable commits.
Exploitation context
No KEV listing, public exploitation evidence, exploit code, or remote attack path is provided in the source bundle. The included fault log shows a kernel panic during BPF test execution through the bpf syscall path, indicating a potential local denial-of-service condition where the relevant BPF functionality is reachable.
Researcher notes
The public record is precise about root cause and fix mechanics but incomplete on exploitability, privilege requirements, and distribution package impact. Avoid assuming remote exploitability. Validate against upstream stable commits and downstream vendor backports before declaring exposure or closure.
Mitigation direction
Apply Linux stable updates containing the referenced fixes for maintained affected branches.
Confirm distribution vendor advisories for exact package versions and backport status.
Restrict unnecessary BPF access according to existing security policy until patched.
Prioritize ARM64 hosts that run tracing, observability, or eBPF-heavy workloads.
Validation and detection
Inventory ARM64 Linux systems and record kernel release plus vendor package version.
Check whether deployed kernels include one of the referenced stable commits or vendor backports.
Review whether BTI is enabled on affected ARM64 platforms.
Assess local BPF access controls and workloads using BPF trampolines or tracing.
Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.
Potential ATT&CK relevance
Conservative CVE-to-ATT&CK context
These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.
ATT&CK lookup starting points
Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.
cve · low confidence lookup
CVE-2023-53634 mapping review
Open the CVE-to-ATT&CK bridge for reviewed, inferred, or future official mappings tied to this CVE.
These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.
0CVSS vectors
3Timeline events
0ADP providers
4Source links
Vulnerability timeline
Timeline events are normalized from CVE metadata, CNA source timelines, ADP timelines, and KEV metadata when present.
CVE reservedCVE Program
The CVE ID was reserved by the assigning CNA.
CVE publishedCVE Program
The CVE record was published.
Oct 7, 2025, 15:19 UTC (UTC+00:00)
CVE updatedCVE Program
The CVE record metadata indicates this as the latest update time.