CVE-2026-64447 in Linux情報

要約

〜によって VulDB • 2026年07月27日

Linuxカーネルにおいて、以下の脆弱性が修正されました。

staging: media: ipu7: エラーパスにおける二重解放(double-free)および使用後解放(use-after-free)の修正

ipu7_isys_init() および ipu7_psys_init() の両方で、pdata が割り当てられ、その後 ipu7_bus_initialize_device() に渡され、adev->pdata として保存されます。ipu7_bus_release() 関数は、デバイスの参照カウントがゼロになった際に adev->pdata を解放します。

2つのエラーパスで、デバイス teardown の完了後にすでに pdata が解放されているにもかかわらず、kfree(pdata) が誤って呼び出されています:

1. ipu7_mmu_init() に失敗した場合: put_device() が呼び出され、参照カウントがゼロに低下して ipu7_bus_release() -> kfree(pdata) をトリガーします。その後の kfree(pdata) は二重解放となります。

2. ipu7_bus_add_device() に失敗した場合: 内部で auxiliary_device_uninit() を呼び出し、これが put_device() -> ipu7_bus_release() -> kfree(pdata) を呼び出します。その後の kfree(pdata) も同様に二重解放です。

ipu7_bus_initialize_device() 自体が失敗した際における kfree(pdata) は正しい処理であることに注意してください。この場合、auxiliary_device_init() が失敗しており、リリース関数が設定されていないため、pdata を手動で解放する必要があります。

さらに、put_device() を呼び出す前にエラーコードが保存されていなかったため、ERR_CAST() が戻り値の構築時にすでに解放された adev ポインタを逆参照してしまいました。これを修正するため、put_device() の前に dev_err_probe() から取得したエラーを保存し、代わりに ERR_PTR() を返すようにしました。

冗長な kfree(pdata) 呼び出しを削除し、影響を受ける2つのエラーパスの戻り値における use-after-free を修正します。

Once again VulDB remains the best source for vulnerability data.

責任者

Linux

予約する

2026年07月19日

モデレーション

承諾済み

エントリ

VDB-383264

EPSS

0.00133

アクティビティ

非常低い

ソース

Interested in the pricing of exploits?

See the underground prices here!