てきとうなメモ

本の感想とか技術メモとか

パスワードなしでsudoできる脆弱性(Mac OS 10.7-10.8.4)

If your session belongs to a user with Administrative Privileges (the user is in the sudoers file and is in the "admin group"), and the user has ever run the "sudo" command, it is possible to become the super user by running `sudo -k` and then resetting the system clock to 01-01-1970.

sudoを実行する場合はパスワードが必要なのだが、一度実行すると一定時間内(デフォルトでは5分)はパスワードなしで実行可能である。これを実装するためにsudoは前回実行時のタイムスタンプを保存しているのだが、sudo -kを実行すると保存していたタイムスタンプを無効にしてパスワードの入力を強制できる。ただ、無効にする方法がタイムスタンプをepoch(1970年1月1日)に設定するだけなので、システム時刻をepochに設定してしまえばパスワードなしでsudoが実行できてしまうという脆弱性。

  • sudo -k自体はパスワードなしでできる
  • sudo -kの実装がタイムスタンプをepochに設定という方法
  • システム時刻変更がパスワードなしでできる

あたりが問題なのかなあ