イスラエルのPerception Point 研究チームは1月14日、Linuxカーネルにゼロディ脆弱性を発見したことを報告した。
この脆弱性は、悪用されると権限を昇格してルート権限を得られるというもので、2012年から存在するという。同社は、数千台のLinux PC/サーバとLinuxカーネルを利用しているAndroid OSのデバイスのうち、約66%に影響すると推測している。
この脆弱性はCVC-2016-0728として登録されており、2013年に公開されたLinuxカーネル3.8以降が影響を受ける。ドライバがセキュリティデータや認証鍵、暗号鍵などをカーネルに保持したり、キャッシュするOSキーリング機構における参照リークしたりすることで生じるという。
深刻なことに、バグそのものがメモリリークするだけでなく、簡単に参照カウントのオーバーフローができてしまい、結果として解放済みメモリに対して使用できるという。これにより、ローカルアクセス権限のあるユーザーが権限を昇格してルートアクセスが可能となったり、悪意あるアプリケーションがOSの基本的機能にアクセスできてしまったりする恐れがある。
なお、同研究チームの報告では、SMEP(Supervisor Mode Execution Protection)およびSMAP(Security Mode Access Protection)、SELinuxなどの安全対策を利用している場合、このバグの悪用が難しくなるという。SELinuxについては、Android 4.4より対応しており、Android OSすべてが影響を受けないのはこのためと見られる。
Perception Pointの研究チームは、Linuxカーネルセキュリティチームにこの脆弱性の詳細を開示した後、実証コード(Proof of concept exploit)を作成したとのこと。実証コードはgithubで公開されており、これを利用してローカルユーザーによるルート権限昇格に成功したと報告している。
なお、カーネルセキュリティチーム、同社のいずれもこの脆弱性を悪用した攻撃は確認していないとのことで、ディストリビューションなどからパッチが配布されればすぐに適用することを推奨している。