特定のルールを使用するときに権限昇格を可能にする sudo の脆弱性

ユーティリティで 数独、他のユーザーに代わってコマンドの実行を組織するために使用されます。 特定された 脆弱性 (CVE-2019-14287)、sudoers 設定に、許可キーワード「ALL」の後のユーザー ID チェックセクションで root 権限での実行が明示的に禁止されているルールがある場合(「...」)、root 権限でコマンドを実行できます。 (ALL, !root) ..." )。 この脆弱性は、ディストリビューションのデフォルト設定では発生しません。

sudoers が、root 以外のユーザーの UID で特定のコマンドの実行を許可する有効なルールを持っている場合、実際には非常にまれですが、このコマンドを実行する権限を持つ攻撃者は、確立された制限を回避してコマンドを実行できます。ルート権。 この制限を回避するには、設定で指定されたコマンドを UID「-1」または「4294967295」で実行してみます。これにより、UID 0 で実行されます。

たとえば、設定に、任意の UID でプログラム /usr/bin/id を実行する権限をすべてのユーザーに与えるルールがある場合、次のようになります。

myhost ALL = (ALL, !root) /usr/bin/id

または、特定のユーザー bob にのみ実行を許可するオプション:

myhost bob = (ALL, !root) /usr/bin/id

設定で明示的に禁止されているにもかかわらず、ユーザーは「sudo -u '#-1' id」を実行でき、/usr/bin/id ユーティリティは root として起動されます。 この問題は、UID の変更につながらない特別な値「-1」または「4294967295」を見落とすことによって発生しますが、sudo 自体はすでに root として実行されているため、UID を変更せずに、ターゲットのコマンドもroot権限で起動しました。

SUSE および openSUSE ディストリビューションでは、ルールで「NOPASSWD」を指定しないと、脆弱性が存在します。 悪用できないsudoers では「デフォルト targetpw」モードがデフォルトで有効になっているため、UID をパスワード データベースと照合してチェックし、ターゲット ユーザーのパスワードの入力を求められます。 このようなシステムでは、次の形式のルールがある場合にのみ攻撃を実行できます。

myhost ALL = (ALL, !root) NOPASSWD: /usr/bin/id

リリースで修正された問題 須藤 1.8.28。 修正は次のフォームからも入手できます パッチ。 配布キットでは、この脆弱性はすでに修正されています。 Debianの, アーチのLinux, SUSE/openSUSE, Ubuntu, Gentooの и FreeBSDの。 この記事の執筆時点では、この問題は未解決のままです。 RHEL и フェドーラ。 この脆弱性は Apple のセキュリティ研究者によって特定されました。

出所: オープンネット.ru

コメントを追加します