sudoでUIDに4294967295を指定すると途中からuid = 0と解釈される特権昇格の脆弱性 42
ストーリー by hylom
チェックしてなかったのか 部門より
チェックしてなかったのか 部門より
sudoコマンドで、任意のユーザー権限でのコマンド実行を許可されているユーザーに対し、ルート権限で指定したコマンドを実行できてしまう脆弱性が確認された(sudo公式サイトでの脆弱性報告、サイオスセキュリティブログ)。
この脆弱性は、実行するユーザーを指定するsudoコマンドの「-u」オプションで「-1」もしくは「4294967295」を指定すると、そのユーザーIDではなくルート権限で指定したコマンドを実行できてしまうというもの。
任意のユーザーがルート権限を取得できるわけでは無く、sudoersなどの設定ファイルで「ALL」キーワードを使って任意のユーザー権限でのコマンド実行が許可されたユーザーのみがルート権限を奪取できる。実行できるコマンドが指定されていた場合はそのコマンドのみがルート権限で実行できる対象となる。
また、この際にログにはroot権限ではなく指定したユーザーID(-1もしくは4294967295)で実行されたものとして記録される。こうしたユーザーIDは存在しない為、PAMセッションモジュールも実行されない。
この問題を悪用することで、たとえば「<ユーザー名> = (ALL, !root) <コマンド名>」のようにroot以外のユーザーでsudoコマンドを利用できるように指定されていた場合に、本来は不可能なはずのroot権限でのコマンド実行が可能になってしまう。