CVE-2026-97993 in Linux情報

要約

〜によって VulDB • 2026年09月25日

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

vhost-vdpa: eventfd_ctx_fdget()のエラーをconfig_ctxにインストールしない

vhost_vdpa_set_config_call()は、eventfd_ctx_fdget()の戻り値をチェックする前にそれをv->config_ctxへswapするため、失敗した場合に一時的にERR_PTRが保持される状態になります:

ctx = fd == VHOST_FILE_UNBIND ? NULL : eventfd_ctx_fdget(fd); swap(ctx, v->config_ctx);

if (!IS_ERR_OR_NULL(ctx)) eventfd_ctx_put(ctx);

if (IS_ERR(v->config_ctx)) {
long ret = PTR_ERR(v->config_ctx);

v->config_ctx = NULL; return ret; }

コミット 0bde59c1723a(「vhost-vdpa: eventfd_ctx_fdget()が失敗した場合に v->config_ctx をNULL に設定する」)により、このクリア処理が追加され、ファイルの残りの部分で依存されている不変条件、「'v->config_ctx' が NULL でない場合は有効とみなす」ということが明確化されました。しかし、swap処理からクリア処理までの間には依然として脆弱なウィンドウが存在し、これを破綻させています。vhost_vdpa_config_cb() はNULLのみをチェックするため、このウィンドウ中に配信されるconfig割り込みはERR_PTRを eventfd_signal() に渡してしまいます。

代わりに、インストールする前にfdを検査してください。これによりウィンドウが閉じられ、vq用call fdに対する同じ失敗処理を vhost_vring_ioctl() が行っている方法と一致します。

また、拒否されたfdによって正常に動作していたconfig割り込みの停止を防ぐ効果もあります。従来では、swapによって生きているコンテキストが置き換えられて解放されていたため、EBADF発生後、ユーザースペースで新しいfdをインストールするまでデバイスから静かにconfig割り込みの配信が止まっていました。

Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.

責任者

Linux

予約する

2026年09月25日

モデレーション

承諾済み

エントリ

VDB-410160

EPSS

0.00000

アクティビティ

非常低い

ソース

Want to stay up to date on a daily basis?

Enable the mail alert feature now!