Linux向けのHDD暗号化機構に脆弱性、Enterキーを押し続けるだけでroot権限を取得 28
この状況に当てはまるシステムは少なく無さそう 部門より
多くのLinuxディストリビューションで採用されている、ソフトウェアによるディスク暗号化機構を利用するためのcryptsetupというツールに脆弱性が確認された(ZDNet Japan)。
この脆弱性は暗号化パーティションをマウントするために必要なブート時のパスワード入力に連続で失敗することで、rootパスワードを入力せずにroot権限で起動されたシェルを操作できるようになってしまうというもの。暗号化されたパーティションにはアクセスできないが、それ以外のパーティションにはアクセスが可能になってしまう。
脆弱性の発生原理はCVE-2016-4484: Cryptsetup Initrd root Shellというドキュメントで公開されているが、実装の不備によるもののようだ。
Linuxのブートスクリプトでは初期化に時間がかかるデバイスなどに対処するため、マウントできなかったデバイスについてマウント処理を繰り返すコードが含まれている。暗号化パーティションのマウントは、通常は間違ったパスワードを3回入力すると失敗となり、その状態でブート作業が継続されるようになっているのだが、このコードのためにパスワードを4回以上繰り返し入力できる状態になっているという。さらにマウント処理を一定回数(x86システムの場合30回)失敗するとroot権限でシェルが起動するようになっているそうだ。つまり、x86システムの場合合計93回パスワードの入力に失敗するとrootパスワードの入力なしにroot権限でシェルを操作できてしまうようになるという。
解決方法としては、3回パスワード入力に失敗したら再起動を要求するようコードを修正する、というものが提示されている。