Linux の sudo 脆弱性により不正な特権アクセスが発生する可能性がある

Linux の sudo 脆弱性により不正な特権アクセスが発生する可能性がある

Linux で新たに発見された sudo の脆弱性を悪用すると、特定のユーザーが root としてコマンドを実行できるようになる可能性がありますが、これには制限があります。

最近、sudo コマンドに重大な脆弱性が発見されました。この脆弱性が悪用されると、 /etc/sudoersファイルで明示的に禁止されていても、通常のユーザーが root としてコマンドを実行できるようになります。

sudo をバージョン 1.8.28 に更新すると問題は解決するはずなので、Linux 管理者はできるだけ早く更新することをお勧めします。

この脆弱性がどのように悪用されるかは/etc/sudoersで付与された特定の権限によって異なります。たとえば、ユーザーが root 以外のユーザーとしてファイルを編集できるようにするルールでは、実際にはそのユーザーが root としてファイルを編集することも許可されます。この場合、脆弱性により非常に深刻な問題が発生する可能性があります。

ユーザーがこの脆弱性を悪用するには、 /etc/sudoersでそのユーザーに別のユーザーとしてコマンドを実行できる権限が割り当てられている必要があります。この脆弱性は、このように割り当てられたコマンド権限に限定されます。

この問題は 1.8.28 より前のバージョンに影響します。 sudo のバージョンを確認するには、次のコマンドを使用します。

$ sudo -V
sudo バージョン 1.8.27 <===
Sudoers ポリシー プラグイン バージョン 1.8.27
Sudoers ファイルの文法バージョン 46
Sudoers I/O プラグイン バージョン 1.8.27

この脆弱性には、CVE データベースで CVE-2019-14287 という番号が割り当てられています。リスクは、明示的に root として実行することを禁止されている場合でも、任意のユーザーとしてコマンドを実行できるように指定されているすべてのユーザーが制限を回避できることです。

次の行により、jdoe は root 以外のユーザーとして vi を使用してファイルを編集できるようになります (!root は「非 root」を意味します)。一方、nemo には root 以外のユーザーとして id コマンドを実行する権限が与えられます。

# ホスト「dragonfly」上の影響を受けるエントリ
jdoe トンボ = (ALL, !root) /usr/bin/vi
nemo dragonfly = (ALL, !root) /usr/bin/id

ただし、脆弱性により、これらのユーザーは制限を回避して root としてファイルを編集したり、root として id コマンドを実行したりする可能性があります。

攻撃者は、ユーザー ID -1 または 4294967295 を指定して、root としてコマンドを実行できます。

sudo -u#-1 id -u

または

sudo -u#4294967295 id -u

応答が 1 の場合、コマンドが root として実行されたことを示します (root のユーザー ID が表示されます)。

Apple の情報セキュリティ チームの Joe Vennix 氏がこの問題を発見し、分析しました。

要約する

上記は、不正な特権アクセスにつながる可能性のある Linux sudo の脆弱性についてご紹介しました。お役に立てれば幸いです。ご質問がある場合は、メッセージを残していただければ、すぐに返信いたします。また、123WORDPRESS.COM ウェブサイトをサポートしてくださっている皆様にも感謝申し上げます。
この記事が役に立ったと思われた方は、ぜひ転載していただき、出典を明記してください。ありがとうございます!

以下もご興味があるかもしれません:
  • lynis を使用して Linux の脆弱性をスキャンする方法
  • Linux が Sudo 権限昇格の脆弱性を公開、どのユーザーでも root コマンドを実行可能
  • Linux カーネルの脆弱性の簡単な分析
  • Linuxユーザーは脆弱性を修正するために注意する必要がある
  • Linux コマンドライン ツールを使用して JSON 出力を解析およびフォーマットする方法
  • clamscan - Linux ウイルス検出ツール コマンドの詳細な説明
  • Linuxでスクリーンショットを撮って編集するための最高のツール
  • Linux 脆弱性スキャンツール lynis の使用分析

<<:  MySQL クエリの重複データ (重複データを削除し、ID が最も小さいデータのみを保持します)

>>:  ネイティブ JS を使用してタッチスライド監視イベントを実装する方法

推薦する

フロントエンドの面接でよく聞かれる JavaScript の質問の完全なリスト

目次1. 手書きのインスタンス2.配列のマップメソッドを実装する3. Reduceは配列のmapメソ...

Linux での MySQL 5.6.24 (バ​​イナリ) 自動インストール スクリプト

この記事では、Linux環境でのmysql5.6.24自動インストールスクリプトコードを参考までに共...

XHTML Web ページ チュートリアル

この記事は主に、初心者に XHTML の基本的な知識と、XHTML と HTML の違いを理解しても...

IE6かどうかを判定する最短JS(IEの書き方)

ブラウザが IE のどのバージョンであるかを検出するためによく使用される JavaScript コー...

etcd クラスターをデプロイするための docker-compose の実装手順

目次docker-compose.ymlを書くdocker-composeを実行するビルドステータス...

VUE 応答性原理の詳細な説明

目次1. 応答原理の基盤2. コアオブジェクト: Dep と Watcher 3. 依存関係を収集し...

Reactでaxiosを使用してリクエストを送信する一般的な方法

目次Reactにaxios依存関係をインストールして導入するGETリクエストにaxiosを使用するa...

MySQL Strict Modeの知識ポイントの詳細な説明

I. 厳密モードの説明MySQL 5.0 以降の厳密モード (STRICT_TRANS_TABLES...

ElementUI のネストされたテーブルに基づいて複数選択を実装するためのサンプル コード

序文:私は友人のプロジェクトのバグを修正するのを手伝ったのでこれを書きました。この関数を書くのは初め...

シェルスクリプトはNginxのaccess.logのPVを定期的にカウントし、APIに送信してデータベースに保存します。

1. PVとIPの統計一日のPV(ページビュー)をカウントする cat access.log | ...

Jenkins の docker-compose デプロイメントと構成に関する詳細なチュートリアル

Docker-compose デプロイメント構成 Jenkins 1. Docker-compose...

React Contextの理解と応用についてお話ししましょう

目次序文React Context の初見コンテキストの使い方コンテキストを直接取得できるいくつかの...

ウィンドウの中央にブロック要素の位置を設定する方法

ウィンドウの中央にブロック要素の位置を設定する方法ブロック要素をウィンドウの中央に配置する上記の方法...

MySQLのインストールと設定に関する詳細なチュートリアル

目次インストール不要のMySQLバージョン1. インストール パッケージをダウンロードします。 2....

Deepin で virtualenv をインストールして使用するチュートリアル

virtualenv は、分離された Python 仮想環境を作成するためのツールです。独立したディ...