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

推薦する

ウェブメッセージボード機能を実現するjs

この記事の例では、Webメッセージボードを実装するためのjsの具体的なコードを参考までに共有していま...

MySQL 完全崩壊: クエリフィルタ条件の詳細な説明

概要実際のビジネス シナリオ アプリケーションでは、ビジネス条件に基づいて対象データを取得およびフィ...

MySQL 5.7 mysql コマンドラインクライアントの使用コマンドの詳細

MySQL 5.7コマンドを使用するMySQLコマンドラインクライアント1. パスワードを入力してく...

CentOS 8 に MariaDB をインストールするための詳細なチュートリアル

MariaDB データベース管理システムは MySQL のブランチであり、主にオープンソース コミュ...

CSSはメッセージパネルをスライドするWebコンポーネント機能を実装します

みなさんこんにちは。私と同じように混乱している方はいらっしゃいませんか。CSS は簡単に始められます...

JavaScriptはクリックするとランダムなグラフィックを生成します

この記事では、クリックするとランダムグラフィックの生成を実現するJavaScriptの具体的なコード...

MySQL の innodb_flush_log_at_trx_commit と sync_binlog を区別する方法

2 つのパラメータ innodb_flush_log_at_trx_commit と sync_bi...

CSS3はアニメーション効果を実現するためにvar()とcalc()関数を使用する。

ナレッジポイントをプレビューします。アニメーションフレーム背景グラデーションvar() と calc...

オブジェクト指向の観点から Vue コンポーネントを理解するための簡単な分析

同じ関数や HTML コードが複数回使用される場合は、それらをコンポーネントに抽出することを検討でき...

VMware ESXi6.7 の簡単なセットアップ(画像とテキスト付き)

1. VMware vSphere の概要VMware vSphere は、業界をリードする最も信...

Vue3.0はドロップダウンメニューのカプセル化を実装します

Vue3.0 がリリースされてからしばらく経ちましたが、勉強を始める必要があります。まず、達成したい...

MySQLでカーソルを宣言する方法

MySQL でカーソルを宣言する方法: 1. 変数とカーソルを宣言する 結果をvarchar(300...

React サーバーサイドレンダリング原則の分析と実践

ほとんどの人は、サーバーサイド レンダリング (SSR と呼んでいます) の概念について聞いたことが...

fullpage.js フルスクリーンスクロールの具体的な使い方

1.fullpage.js ダウンロードアドレスhttps://github.com/alvarot...

webpackが静的リソースキャッシュを実装する方法

目次導入複数の異なるハッシュを区別するハッシュチャンクハッシュコンテンツハッシュjs キャッシュの実...