【活用ガイド】

JVNDB-2026-032023

LinuxのLinux Kernelにおけるリソースのロックに関する脆弱性

概要

Linuxカーネルにおいて、以下の脆弱性が修正されました。gpio: eic-sprd: irq起動パスでraw_spinlock_tを使用するsprd_eic_irq_unmask()はGPIO IRQを有効化し、その後sprd_eic_update()を通じてコントローラーの状態を更新します。sprd_eic_update()はspin_lock_irqsave()でsprd_eic->lockを取得します。このコールバックは、要求されたIRQを設定する際のirq_startup()から呼び出されることがあります。このパスはスリープ不可ですが、PREEMPT_RT環境下では通常のspinlock_tがスリープ可能なロックになるという問題があります。この問題は静的解析ツールによって検出され、その後、現在のツリーに対して手動でレビューが行われました。PoCはrequest_threaded_irq() -> __setup_irq() -> irq_startup() -> sprd_eic_irq_unmask() -> sprd_eic_update()という経路を維持し、元のspin_lock_irqsave(&sprd_eic->lock)でのロック取得を利用しました。Lockdepは以下のようなエラーを報告しました。 BUG: sleeping function called from invalid context hardirqs last disabled at ... __setup_irq.constprop.0 ... [vuln_msv] sprd_rt_spin_lock_irqsave+0x1c/0x30 [vuln_msv] sprd_eic_update.constprop.0+0x48/0x90 [vuln_msv] sprd_eic_irq_unmask.constprop.0+0x35/0x50 [vuln_msv] __setup_irq.constprop.0+0xd/0x30 [vuln_msv] Spreadtrum EICコントローラのロックをraw_spinlock_tに変換しました。ロックされたセクションはMMIOレジスタの更新のみを直列化しており、スリープ可能な操作を含まないため、irqchipコールバックではスリープ不可の状態を維持することが適切です。
CVSS による深刻度 (CVSS とは?)

CVSS v3 による深刻度
基本値: 5.5 (警告) [NVD値]
  • 攻撃元区分: ローカル
  • 攻撃条件の複雑さ: 低
  • 攻撃に必要な特権レベル: 低
  • 利用者の関与: 不要
  • 影響の想定範囲: 変更なし
  • 機密性への影響(C): なし
  • 完全性への影響(I): なし
  • 可用性への影響(A): 高
影響を受けるシステム


Linux
  • Linux Kernel 4.17 以上 5.10.261 未満
  • Linux Kernel 5.11 以上 5.15.212 未満
  • Linux Kernel 5.16 以上 6.1.178 未満
  • Linux Kernel 6.13 以上 6.18.39 未満
  • Linux Kernel 6.19 以上 7.1.4 未満
  • Linux Kernel 6.2 以上 6.6.145 未満
  • Linux Kernel 6.7 以上 6.12.96 未満

想定される影響

・当該ソフトウェアが扱う情報について、外部への漏えいは発生しません。
・当該ソフトウェアが扱う情報について、書き換えは発生しません。
・当該ソフトウェアが完全に停止する可能性があります。
対策

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

CWEによる脆弱性タイプ一覧  CWEとは?

  1. 不適切なロック(CWE-667) [NVD評価]
共通脆弱性識別子(CVE)  CVEとは?

  1. CVE-2026-64429
参考情報

  1. National Vulnerability Database (NVD) : CVE-2026-64429
  2. 関連文書 : gpio: eic-sprd: use raw_spinlock_t in the irq startup path - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/e244cd8b51001ba480f274c44dba9002813a4739)
  3. 関連文書 : gpio: eic-sprd: use raw_spinlock_t in the irq startup path - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/4750909a40da9016185e0ac991510a278cecb1e7)
  4. 関連文書 : gpio: eic-sprd: use raw_spinlock_t in the irq startup path - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/6112fba4150039ccd90e29f2d1b788c73ad7b3dd)
  5. 関連文書 : gpio: eic-sprd: use raw_spinlock_t in the irq startup path - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/581ac2ad001ff1128931191f249a7f2074672b7a)
  6. 関連文書 : gpio: eic-sprd: use raw_spinlock_t in the irq startup path - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/5c3c9ec1172a4c3384b8b800b3a8896cc2c1b20e)
  7. 関連文書 : gpio: eic-sprd: use raw_spinlock_t in the irq startup path - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/19d63fd528719ce7d06d9aeb88d25b7d6478198a)
  8. 関連文書 : gpio: eic-sprd: use raw_spinlock_t in the irq startup path - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/90f0109019e6817eb40a486671b7722d1544ae29)
  9. 関連文書 : gpio: eic-sprd: use raw_spinlock_t in the irq startup path - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/96612bf2712cd961dbd9b52f3a9b4ab668f57628)
更新履歴

  • [2026年09月04日]
      掲載