製品・ソフトウェアに関する情報
LinuxのLinux Kernelにおける不特定の脆弱性
Title LinuxのLinux Kernelにおける不特定の脆弱性
Summary

Linuxカーネルにおいて、以下の脆弱性が修正されました。bpf、arm64では、アトミックな破綻を防ぐためにJITバッファの8バイトアラインメントを強制します。struct bpf_pltにはu64型のtargetフィールドが含まれています。現在、BPF JITアロケータはJITバッファに対して4バイト(sizeof(u32))のアラインメントを要求しています。JITバッファの基底アドレスは4バイトアラインメント(例:0x4または0xcで終わる)となることがあり、これによりbuild_plt()内の相対パディングロジックがtargetを8バイト境界に配置できない場合があります。これにより、以下の2つの問題が発生します。1. 構造体を参照するときにUBSANがアライメント違反の警告を報告します。2. より重大な問題として、bpf_arch_text_poke()内でWRITE_ONCE()を介してtargetが同時に更新される一方で、JITされたコードがldr命令を実行します。arm64では64ビットのロード/ストアは64ビット境界にアラインされている場合のみ単一コピーのアトミック性が保証されます。アラインメントがずれたtargetは破損した読み込み(トーン読み込み)を引き起こし、JITが破損したアドレスにジャンプする恐れがあります。この問題はbpf_jit_binary_pack_alloc()における割り当てアラインメント要件を8バイト(sizeof(u64))に引き上げることで修正しました。これによりJITバッファの基底が8バイト境界に固定され、build_plt()内の相対パディング計算によってtargetフィールドを正しくアラインできます。

Possible impacts 当該ソフトウェアが扱う全ての情報が外部に漏れる可能性があります。 また、当該ソフトウェアが扱う全ての情報が書き換えられる可能性があります。 さらに、当該ソフトウェアが完全に停止する可能性があります。 そして、この脆弱性を悪用した攻撃の影響は、他のソフトウェアには及びません。 
Solution

リリース情報、またはパッチ情報が公開されています。参考情報を参照して適切な対策を実施してください。

Publication Date March 25, 2026, midnight
Registration Date April 27, 2026, 10:54 a.m.
Last Update April 27, 2026, 10:54 a.m.
CVSS3.0 : 重要
Score 7.8
Vector CVSS:3.0/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Affected System
Linux
Linux Kernel 6.0
Linux Kernel 6.0.1 以上 6.12.77 未満
Linux Kernel 6.13 以上 6.18.17 未満
Linux Kernel 6.19 以上 6.19.7 未満
Linux Kernel 7.0
CVE (情報セキュリティ 共通脆弱性識別子)
CWE (共通脆弱性タイプ一覧)
その他
Change Log
No Changed Details Date of change
1 [2026年04月27日]
  掲載
April 27, 2026, 10:54 a.m.

NVD Vulnerability Information
CVE-2026-23383
Summary

In the Linux kernel, the following vulnerability has been resolved:

bpf, arm64: Force 8-byte alignment for JIT buffer to prevent atomic tearing

struct bpf_plt contains a u64 target field. Currently, the BPF JIT
allocator requests an alignment of 4 bytes (sizeof(u32)) for the JIT
buffer.

Because the base address of the JIT buffer can be 4-byte aligned (e.g.,
ending in 0x4 or 0xc), the relative padding logic in build_plt() fails
to ensure that target lands on an 8-byte boundary.

This leads to two issues:
1. UBSAN reports misaligned-access warnings when dereferencing the
structure.
2. More critically, target is updated concurrently via WRITE_ONCE() in
bpf_arch_text_poke() while the JIT'd code executes ldr. On arm64,
64-bit loads/stores are only guaranteed to be single-copy atomic if
they are 64-bit aligned. A misaligned target risks a torn read,
causing the JIT to jump to a corrupted address.

Fix this by increasing the allocation alignment requirement to 8 bytes
(sizeof(u64)) in bpf_jit_binary_pack_alloc(). This anchors the base of
the JIT buffer to an 8-byte boundary, allowing the relative padding math
in build_plt() to correctly align the target field.

Summary

En el kernel de Linux, la siguiente vulnerabilidad ha sido resuelta:

bpf, arm64: Forzar alineación de 8 bytes para el búfer JIT para prevenir el desgarro atómico

struct bpf_plt contiene un campo objetivo u64. Actualmente, el asignador JIT de BPF solicita una alineación de 4 bytes (sizeof(u32)) para el búfer JIT.

Debido a que la dirección base del búfer JIT puede estar alineada a 4 bytes (p. ej., terminando en 0x4 o 0xc), la lógica de relleno relativo en build_plt() no logra asegurar que target caiga en un límite de 8 bytes.

Esto lleva a dos problemas:
1. UBSAN informa advertencias de acceso desalineado al desreferenciar la estructura.
2. Más críticamente, target se actualiza concurrentemente a través de WRITE_ONCE() en bpf_arch_text_poke() mientras el código JIT'd ejecuta ldr. En arm64, las cargas/almacenamientos de 64 bits solo se garantiza que sean atómicos de copia única si están alineados a 64 bits. Un target desalineado arriesga una lectura desgarrada, haciendo que el JIT salte a una dirección corrupta.

Solucione esto aumentando el requisito de alineación de asignación a 8 bytes (sizeof(u64)) en bpf_jit_binary_pack_alloc(). Esto ancla la base del búfer JIT a un límite de 8 bytes, permitiendo que las matemáticas de relleno relativo en build_plt() alineen correctamente el campo target.

Publication Date March 25, 2026, 8:16 p.m.
Registration Date April 27, 2026, 12:19 p.m.
Last Update April 25, 2026, 3:42 a.m.
Affected software configurations
Configuration1 or higher or less more than less than
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 6.0.1 6.12.77
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 6.13 6.18.17
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 6.19 6.19.7
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:*:*:*:*:*:*
Related information, measures and tools
Common Vulnerabilities List