Фаззинг JS-движков с помощью Fuzzilli

fuzzilli – это фаззер для javascript-движков от команды googleprojectzero. Его отличительная черта – это FuzzIL, промежуточный язык, который можно мутировать и затем транслировать в js. Этот язык обеспечивает мутированному js семантическую валидность: даже после нескольких раундов изменений в коде остается логика, с которой движок будет работать.
Движки, которые можно фаззить
JavaScriptCore(webkit)
Jerryscript
QJS
QTJS
Spidermonkey(gecko)
V8
XS
duktape
В этом списке V8, Spidermonkey, XS и duktape уже поддерживают работу с fuzzilli. А остальные движки можно пропатчить и начать фаззинг, патчи включены в состав инструмента.
С помощью fuzzilli уже найдено много интересных багов типа OOB. Разберемся, как он устроен.
Читать дальше →Источник: Хабрахабр