最近 に関する重要な情報 の識別 脆弱性 (CVE-2021-27365としてリストされています) iSCSIサブシステムコード内 Linuxカーネル 特権のないローカルユーザーがカーネルレベルでコードを実行し、システムでroot権限を取得できるようにします。
この問題は、iSCSIサブシステムの開発中に2006年に導入されたlibiscsi iscsi_host_get_param()モジュールの機能のバグが原因で発生します。 適切なサイズ制御がないため、ホスト名やユーザー名などの一部のiSCSI文字列属性がPAGE_SIZE(4KB)値を超える場合があります。
この脆弱性は、Netlinkメッセージを送信することで悪用される可能性があります iSCSI属性をPAGE_SIZEより大きい値に設定する非特権ユーザーによる。 sysfsまたはseqfsを介して属性データを読み取る場合、コードが呼び出されて属性がsprintfに渡され、サイズがPAGE_SIZEのバッファーにコピーされます。
問題の特定のサブシステムは、SCSI(Small Computer System Interface)データトランスポートです。これは、元々ハードドライブなどの物理ケーブルを介して、コンピューターを周辺機器に接続するために作成されたデータを転送するための標準です。 SCSIは、1986年に最初に公開された由緒ある標準であり、サーバー構成のゴールドスタンダードでした。iSCSIは基本的にSCSI overTCPです。 SCSIは現在でも、特に特定のストレージ状況で使用されていますが、これはデフォルトのLinuxシステムでどのように攻撃対象領域になりますか?
脆弱性の悪用 ディストリビューションで カーネルモジュールの自動ロードのサポートに依存します NETLINK_ISCSIソケットを作成しようとしたときのscsi_transport_iscsi。
このモジュールが自動的にロードされるディストリビューションでは、攻撃を実行できます iSCSI機能の使用に関係なく。 同時に、エクスプロイトを正常に使用するには、少なくともXNUMXつのiSCSIトランスポートの登録が追加で必要です。 次に、トランスポートを登録するために、非特権ユーザーがNETLINK_RDMAソケットを作成しようとしたときに自動的にロードされるib_iserカーネルモジュールを使用できます。
エクスプロイトを使用するために必要なモジュールの自動ロード システムにrdma-coreパッケージをインストールすることにより、CentOS 8、RHEL 8、およびFedoraをサポートします、これはいくつかの一般的なパッケージの依存関係であり、ワークステーション、GUIを備えたサーバーシステム、およびホスト環境の仮想化の構成にデフォルトでインストールされます。
同時に、コンソールモードでのみ機能するサーバービルドを使用している場合、および最小限のインストールイメージをインストールしている場合、rdma-coreはインストールされません。 たとえば、パッケージは基本のFedora 31 Workstationディストリビューションに含まれていますが、Fedora 31Serverには含まれていません。
DebianとUbuntuは問題の影響を受けにくいrdma-coreパッケージは、RDMAハードウェアが利用可能な場合にのみ、攻撃に必要なカーネルモジュールをロードするためです。 ただし、サーバー側のUbuntuパッケージにはopen-iscsiパッケージが含まれています。このパッケージには、起動のたびにiSCSIモジュールが自動的にロードされるように/lib/modules-load.d/open-iscsi.confファイルが含まれています。
エクスプロイトの実用的なプロトタイプは、 以下のリンクを試してください。
この脆弱性は、Linuxカーネルアップデート5.11.4、5.10.21、5.4.103、4.19.179、4.14.224、4.9.260、および4.4.260で修正されました。 カーネルパッケージの更新は、Debian(oldstable)、Ubuntu、SUSE / openSUSE、Arch Linux、およびFedoraディストリビューションで利用できますが、RHELの修正はまだリリースされていません。
また、iSCSIサブシステムでは 危険性の低いXNUMXつの脆弱性が修正されました カーネルデータの漏えいにつながる可能性があります:CVE-2021-27363(sysfsを介したiSCSIトランスポート記述子に関する漏えい情報)およびCVE-2021-27364(バッファー制限外の領域からの読み取り)。
これらの脆弱性を悪用して、必要な権限なしでネットワークリンクソケットを介してiSCSIサブシステムと通信することができます。 たとえば、特権のないユーザーはiSCSIに接続して、ログアウトコマンドを送信できます。