CVE-2026-23316
In the Linux kernel, the following vulnerability has been resolved: net: ipv4: fix ARM64 alignment fault in multipath hash seed contains two u32 fields (user_seed and…
Published Mar 25, 2026 · updated Jun 17, 2026 · linux linux kernel
In the Linux kernel, the following vulnerability has been resolved: net: ipv4: fix ARM64 alignment fault in multipath hash seed contains two u32 fields (user_seed and mp_seed), making it an 8-byte structure with a 4-byte alignment requirement. In , the code evaluates the entire struct atomically via : mp_seed = READ_ONCE(net->ipv4.sysctl_fib_multipath_hash_seed).mp_seed; While this silently works on GCC by falling back to unaligned regular loads which the ARM64 kernel tolerates, it causes a fatal kernel panic when compiled with Clang and LTO enabled. Commit e35123d83ee3 ("arm64: lto: Strengthen READ_ONCE() to acquire when CONFIG_LTO=y") strengthens to use Load-Acquire instructions ( / ) to prevent compiler reordering bugs under Clang LTO. Since the macro evaluates the full 8-byte struct, Clang emits a 64-bit instruction. ARM64 architecture strictly requires to be naturally aligned, thus executing it on a 4-byte aligned address triggers a strict Alignment Fault (FSC = 0x21). Fix the read side by moving the directly to the member, which emits a safe 32-bit . Furthermore, Eric Dumazet pointed out that on the entire struct in is also flawed. Analysis shows that Clang splits this 8-byte write into two separate 32-bit instructions. While this avoids an alignment fault, it destroys atomicity and exposes a tear-write vulnerability. Fix this by explicitly splitting the write into two 32-bit operations. Finally, add the missing when reading in to ensure proper pairing and concurrency safety.
Code
The project this record applies to. Exploit listings stay in References.
Timeline
Detection, updates, and resolution for this record.
Mar 25, 2026 · NIST NVD
Detected
In the Linux kernel, the following vulnerability has been resolved: net: ipv4: fix ARM64 alignment fault in multipath hash seed contains two u32 fields (user_seed and mp_seed), making it an 8-byte structure with a 4-byte alignment requirement. In , the code evaluates the entire struct atomically via : mp_seed = READ_ONCE(net->ipv4.sysctl_fib_multipath_hash_seed).mp_seed; While this silently works
Jun 17, 2026 · NIST NVD
Updated
In the Linux kernel, the following vulnerability has been resolved: net: ipv4: fix ARM64 alignment fault in multipath hash seed contains two u32 fields (user_seed and mp_seed), making it an 8-byte structure with a 4-byte alignment requirement. In , the code evaluates the entire struct atomically via : mp_seed = READ_ONCE(net->ipv4.sysctl_fib_multipath_hash_seed).mp_seed; While this silently works
Affected
- cpe linux/linux kernelversion unspecified
- cpe linux/linux kernel6.11
- cpe linux/linux kernel7.0
Sources
- CVE.orgVulnerability recordCVE-2026-23316
Official CVE identifier
cve.org - NIST NVDVulnerability recordCVE-2026-23316
In the Linux kernel, the following vulnerability has been resolved: net: ipv4: fix ARM64 alignment fault in multipath hash seed contains two u32 fields (user_seed and mp_seed), making it an 8-byte structure with a 4-byte alignment require
nvd.nist.gov