group-telegram.com/dereference_pointer_there/8986
Last Update:
#itsec
Uncovering GStreamer secrets
TL;DR: чел написал кастомный генератор начальных данных для фаззера и нашёл 29 новых потенциальных уязвимостей в GStreamer.
Фаззинг программ, разбирающих медиа-форматы, затруднителен тем, что готовые медиа-файлы слишком большие, чтобы эффективно использовать фаззинг, поскольку фаззеры обычно применяют побайтовые мутации к входным данным. Конкретно в случае с MP4 проблема усугубляется строением формата. Именно, файл MP4 состоит из нескольких box-ов, которые могут быть вложенными, и каждый из них начинается с заголовка, который включает в себя размер всего box-а. Если фаззер применяет мутацию, которая вставляет новые данные, он не в состоянии одновременно также и скорректировать размеры в нужных местах.
В статье описан алгоритм для генерирования случайных MP4-файлов. Коротко:
* создаётся случайное дерево, описывающее вложенные box-ы
* по узлам раскидываются теги
* листья дерева получают случайные размеры, размер остальных подсчитывается из суммы вложенных
* для каждого узла генерируются случайные данные в рамках выбранных размеров
* итоговое дерево сериализуется
К сожалению, из статьи непонятно, написал ли автор только генератор тестовых данных или ещё и мутатор.
Сами найденные ошибки, кстати, все типичные сишные: OOB-чтение/запись, разыменовывания NULL-указателей и даже одно use after free.
BY Блог*
Warning: Undefined variable $i in /var/www/group-telegram/post.php on line 260
Share with your friend now:
group-telegram.com/dereference_pointer_there/8986