CVE-2026-23383Linux内核在ARM64架构下的BPF JIT实现中存在内存对齐漏洞。由于JIT缓冲区仅请求4字节对齐,而`bpf_plt`结构体中的`target`字段需要8字节对齐,导致在并发更新时可能发生原子撕裂读取。攻击者利用此漏洞可能导致内核跳转到损坏的地址,引发系统崩溃或潜在的权限提升。
该漏洞源于`bpf_jit_binary_pack_alloc`函数中JIT缓冲区的对齐要求仅为4字节(sizeof(u32)),而`struct bpf_plt`包含一个`u64`类型的`target`字段。当基址以0x4或0xc结尾时,相对填充逻辑无法确保`target`落在8字节边界上。在`bpf_arch_text_poke`中通过`WRITE_ONCE`并发更新`target`时,若JIT代码执行`ldr`指令,由于ARM64上64位加载/存储仅在64位对齐时才保证单拷贝原子性,错位的`target`可能导致撕裂读取,使JIT跳转到损坏的地址。