クオリスが発表 私が特定したニュース XNUMXつの脆弱性 (CVE-2021-44731およびCVE-2021-44730) snap-confineユーティリティで、ルートSUIDフラグとともに送信され、snapdプロセスによって呼び出されて、snapパッケージで配布されるアプリケーションの実行可能環境を生成します。
ブログ投稿では、 脆弱性により、特権のないローカルユーザーがrootとしてコードを実行できるようになります システム内。
最初の脆弱性により、物理的なリンク操作攻撃が可能になります、ただし、システムハードリンク保護を無効にする必要があります(sysctl fs.protected_hardlinksを0に設定することにより)。
問題 実行可能ファイルの場所の誤った検証が原因です snap-update-nsおよびsnap-discard-nsユーティリティの ルートとして実行されます。 これらのファイルへのパスは、/ proc / self / exeからの独自のパスに基づいてsc_open_snapd_tool()関数で計算され、ディレクトリに限定するハードリンクを作成し、オプションをsnap-update-nsおよびsnapに設定できます。 -このディレクトリのdiscard-ns。 ハードリンクから起動すると、rootとしてsnap-confineが、現在のディレクトリから攻撃者に置き換えられたsnap-update-nsファイルとsnap-discard-nsファイルを実行します。
この脆弱性の悪用に成功すると、非特権ユーザーは脆弱なホストでroot特権を取得できます。 Qualysのセキュリティ研究者は、脆弱性を独自に検証し、エクスプロイトを開発し、デフォルトのUbuntuインストールで完全なroot権限を取得することができました。
Qualysの調査チームが脆弱性を確認するとすぐに、責任ある脆弱性の開示を行い、ベンダーやオープンソースのディストリビューションと調整して、この新たに発見された脆弱性を発表しました。
XNUMX番目の脆弱性は、競合状態によって引き起こされます デフォルトのUbuntuデスクトップ構成で利用できます。 エクスプロイトがUbuntuServerで正常に機能するためには、インストール中に「注目のサーバースナップ」セクションからパッケージのXNUMXつを選択する必要があります。
競合状態 setup_private_mount()関数に現れます インスタントパッケージのマウントポイント名前空間の準備中に呼び出されます。 この関数は、一時ディレクトリ「/tmp/snap.$SNAP_NAME/tmp」を作成するか、既存のディレクトリを使用して、スナップパッケージのディレクトリをリンクしてマウントします。
一時ディレクトリの名前は予測可能であるため、攻撃者は所有者を確認した後、マウントシステムを呼び出す前に、その内容をシンボリックリンクに変更できます。 たとえば、任意のディレクトリを指す/tmp/snap.lxdディレクトリにシンボリックリンク「/tmp/snap.lxd/tmp」を作成できます。mount()呼び出しはシンボリックリンクをたどり、そのディレクトリをスペースにマウントします。名前の。
同様に、その内容を/ var / libにマウントし、/ var / lib / snapd / mount / snap.snap-store.user-fstabをオーバーライドして、/ etcディレクトリをパッケージ名前空間snapにマウントしてライブラリをロードするように調整できます。 /etc/ld.so.preloadを置き換えることにより、ルートアクセスから。
観察された エクスプロイトの作成は重要な作業であることが判明しました、snap-confineユーティリティは安全なプログラミング手法を使用して記述されているため(snapdはGoで記述されていますが、Cはsnap-confineに使用されます)、AppArmorプロファイルに基づいて保護され、seccompメカニズムに基づいてシステムコールをフィルタリングし、マウント名前空間を使用します分離のため。
ただし、研究者は機能的なエクスプロイトを準備することができました システムのルートアクセスを取得します。 エクスプロイトコードは、ユーザーが提供されたアップデートをインストールしてから数週間後にリリースされます。
最後に、言及する価値がありますスナップパッケージアップデートで問題が修正されました Ubuntuバージョン21.10、20.04、18.04の場合。
Snapを利用する他のディストリビューションに加えて、Snapd 2.54.3がリリースされました。これにより、上記の問題に加えて、特別に設計されたプラグインパッケージをインストールするときに、別の脆弱性(CVE-2021-4120)が修正されます。任意のAppArmorルールをオーバーライドし、パッケージに設定されたアクセス制限をバイパスします。
もしあなたが それについてもっと知りたい、 詳細を確認できます 次のリンクで。