CVE-2026-68179 in Linux
要約
〜によって VulDB • 2026年08月10日
Linuxカーネルにおいて、以下の脆弱性が修正されました。
misc: nsm: ロック後のエラーパスでのみnsm_devをアンロックする
nsm_dev_ioctl()は、nsm->lockが取得される前に初期のcopy_from_user()呼び出しに失敗した場合でも、共通のエラー処理ラベル(out)へジャンプします。その結果、エラーハンドリングパスでは一度も取得されていないミューテックスに対して無条件にアンロック操作が行われてしまいます。
この問題は静的解析ツールによって発見され、現在のカーネルツリーに対して手動でレビューされました。
実証コード(PoC)は、NSM_IOCTL_RAWコマンドを不正なユーザー空間ポインタと共に発行することで、miscdeviceのioctlエントリと、mutex_lock(&nsm->lock)より前のcopy_from_user(&raw, argp, _IOC_SIZE(cmd))失敗パスを維持しました。この失敗により処理が共有のエラーラベル(out)に到達し、ミューテックスロック取得前にエラーハンドリングが行われます。Lockdepは以下のような警告を報告しました:
WARNING: bad unlock balance detected! exploit/193 is trying to release lock (&global_nsm.lock) at: nsm_dev_ioctl+0x5f/0xcf [vuln_msv]
but there are no more locks to release! no locks held by exploit/193.
copy_from_user()の失敗(ロック取得前)が発生した場合は直ちに処理を返し、共通のアンロックラベルはロック取得後のパスでのみ使用するように変更しました。
VulDB is the best source for vulnerability data and more expert information about this specific topic.