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 を使用してタッチスライド監視イベントを実装する方法

推薦する

CSSの幅と高さのデフォルト値の詳細な説明:autoと%

結論は幅の%: 包含ブロック(親要素)の幅に基づいて、親の制限を超える幅のパーセンテージを定義します...

Dockerの動作モードと原理の詳細な説明

次の図に示すように: 仮想マシンと Docker を使用するとき、「なぜ Docker は VM よ...

Vue の新しいパートナー TypeScript クイックスタート実践記録

目次1. 公式の足場を使って構築する2. プロジェクトディレクトリ分析3. TypeScript の...

航空機戦争ゲームを実装するためのJavaScript

この記事では、キャンバスとjsを使用して簡単な飛行機戦争を実装する方法を参考までに紹介します。具体的...

CSS と HTML とフロントエンド テクノロジーのレイヤー図

JavascriptとDOMの関係は非常に曖昧で、CSSやHTMLのフロントエンド技術層も理解してい...

Linuxのlocateコマンドの使い方

01. コマンドの概要実際には、locate コマンドは find -name の別の書き方ですが、...

CSS でよく使用されるフォントサイズ、フォント単位、行の高さの詳細な説明

px(ピクセル)ピクセルという言葉は皆さんもよくご存知だと思います。次に、この単位に関するちょっとし...

ES6 Promiseの使い方の詳細な説明

目次約束とは何ですか?拒否の使用法キャッチの使い方すべての使用法レースの使用約束とは何ですか? Pr...

画像のシームレスなスクロールを実現する JavaScript タイマー

この記事では、画像のシームレスなスクロールを実現するためのJavaScriptの具体的なコードを参考...

CSS における zoom:1 属性の定義と機能

今日、CSS の zoom 属性は何のために使用されるのかと尋ねられました。この属性は、フローティン...

IE6 の歪み問題

質問: <form...> の下の <input type="hidde...

USE DB 輻輳に対する MySQL ソリューションの詳細な説明

障害に遭遇すると、障害の根本的な原因を考えるのではなく、障害を解決する方法を考えることがよくあります...

テーブルの動的な色の変更を実現するJavaScript

この記事では、テーブルの動的な色の変更を実現するためのJavaScriptの具体的なコードを参考まで...

nginx リバース プロキシの魔法のスラッシュについての簡単な説明

nginx リバース プロキシを設定する場合、location と proxy_pass のスラッシ...

MySQLは遅いSQLを開始し、原因を分析します

ステップ1. MySQLスロークエリを有効にする方法1: 設定ファイルを変更するWindows: W...