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クロージャの落とし穴についての簡単な説明

推薦する

レスポンシブ Web デザインが価値のない 5 つの理由

この記事は Tom Ewer の Managewp ブログからのもので、現在人気のレスポンシブ デザ...

HTML 選択ボックスのプレースホルダーの作成に関する問題

テキスト入力でプレースホルダーを使用していますが、問題なく動作します。しかし、選択ボックスにはプレー...

MySQL でテーブル データを削除した後もディスク領域がまだ占有されているのはなぜですか?

目次1.MySQLデータ構造2. テーブルファイルのサイズは変更されておらず、MySQLの設計に関連...

CentOS のデフォルトの SSH ポート番号を変更する方法の例

LinuxサーバーのデフォルトのSSHポート番号は通常22なので、ほとんどのユーザーはセキュリティ上...

MySQL シリーズ 6 のユーザーと認証

目次チュートリアルシリーズ1. ユーザー管理1. ユーザーアカウント2. アカウントの追加と削除3....

Nodejs は JSON 文字列を JSON オブジェクトに変換するエラー解決法

JSON 文字列を JSON オブジェクトに変換するにはどうすればいいですか? JSON.parse...

MySQL 選択最適化ソリューションに関する簡単な説明

目次実生活からの例クエリが遅い最適化する方法カウント制限最大値と最小値 min&max実生活...

MySQLパスワードを変更するいくつかの方法

序文:データベースを日常的に使用すると、パスワードが単純すぎて変更する必要がある場合、パスワードの有...

MySqlデータベースの基礎知識のまとめ

目次基本的なデータベース操作2) データベースを表示する3) データベースを選択する4) データベー...

HTML 名 ID とクラスの違い_PowerNode Java アカデミー

名前タグの名前を指定します。形式 <input type="text" n...

CentOS7 インストール GUI インターフェースとリモート接続の実装

ブラウザ (Web ドライバー) ベースの Selenium テクノロジを使用してデータをクロールす...

nginx で http でアクセスする Web サイトを https に変更する方法

目次1. 背景2. 前提条件https:証明書システム: 3. 操作プロセス3.1 証明書の生成3....

Google 翻訳ツール: 多言語ウェブサイトを素早く実装

Google Chinaは、ウェブサイトやブログを素早く簡単に多言語化できる翻訳ツールをリリースした...

HTML メタタグの一般的な使用例のコレクション

マタタグとは<meta> 要素は、検索エンジン向けの説明やキーワード、更新頻度など、ペー...

配列をフィルタリングするJavaScript

この記事では、配列フィルタリングを実装するためのJavaScriptの具体的なコードを参考までに紹介...