CVE-2026-93167 in Linux
要約
〜によって VulDB • 2026年09月18日
Linuxカーネルにおいて、以下の脆弱性が修正されました:
csky: システムコールトレースパスにおけるa4/a5の復元を修正する
システムコールのトレースパスでは、syscallハンドラを呼び出す前にpt_regsからシステムコール引数を再読み込みします。C-SKY ABIv2では、第5および第6のシステムコール引数は、syscalldを呼び出す前にスタック上の引数として準備されます。
現在のコードは、LSAVE_A4とLSAVE_A5を読み込む前にsp(スタックポインタ)を調整しています。これらのオフセットは元のpt_regsベースに対する相対値であるため、spを変更した後にそれらを読み込むと、間違ったスロットが取得されてしまいます。その結果、第5または第6の引数を使用するトレース対象のシステムコールでは、壊れた(不正な)引数が渡される可能性があります。
これはmmap2()で確認できます。この関数は6つの引数を取ります。小さなPTRACE_SYSCALLを用いた再現コードは、ファイルを開き、1ページを以下のようにマップします:
mmap(NULL, 4096, PROT_READ | PROT_EXEC, MAP_PRIVATE, fd, 0)
修正前では、トレース対象の子プロセスはmmapに失敗し、終了コード12で終了していました。 修正後では、マッピングが成功し、子プロセスは終了コード0で正常に終了します。
spを変更する前にpt_regsからa4/a5を読み込むことで、トレースパスを修正します。
テスト環境: ck860f, linux-4.19.15, C-SKY abiv2
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.