Linux が Sudo 権限昇格の脆弱性を公開、どのユーザーでも root コマンドを実行可能

Linux が Sudo 権限昇格の脆弱性を公開、どのユーザーでも root コマンドを実行可能

Linux で最も一般的に使用される重要なユーティリティの 1 つである Sudo は、ほぼすべての UNIX および Linux ディストリビューションにインストールされており、ユーザーはコア コマンドを呼び出して実装できます。 しかし、最近明らかになった権限昇格の脆弱性は、sudo のセキュリティ ポリシー リスクを直接的に示しています。設定で明示的に root ユーザー アクセスを許可していない場合でも、この脆弱性により、悪意のあるユーザーまたはプログラムが対象の Linux システムで root ユーザーとして任意のコマンドを実行できる可能性があります。

(タイトル画像はHacker Newsより)

Sudo は具体的には「スーパーユーザー」を指すと報告されています。システム コマンドとして、ユーザーは別の環境に切り替えることなく (通常は root ユーザーとしてコマンドを実行する)、特別な権限でプログラムまたはコマンドを実行できます。

ほとんどの Linux ディストリビューションでは、デフォルトで (スクリーンショットに示すように)、/etc/sudoers の RunAs 仕様ファイル内の ALL キーワードにより、admin グループまたは sudo グループ内のすべてのユーザーが、システム上の有効なユーザーとして任意のコマンドを実行できるようになります。

ただし、権限の分離は Linux における最も基本的なセキュリティ パラダイムの 1 つであるため、管理者は sudoers ファイルを構成して、どのユーザーがどのコマンドを実行できるかを定義できます。

そのため、Baseline はユーザーが特定のコマンドまたは任意のコマンドを root として実行することを制限しており、この脆弱性により、ユーザーがこのセキュリティ ポリシーを回避してシステムを完全に制御できるようになる可能性があります。

「Runas 仕様が明示的にルートアクセスを禁止し、ALL キーワードを最初にリストしている限り、十分な sudo 権限を持つユーザーはそれを使用してルートとしてコマンドを実行できます」と Sudo 開発者は述べています。

この脆弱性は、Apple の情報セキュリティ部門の Joe Vennix 氏によって追跡され発見されたと報告されています (CVE-2019-14287)。このバグを悪用するには、Sudo ユーザー ID -1 または 4294967295 だけが必要です。

これは、ユーザー ID をユーザー名に変換する関数が、-1 (または無効な同等の 4294967295) を 0 と間違え、0 がルート ユーザー ID になるからです。

さらに、-u オプションで指定されたユーザー ID がパスワード データベースに存在しないため、PAM セッション モジュールは実行されません。

要約すると、この脆弱性は最新バージョン 1.8.28 より前のすべての Sudo バージョンに影響します。幸いなことに、主要な Linux ディストリビューションでは、すでに数時間前に新しいバージョンがユーザーに配布されています。

さて、この記事はこれで終わりです。123WORDPRESS.COM を応援していただきありがとうございました!

以下もご興味があるかもしれません:
  • Linux でパスワードを入力せずに sudo コマンドを実行する方法
  • Linux で Sudo を使用して権限を委譲する
  • sudo、su、su の違いのまとめ - Linux のコマンド
  • Linux システムの sudo コマンドに関する 10 のヒントのまとめ
  • Linux で sudo su を使用して一般ユーザーにルート権限を追加する方法
  • Linux における sudo の詳細な設定とその設定ファイル /etc/sudoers の詳細な説明
  • Linuxシステムのsudoコマンドの詳細な説明
  • Linux環境でユーザーにsudo権限を追加する方法

<<:  MySQL でのフィルター条件なしのカウントの詳細な説明

>>:  ReactのuseEffectクロージャの落とし穴についての簡単な説明

推薦する

MySQL Undo ログと Redo ログの概要

目次元に戻すログUNDOログの生成と破棄UNDOログの保存元に戻すログ機能トランザクションの原子性の...

CentOS7.6 システムで yum を使用して lnmp 環境を構成する方法

1. インストールバージョンの詳細 サーバー: MariaDB サーバーバージョン: 5.5.60-...

iOS、Android、ミニプログラムアプリの敷居の低い開発のためのフロントエンドフレームワークを詳しく解説

現在、クロスプラットフォーム開発技術はもはや新しい話題ではありません。市場にはいくつかのオープンソー...

Dockerfileを使用してDockerイメージを構築する

目次Dockerfileを使用してDockerイメージを構築する1. Dockerfile とは何で...

node.js でマルチコア CPU を最大限に活用する方法

目次概要node.js でマルチコア CPU を最大限に活用する方法Node で子プロセスを作成する...

スネークゲームを作るための Pygame コード

目次使用されるPygame関数スクリーンの作成ヘビの作成ヘビを動かすゲームオーバーの処理食事を増やす...

ウェブサイト上のWeiboコンポーネントの再設計の詳細な紹介(写真とテキスト)

前面に書かれたWeibo コンポーネントは、サードパーティのアクセス ユーザーが開発を必要とせずに ...

MySQL パーティション テーブルの基本入門チュートリアル

序文最近のプロジェクトでは、大量のデータを保存する必要があり、このデータには有効期限があります。クエ...

Vue+elementを使用してページ上部のタグを実装する方法の詳細な説明

目次1. ページレンダリング2. タグを切り替える3. タグを削除するこのようなタグはどのように記述...

MySQLは既存のコンテンツを保持し、後でコンテンツを追加します

このコマンドは、データ テーブル ff_vod を変更し、vod_url フィールドの内容の後に 9...

this.parentNode.parentNode (親ノードの親ノード) はどういう意味ですか?

親ノードの親ノード、例えば、このような段落がありますHTML:コードをコピーコードは次のとおりです。...

Vueはチャットインターフェースを実装する

この記事の例では、チャットインターフェースの表示を実現するためのVueの具体的なコードを参考までに共...

Linux mysql5.5 を mysql5.7 にアップグレードする手順と落とし穴

目次Linux MySQL 5.5 が MySQL 5.7 にアップグレードされました1. mysq...

binlog2sql と簡単なバックアップおよびリカバリを使用して mysql8.0.20 を構成するための詳細な手順

目次最初のステップのインストールステップ2: MySQLデータを準備する3 番目のステップは、bin...

MySQL の count()、group by、order by の詳細な説明

最近、IM を実行するときに、これらの 3 つのキーワードを同時に使用したときに問題が発生しました。...