LinuxのLinux Kernelにおける不特定の脆弱性
タイトル LinuxのLinux Kernelにおける不特定の脆弱性
概要

Linuxカーネルにおいて、以下の脆弱性が修正されました:USBのdummy-hcdにおける割り込み同期エラーの修正です。この修正はdummy-hcdドライバー内の同期エラーを解決します。このエラーには多少複雑な経緯があります。同期機構はコミット7dbd8f4cabd9("USB: dummy-hcd: 誤った同期変更の修正")で導入され、そこではエミュレートされた「割り込み有効」フラグとsynchronize_irq()をエミュレートするコード(すべての現在のハンドラコールバックが終了するまで待機)が追加されました。しかし、エミュレートされた割り込み無効化は遅すぎて、ハンドラコールバックルーチンを含むドライバーがバインド解除され、これ以上コールバックが発生しないと通知された後に実行されていました。コミット4a5d797a9f9c("usb: gadget: dummy_hcd: gadget_setupのgpf修正")は、この問題をdummy_stop()からdummy_pullup()にsynchronize_irq()エミュレーションコードを移動することで修正しようとしました。dummy_pullup()はバインド解除コールバックの前に実行されます。しかしながら、エミュレートされた割り込み無効化が遅すぎるため、まだ競合状態が存在していました。またdummy_pullup()はバインド解除以外の理由で呼び出されることがあり、そこに移動できませんでした。そこでコミット7dc0c55e9f30("USB: UDCコア: udc_async_callbacks gadgetオペレーションの追加")と04145a03db9d("USB: UDC: dummy-hcdでudc_async_callbacksの実装")により、UDCコアがdummy-hcdに対してエミュレートされた割り込みやコールバックを無効にすべき正確なタイミングを通知できるAPIが追加されました。しかし現在の問題は、エミュレートされたsynchronize_irq()が割り込み無効化より先に実行されてしまうことであり、これによりsynchronize_irq()の実行後にもエミュレートされた割り込みが発生する可能性があるため、ガジェットドライバーのバインド解除時にコールバックハンドラーが実行中となる場合がある点です。この問題を修正するために、synchronize_irq()のエミュレーションコードをさらにdummy_udc_async_callbacks()ルーチンに移動しました。このルーチンはエミュレートされた割り込み要求の有効化および無効化を管理しており、これにより同期処理はエミュレートされた割り込みが無効化されて直後に実行されるようになりました。これが正しい動作です。

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

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

公表日 2026年5月8日0:00
登録日 2026年5月18日11:28
最終更新日 2026年5月18日11:28
CVSS3.0 : 重要
スコア 7.8
ベクター CVSS:3.0/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
影響を受けるシステム
Linux
Linux Kernel 5.14 以上 5.15.203 未満
Linux Kernel 5.16 以上 6.1.168 未満
Linux Kernel 6.13 以上 6.18.22 未満
Linux Kernel 6.19 以上 6.19.12 未満
Linux Kernel 6.2 以上 6.6.134 未満
Linux Kernel 6.7 以上 6.12.81 未満
Linux Kernel 7.0
CVE (情報セキュリティ 共通脆弱性識別子)
CWE (共通脆弱性タイプ一覧)
その他
変更履歴
No 変更内容 変更日
1 [2026年05月18日]
  掲載
2026年5月18日11:28

NVD脆弱性情報
CVE-2026-43324
概要

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

USB: dummy-hcd: Fix interrupt synchronization error

This fixes an error in synchronization in the dummy-hcd driver. The
error has a somewhat involved history. The synchronization mechanism
was introduced by commit 7dbd8f4cabd9 ("USB: dummy-hcd: Fix erroneous
synchronization change"), which added an emulated "interrupts enabled"
flag together with code emulating synchronize_irq() (it waits until
all current handler callbacks have returned).

But the emulated interrupt-disable occurred too late, after the driver
containing the handler callback routines had been told that it was
unbound and no more callbacks would occur. Commit 4a5d797a9f9c ("usb:
gadget: dummy_hcd: fix gpf in gadget_setup") tried to fix this by
moving the synchronize_irq() emulation code from dummy_stop() to
dummy_pullup(), which runs before the unbind callback.

There still were races, though, because the emulated interrupt-disable
still occurred too late. It couldn't be moved to dummy_pullup(),
because that routine can be called for reasons other than an impending
unbind. Therefore commits 7dc0c55e9f30 ("USB: UDC core: Add
udc_async_callbacks gadget op") and 04145a03db9d ("USB: UDC: Implement
udc_async_callbacks in dummy-hcd") added an API allowing the UDC core
to tell dummy-hcd exactly when emulated interrupts and their callbacks
should be disabled.

That brings us to the current state of things, which is still wrong
because the emulated synchronize_irq() occurs before the emulated
interrupt-disable! That's no good, beause it means that more emulated
interrupts can occur after the synchronize_irq() emulation has run,
leading to the possibility that a callback handler may be running when
the gadget driver is unbound.

To fix this, we have to move the synchronize_irq() emulation code yet
again, to the dummy_udc_async_callbacks() routine, which takes care of
enabling and disabling emulated interrupt requests. The
synchronization will now run immediately after emulated interrupts are
disabled, which is where it belongs.

公表日 2026年5月8日23:16
登録日 2026年5月9日4:13
最終更新日 2026年5月12日23:10
関連情報、対策とツール
共通脆弱性一覧