| Title | LinuxのLinux Kernelにおける競合状態に関する脆弱性 |
|---|---|
| Summary | Linuxカーネルにおいて、cxl: nvdimmオブジェクト作成時のnvdimm_busオブジェクトの競合状態が修正されました。cxl-translate.shのユニットテスト実行中に問題が発見され、テストの直前に3秒のスリープを追加することで問題がかなり一貫して再現されることが確認されました。cxl_translateモジュールはcxl_acpiに依存しており、cxl_acpiが削除された後に孤立したnvdimmオブジェクトが再検出される原因となっていました。nvdimm_busオブジェクトはcxl_acpi_probe()が呼ばれる際にcxl_nvbオブジェクトによって登録されます。nvdimm_busオブジェクトが存在しない場合、__nd_device_register()はdev-parentが&nvdimm_bus-devを指している際にNULLポインタ逆参照を引き起こします。このパッチはまた、devm_cxl_add_nvdimm_bridge()がdrivers/cxl/core.cではなくdrivers/cxl/pmem.cから呼ばれるようにした前回の変更に依存しており、その結果cxl_acpiがcxl_pmemに依存することを保証します。修正内容としては、cxl_nvbのprobe_typeをPROBE_FORCE_SYNCHRONOUSに設定し、add_device()呼び出し時にドライバが同期的にプローブされることを保証しています。また、__devm_cxl_add_nvdimm_bridge()にcxl_acpi_probe()の時点でcxl_nvbドライバが接続されていることを確認するチェックを追加しました。devm_cxl_add_nvdimm()内ではnvdimm_busが有効か確認する前にcxl_rootのuport_devロックとcxl_nvb-devロックを取得し、cxl_nvdimmフラグをCXL_NVD_F_INVALIDATEDに設定してcxl_nvdimm_probe()が-EBUSYで終了するようにしています。これにより、cxl_nvdimmデバイスの削除後にnvdimm_busがなくなった孤立したデバイスがプローブされるのを防止しています。 |
| 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 | 4.7 |
|---|---|
| Vector | CVSS:3.0/AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:H |
| Linux |
| Linux Kernel 5.14 |
| Linux Kernel 5.14.1 以上 6.18.17 未満 |
| Linux Kernel 6.19 以上 6.19.7 未満 |
| Linux Kernel 7.0 |
| No | Changed Details | Date of change |
|---|---|---|
| 1 | [2026年04月27日] 掲載 |
April 27, 2026, 11:28 a.m. |
| Summary | In the Linux kernel, the following vulnerability has been resolved: cxl: Fix race of nvdimm_bus object when creating nvdimm objects Found issue during running of cxl-translate.sh unit test. Adding a 3s [ 192.884510] BUG: kernel NULL pointer dereference, address: 000000000000006c This patch also relies on the previous change where 1. Set probe_type of cxl_nvb to PROBE_FORCE_SYNCHRONOUS to ensure the The removal of cxl_nvdimm devices should prevent any orphaned devices [ dj: Fixed 0-day reported kdoc issue. ] |
|---|---|
| Summary | En el kernel de Linux, la siguiente vulnerabilidad ha sido resuelta: cxl: Corrige la condición de carrera del objeto nvdimm_bus al crear objetos nvdimm Se encontró el problema durante la ejecución de la prueba unitaria cxl-translate.sh. Añadir un retardo de 3s justo antes de la prueba parece hacer que el problema se reproduzca de forma bastante consistente. El módulo cxl_translate tiene una dependencia de cxl_acpi y provoca que los objetos nvdimm huérfanos se vuelvan a sondear después de que se elimine cxl_acpi. El objeto nvdimm_bus es registrado por el objeto cxl_nvb cuando se llama a cxl_acpi_probe(). Al faltar el objeto nvdimm_bus, __nd_device_register() activará una desreferencia de puntero NULL al acceder a dev->parent que apunta a &nvdimm_bus->dev. [ 192.884510] BUG: desreferencia de puntero NULL del kernel, dirección: 000000000000006c Este parche también se basa en el cambio anterior donde se llama a devm_cxl_add_nvdimm_bridge() desde drivers/cxl/pmem.c en lugar de drivers/cxl/core.c para asegurar la dependencia de cxl_acpi en cxl_pmem. 1. Establecer probe_type de cxl_nvb a PROBE_FORCE_SYNCHRONOUS para asegurar que el controlador sea sondeado sincrónicamente cuando se llama a add_device(). La eliminación de dispositivos cxl_nvdimm debería evitar que cualquier dispositivo huérfano se sondee una vez que el nvdimm_bus haya desaparecido. [ dj: Se corrigió el problema de kdoc reportado el día 0. ] |
| Publication Date | March 25, 2026, 8:16 p.m. |
| Registration Date | April 27, 2026, 12:18 p.m. |
| Last Update | April 25, 2026, 3:08 a.m. |
| Configuration1 | or higher | or less | more than | less than | |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.14.1 | 6.18.17 | |||
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.19 | 6.19.7 | |||
| cpe:2.3:o:linux:linux_kernel:5.14:-:*:*:*:*:*:* | |||||
| 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:*:*:*:*:*:* | |||||