Google ProjectZeroチームの研究者がリリース 最近ブログ投稿を通じて 脆弱性を悪用する新しい方法 (CVE-2020-29661)のioctlハンドラーTIOCSPGRPの実装 Linuxカーネルttyサブシステム、およびこれらの脆弱性をブロックする可能性のある詳細な保護メカニズム。
投稿には次のように記載されています この問題は、ロック設定のエラーが原因で発生します、/ tty / tty_jobctrl.cのコードで競合状態が発生します。これは、起動後にメモリにアクセスするための条件を作成するために使用され(use-after-free)、TIOCSPGRPを呼び出してioct-を操作することでユーザースペースによって悪用されます。
公開されている情報に加えて、 機能エクスプロイトのデモが実行されました 特権昇格の場合 カーネル10-4.19.0-amd13を搭載したDebian64 また、Debianに基づいたものやDebianから派生したものなど、さまざまなディストリビューションに影響を与える可能性があることも除外されていません。
ここで説明している個々のエクスプロイト手法と緩和オプションの多くは、目新しいものではありません。 ただし、さまざまな緩和策がかなり通常の解放後のエクスプロイトとどのように相互作用するかを示すために、それらを一緒に作成する価値があると思います。
このブログ投稿のエクスプロイトに関連するコードスニペットは、以前のバージョン4.19.160から取得されています。これは、ターゲットのDebianカーネルが基づいているためです。 他のいくつかのコードスニペットはLinuxメインラインからのものです。
同時に、公開された記事では、 機能的なエクスプロイトを作成する手法ではなく、どのツールに重点が置かれています。 あります カーネル内 身を守るために そのような脆弱性に対して。
結論は残念です、 ヒープ内のメモリをセグメント化し、解放された後のメモリへのアクセスを制御するなどの方法は、パフォーマンスの低下とCFI(Control Flow Integrity)に基づく保護につながるため、実際には適用されません。これにより、後でエクスプロイトがブロックされます。攻撃の段階では、改善が必要です。
特殊なタイプの端末デバイスは疑似端末です。これは、たとえば、グラフィカル環境で端末アプリケーションを開いたり、SSH経由でリモートマシンに接続したりするときに使用されます。 他の端末デバイスはある種のハードウェアに接続されていますが、疑似端末の両端はユーザースペースによって制御され、疑似端末はユーザースペースによって自由に作成できます(特権なし)。
/ dev / ptmxが開かれると(「疑似端末マルチプレクサ」の略)、結果のファイル記述子はデバイスのデバイス側(ドキュメントおよびカーネルソースでは「マスター疑似端末」と呼ばれます)を表します。newpseudoターミナル。
対応する端末デバイス(シェルが通常接続する)は、/ dev / pts /の下のカーネルによって自動的に作成されます。 。
長期的に何が違いを生む可能性があるかを検討するときは、高度な静的パーサーを使用するか、ステータス、ロック、オブジェクトとポインタ。 保護方法では、panic_on_oopsモードをアクティブにし、カーネル構造を読み取り専用にし、seccompなどのメカニズムを介してシステムコールへのアクセスを制限することにも言及しています。
問題の原因となるエラー 昨年の3月XNUMX日にLinuxカーネルで修正されました。 問題 バージョン5.9.13より前のカーネルで現れます。 しかし、ほとんどのディストリビューションでは、昨年提供されたカーネルパッケージアップデートの問題が修正されています。
TIOCGSID ioctl呼び出しの実装で同時に発見されたが、どこでも削除された同様の脆弱性も言及されています(CVE-2020-29660)。
最後に あなたがそれについてもっと知りたいのなら、 詳細を確認できます 次のリンクで。