WebKit JSC における RegExp の JIT 最適化による脆弱性を調べた

https://googleprojectzero.blogspot.com/2019/08/jsc-exploits.html で Exploit 7 として紹介されている脆弱性について調べた。 PoC が公開されているのと Web に解説もあるので、取っ掛かりやすかろうということで。 これはどういうバグかというと、PoC の The Bug に書かれている通りで、RegEx のマッチング処理が...

Webkit の JIT の仕組みと JIT を利用した攻撃と防御について調べた

WebKit で使われている JIT 周りについて調べたのでメモ。このあたりの知識全然ないまま手探りでリソースを探して解釈した結果を書いているので、間違っていたらご指摘ください。 JSC の execution engine は次の4つの最適化レベルがある。これらは実行時に使い分けられる。 LLInt Baseline JIT DFG JIT FTL JIT ref : https://we...

WebKit の JSObject の Butterfly アドレスについて調べた

WebKit の JSObject について調べていたのでメモ。 準備 まずはリポジトリを clone する。 $ ghq get git://git.webkit.org/WebKit.git debug 付きで JavaScriptCore のみをビルドして実行する。 $ ./Tools/Scripts/build-webkit --jsc-only --debug $ ./WebKitBui...

論文感想 : Embassies: Radically Refactoring the Web / REST-ler: Automatic Intelligent REST API Fuzzing / AcidRain: Concurrency Related Attacks on Database-Backed Web Applications

この先生きのこるためにも、アカデミックな内容も頭に入れていった方がいいなと思い始めたのと、単純に面白い内容が多く好奇心が満たされるので、毎月ちょっとずつ論文を軽く読み始めている。 せっかくなので感想みたいなのを書き留めていこうと思う。 Mendeley に PDF 突っ込んであれこれするほどではないので、ブログに書いていこうと思った次第。 Embassies: Radically Refacto...

CVE-2018-7160 と Chrome DevTools Protocol のメモ

機動戦士ガンダムユニコーン RE:0096を視聴したところ、感化されて Aimer を聴きながらユニコーンのガンプラを作って大変満足している。 Node.js の inspector モードで DNS Rebinding を利用した RCE (CVE-2018-7160) がどのようなものなのか手元で確認してみたのでメモ。 メモなのでかなり殴り書き。 Chrome DevTools Protoc...