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

Linuxカーネルにおいて、arm64のioremap_prot()関数でユーザーメモリタイプが不適切に処理される脆弱性が修正されました。この問題により、PAN(Privileged Access Never)が有効なシステムでカーネルがユーザーマッピングにアクセスするとフォルトが発生する可能性がありました。修正では、ユーザーのpgprot_tからメモリタイプのみを抽出し、適切に処理することで将来的な誤用を防止しています。これにより、安全にカーネルがユーザーメモリにアクセスできるようになりました。

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

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

Publication Date March 25, 2026, midnight
Registration Date April 27, 2026, 11:28 a.m.
Last Update April 27, 2026, 11:28 a.m.
CVSS3.0 : 警告
Score 5.5
Vector CVSS:3.0/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
Affected System
Linux
Linux Kernel 6.0
Linux Kernel 6.0.1 以上 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, 11:28 a.m.

NVD Vulnerability Information
CVE-2026-23346
Summary

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

arm64: io: Extract user memory type in ioremap_prot()

The only caller of ioremap_prot() outside of the generic ioremap()
implementation is generic_access_phys(), which passes a 'pgprot_t' value
determined from the user mapping of the target 'pfn' being accessed by
the kernel. On arm64, the 'pgprot_t' contains all of the non-address
bits from the pte, including the permission controls, and so we end up
returning a new user mapping from ioremap_prot() which faults when
accessed from the kernel on systems with PAN:

| Unable to handle kernel read from unreadable memory at virtual address ffff80008ea89000
| ...
| Call trace:
| __memcpy_fromio+0x80/0xf8
| generic_access_phys+0x20c/0x2b8
| __access_remote_vm+0x46c/0x5b8
| access_remote_vm+0x18/0x30
| environ_read+0x238/0x3e8
| vfs_read+0xe4/0x2b0
| ksys_read+0xcc/0x178
| __arm64_sys_read+0x4c/0x68

Extract only the memory type from the user 'pgprot_t' in ioremap_prot()
and assert that we're being passed a user mapping, to protect us against
any changes in future that may require additional handling. To avoid
falsely flagging users of ioremap(), provide our own ioremap() macro
which simply wraps __ioremap_prot().

Summary

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

arm64: io: Extraer el tipo de memoria de usuario en ioremap_prot()

El único llamador de ioremap_prot() fuera de la implementación genérica de ioremap() es generic_access_phys(), que pasa un valor 'pgprot_t' determinado a partir del mapeo de usuario del 'pfn' objetivo al que accede el kernel. En arm64, el 'pgprot_t' contiene todos los bits no relacionados con la dirección del pte, incluidos los controles de permiso, y así terminamos devolviendo un nuevo mapeo de usuario desde ioremap_prot() que falla cuando se accede desde el kernel en sistemas con PAN:

| No se puede manejar la lectura del kernel desde memoria ilegible en la dirección virtual ffff80008ea89000
| ...
| Rastro de llamada:
| __memcpy_fromio+0x80/0xf8
| generic_access_phys+0x20c/0x2b8
| __access_remote_vm+0x46c/0x5b8
| access_remote_vm+0x18/0x30
| environ_read+0x238/0x3e8
| vfs_read+0xe4/0x2b0
| ksys_read+0xcc/0x178
| __arm64_sys_read+0x4c/0x68

Extraer solo el tipo de memoria del 'pgprot_t' de usuario en ioremap_prot() y afirmar que se nos está pasando un mapeo de usuario, para protegernos contra cualquier cambio futuro que pueda requerir manejo adicional. Para evitar marcar erróneamente a los usuarios de ioremap(), proporcionar nuestra propia macro ioremap() que simplemente envuelve a __ioremap_prot().

Publication Date March 25, 2026, 8:16 p.m.
Registration Date April 27, 2026, 12:18 p.m.
Last Update April 25, 2026, 3:15 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.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