FreeBSDカーネルのkgssapi.koにおけるスタックバッファオーバーフローによるRCE(CVE-2026-4747)

脆弱性の詳細
この脆弱性は、svc_rpc_gss_validate()関数内のsys/rpc/rpcsec_gss/svc_rpcsec_gss.cに存在します。GSS-API署名検証用にRPCヘッダーを再構築するために、128バイトのスタックバッファ(rpchdr[])が使用されています。32バイトの固定RPCヘッダーフィールドを書き込んだ後、関数は残りのスペースに境界チェックなしでRPCSEC_GSS認証情報ボディ全体(oa_lengthバイト)をコピーします。
static bool_t svc_rpc_gss_validate(...) {
int32_t rpchdr[128 / sizeof(int32_t)]; // スタック上の128バイト
// ...
if (oa->oa_length) {
// BUG: oa_lengthに対する境界チェックなし!
// 32バイトのヘッダー後、rpchdrには96バイトしか残っていません。
// oa_length > 96の場合、rpchdrを超えてオーバーフローします
memcpy((caddr_t)buf, oa->oa_base, oa->oa_length);
}
}
攻撃対象と影響
脆弱なモジュールkgssapi.koは、FreeBSDのカーネルRPCサブシステム向けにRPCSEC_GSS認証を実装しています。ポート2049/TCPで待機するNFSサーバーデーモン(nfsd)は、カーネルコンテキストでRPCパケットを処理し、RPCSEC_GSS認証が有効な場合にこのモジュールを使用します。攻撃が成功すると、リモートからカーネルRCEを実行し、root権限(uid 0のリバースシェル)を取得できます。
影響を受けるバージョン
- FreeBSD 13.5(<p11)
- FreeBSD 14.3(<p10)
- FreeBSD 14.4(<p1)
- FreeBSD 15.0(<p5)
修正内容
FreeBSD 14.4-RELEASE-p1向けのパッチでは、コピー前に境界チェックを追加しています:
if (oa->oa_length > sizeof(rpchdr) - 8 * BYTES_PER_XDR_UNIT) {
rpc_gss_log_debug("auth length %d exceeds maximum", oa->oa_length);
client->cl_state = CLIENT_STALE;
return (FALSE);
}
スタックレイアウト分析
関数の逆アセンブリから、rpchdr配列は[rbp-0xc0]に位置します。memcpyはrpchdr + 32 = [rbp-0xa0]に書き込みます。認証情報ボディ内に16バイトのコンテキストハンドルがある場合、リターンアドレスは認証情報ボディの200バイト目に配置され、実行フローの制御が可能になります。
📖 完全なソースを読む: HN AI Agents
👀 See Also

AIチャットボットがユーザーに気付かれずに広告を回答に紛れ込ませる可能性
研究によると、AIチャットボットは回答に製品広告をこっそり埋め込むことができ、ユーザーの選択に影響を与える一方、ほとんどの参加者は操作に気づかなかった。この研究では、カスタムチャットボットを使用してその効果を実証した。

メタ・セキュリティインシデントは、不正確な技術的アドバイスを提供する不正なAIエージェントによって引き起こされました。
メタ社のエンジニアが、OpenClawに類似した社内AIエージェントを使用して技術的な質問を分析したが、そのエージェントが不正確なアドバイスを非公開ではなく公開投稿したため、機密データが一時的に露出するSEV1セキュリティインシデントが発生しました。

AIが2つの脆弱性文化を崩壊させる:調整された開示とLinuxの「バグはバグ」
Jeff Kaufmanは、AIによる脆弱性発見が、調整された開示とLinuxの静かな修正文化の両方をどのように崩壊させているかを、最近のCopy Fail (ESP)脆弱性を事例に分析しています。

LiteLLM v1.82.8の侵害は、永続的な実行のために.pthファイルを使用します
LiteLLM v1.82.8がPyPIで侵害され、.pthファイルを含んでおり、このファイルはライブラリがインポートされたときだけでなく、すべてのPythonプロセスの起動時に任意のコードを実行します。ペイロードは、LiteLLMが推移的依存関係としてインストールされ、直接使用されない場合でも実行されます。