sudo は Unix 系オペレーティング システムの標準ツールで、特定のユーザーが一部またはすべてのコマンドを root として実行できるようにしますが、デフォルト以外の構成で導入された場合、ログインしているすべてのユーザーにスーパーパワーを与えるために悪用される可能性があります。
Apple Information SecurityのJoe Vennix氏によって発見されたこのセキュリティホールは、pwfeedbackオプションが有効になっている場合にのみ発生します。このオプションは、パスワード入力時にキーが押されるたびにアスタリスクを表示します。幸いなことに、pwfeedbackは通常デフォルトで無効になっています。
macOSにはsudoが含まれていますが、Catalinaマシンで試してみたところ、このオプションは有効になっていませんでした。ただし、一部のLinuxディストリビューション(MintとElementary OS)ではこのオプションが有効になっています。この機能の目的は、その名前が示すように、ユーザーがブラックホールに向かって入力しているわけではないことを安心させることです。
sudo がインストールされていて脆弱な場合、sudo 権限を持つユーザーの sudoers リストに記載されていなくても、どのユーザーでも脆弱性を誘発する可能性があります。
Linux Mintはsudoで発見された欠陥に対して脆弱である
多くのプログラミング上のミスと同様に、これはバッファオーバーフローの問題です。「アスタリスクの行を消去するコードは、書き込みエラーが発生した場合にバッファの位置を適切にリセットしませんが、残りのバッファ長はリセットします。その結果、このgetln()
関数はバッファの末尾を超えて書き込みを行う可能性があります」とsudoの開発者は説明しています。また、端末デバイス以外から読み取る場合でも、pwfeedbackオプションが無視されないという欠陥もあります。
脆弱性があるかどうかは、実行して出力を確認することで確認できますsudo -l
。「Matching Defaults」エントリの下に「pwfeedback」という単語が表示されている場合は、潜在的に危険にさらされている可能性があります。次に、 でバージョン番号を確認しますsudo --version
。バージョン1.7.1から1.8.25p1までが脆弱です。このバグは現在入手可能なsudo 1.8.31で修正されており、バージョン1.8.26から1.8.30は悪用できません。
確かに、pwfeedback が有効になっているため、Linux Mint の新規インストールは影響を受けました。
解決策は、リンク先の記事で説明されているように、sudoers ファイルで pwfeedback を無効にするか、修正バージョンに更新することです。®