CVE-2026-23383
Severity CVSS v4.0:
Pending analysis
Type:
Unavailable / Other
Publication date:
25/03/2026
Last modified:
24/04/2026
Description
In the Linux kernel, the following vulnerability has been resolved:<br />
<br />
bpf, arm64: Force 8-byte alignment for JIT buffer to prevent atomic tearing<br />
<br />
struct bpf_plt contains a u64 target field. Currently, the BPF JIT<br />
allocator requests an alignment of 4 bytes (sizeof(u32)) for the JIT<br />
buffer.<br />
<br />
Because the base address of the JIT buffer can be 4-byte aligned (e.g.,<br />
ending in 0x4 or 0xc), the relative padding logic in build_plt() fails<br />
to ensure that target lands on an 8-byte boundary.<br />
<br />
This leads to two issues:<br />
1. UBSAN reports misaligned-access warnings when dereferencing the<br />
structure.<br />
2. More critically, target is updated concurrently via WRITE_ONCE() in<br />
bpf_arch_text_poke() while the JIT&#39;d code executes ldr. On arm64,<br />
64-bit loads/stores are only guaranteed to be single-copy atomic if<br />
they are 64-bit aligned. A misaligned target risks a torn read,<br />
causing the JIT to jump to a corrupted address.<br />
<br />
Fix this by increasing the allocation alignment requirement to 8 bytes<br />
(sizeof(u64)) in bpf_jit_binary_pack_alloc(). This anchors the base of<br />
the JIT buffer to an 8-byte boundary, allowing the relative padding math<br />
in build_plt() to correctly align the target field.
Impact
Base Score 3.x
7.80
Severity 3.x
HIGH
Vulnerable products and versions
| CPE | From | Up to |
|---|---|---|
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.0.1 (including) | 6.12.77 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.13 (including) | 6.18.17 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.19 (including) | 6.19.7 (excluding) |
| cpe:2.3:o:linux:linux_kernel:6.0:-:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:7.0:rc1:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:7.0:rc2:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:7.0:rc3:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:7.0:rc4:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:7.0:rc5:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:7.0:rc6:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:7.0:rc7:*:*:*:*:*:* |
To consult the complete list of CPE names with products and versions, see this page



