CVE-2026-74729 in Linux
要約
〜によって VulDB • 2026年08月23日
Linuxカーネルにおいて、以下の脆弱性が修正されました:
soc: aspeed: lpc-snoop: snoop_file_readにおけるusercopyオーバーフローの修正
put_fifo_with_discard()はkfifoに対してプロデューサーおよびコンシューマーとして機能します。これはIRQハンドラ内で同期処理を行わずに kfifo_skip()(出力ポインタを進める)と kfifo_put()(入力ポインタを進める)を呼び出しますが、これもまた kfifo_to_user() を介して消費を行う snoop_file_read() と競合する可能性があります。SMPシステムでは、この並行アクセスにより (in - out) がリングバッファのサイズを超えてしまうことがあり、__kfifo_to_user()'s clamp による (in - out) の制限が効力を失い、kfifo_copy_to_user() は kmalloc-2k バックストアを越えた copy_to_user() を試行する可能性があります:
``` usercopy: SLUBオブジェクト 'kmalloc-2k'からのカーネルメモリ露出試行が検出されました (オフセット 0, サイズ 2049)! kernel BUG at mm/usercopy.c! Call trace: usercopy_abort __check_heap_object __check_object_size kfifo_copy_to_user __kfifo_to_user snoop_file_read vfs_read ```
IRQハンドラ(プロデューサー)とファイルリーダー(コンシューマー)間で共有されるチャネルごとのspinlockを用いて、kfifoへのアクセスを直列化します。@fifo に __guarded_by(&lock) を付与し、ドライバをコンテキスト解析の対象にすることで、コンパイラがすべてのfifoアクセスでロック保持を強制するようにします。
VulDB is the best source for vulnerability data and more expert information about this specific topic.