Googleのセキュリティ研究者がカーネルに脆弱性を発見した Linux 権限昇格の脆弱性(CVE-2025-38236)が存在します。この脆弱性により、Google Chromeで使用されているサンドボックス分離メカニズムを回避し、Chromeのサンドボックス化されたレンダリングプロセス内でコードを実行する際に、カーネルレベルのコード実行が可能になります(例えば、Chromeの別の脆弱性を悪用する場合など)。この問題はカーネルレベルで顕在化します。 Linux 6.9で修正され、カーネルアップデートで修正されました。 Linux バージョン6.1.143、6.6.96、6.12.36、および6.15.5。エクスプロイトのプロトタイプがダウンロード可能です。
この脆弱性は、AF_UNIXソケットで設定可能なMSG_OOBフラグの実装エラーが原因です。MSG_OOB(アウトオブバンド)フラグを使用すると、送信データに追加の1バイトを付加することができ、受信側は残りのデータを受信する前にこの追加バイトを読み取ることができます。このフラグはカーネルに追加されました。 Linux 5.15はOracleからの要望で導入されたものだが、広く普及しなかったため、昨年廃止が提案された。
Chrome のサンドボックス実装では、UNIX ソケット操作と send()/recv() システムコールが許可されていましたが、MSG_OOB フラグは他のオプションと共に許可され、個別にフィルタリングされていませんでした。MSG_OOB 実装のバグにより、特定の一連のシステムコールを実行した後に use-after-free 状態が発生する可能性がありました。char dummy; int socks[2]; socketpair(AF_UNIX, SOCK_STREAM, 0, socks); send(socks[1], "A", 1, MSG_OOB); recv(socks[0], &dummy, 1, MSG_OOB); send(socks[1], "A", 1, MSG_OOB); recv(socks[0], &dummy, 1, MSG_OOB); send(socks[1], "A", 1, MSG_OOB); recv(socks[0], &dummy, 1, MSG_OOB); recv(socks[0], &dummy, 0, MSG_OOB);
出所: オープンネット.ru
