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(「帯域外」)フラグは、送信データに追加バイトを付加することを可能にし、受信側は残りのデータを受信する前にこのバイトを読み取ることができます。このフラグはOracleの要請によりLinux 5.15カーネルに追加されましたが、広く利用されていないため、昨年廃止が提案されました。
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
