#itsec
Uncovering GStreamer secrets
TL;DR: чел написал кастомный генератор начальных данных для фаззера и нашёл 29 новых потенциальных уязвимостей в GStreamer.
Фаззинг программ, разбирающих медиа-форматы, затруднителен тем, что готовые медиа-файлы слишком большие, чтобы эффективно использовать фаззинг, поскольку фаззеры обычно применяют побайтовые мутации к входным данным. Конкретно в случае с MP4 проблема усугубляется строением формата. Именно, файл MP4 состоит из нескольких box-ов, которые могут быть вложенными, и каждый из них начинается с заголовка, который включает в себя размер всего box-а. Если фаззер применяет мутацию, которая вставляет новые данные, он не в состоянии одновременно также и скорректировать размеры в нужных местах.
В статье описан алгоритм для генерирования случайных MP4-файлов. Коротко:
* создаётся случайное дерево, описывающее вложенные box-ы
* по узлам раскидываются теги
* листья дерева получают случайные размеры, размер остальных подсчитывается из суммы вложенных
* для каждого узла генерируются случайные данные в рамках выбранных размеров
* итоговое дерево сериализуется
К сожалению, из статьи непонятно, написал ли автор только генератор тестовых данных или ещё и мутатор.
Сами найденные ошибки, кстати, все типичные сишные: OOB-чтение/запись, разыменовывания NULL-указателей и даже одно use after free.
Uncovering GStreamer secrets
TL;DR: чел написал кастомный генератор начальных данных для фаззера и нашёл 29 новых потенциальных уязвимостей в GStreamer.
Фаззинг программ, разбирающих медиа-форматы, затруднителен тем, что готовые медиа-файлы слишком большие, чтобы эффективно использовать фаззинг, поскольку фаззеры обычно применяют побайтовые мутации к входным данным. Конкретно в случае с MP4 проблема усугубляется строением формата. Именно, файл MP4 состоит из нескольких box-ов, которые могут быть вложенными, и каждый из них начинается с заголовка, который включает в себя размер всего box-а. Если фаззер применяет мутацию, которая вставляет новые данные, он не в состоянии одновременно также и скорректировать размеры в нужных местах.
В статье описан алгоритм для генерирования случайных MP4-файлов. Коротко:
* создаётся случайное дерево, описывающее вложенные box-ы
* по узлам раскидываются теги
* листья дерева получают случайные размеры, размер остальных подсчитывается из суммы вложенных
* для каждого узла генерируются случайные данные в рамках выбранных размеров
* итоговое дерево сериализуется
К сожалению, из статьи непонятно, написал ли автор только генератор тестовых данных или ещё и мутатор.
Сами найденные ошибки, кстати, все типичные сишные: OOB-чтение/запись, разыменовывания NULL-указателей и даже одно use after free.
#ml
Про новые средства обхода блокировок нежелательных промптов в LLM
https://www.group-telegram.com/tech_b0lt_Genona/4885
Про новые средства обхода блокировок нежелательных промптов в LLM
https://www.group-telegram.com/tech_b0lt_Genona/4885
Жалобы на пустопорожние ТГ-каналы (которые я полностью разделяю): https://www.group-telegram.com/trueresearch/1899
Не репостом, потому что пост крупноват.
(thanks @tech_priestess)
Не репостом, потому что пост крупноват.
(thanks @tech_priestess)
Telegram
Русский research
Антисодержание
#телеграмное
Давно заметил корреляцию: чем точнее некий телеграм-канал следует стандартным SMM-правилам, тем более скучным он мне покажется. Ниже привожу очень субъективный список признаков. Интересно, насколько эти наблюдения близки подписчикам…
#телеграмное
Давно заметил корреляцию: чем точнее некий телеграм-канал следует стандартным SMM-правилам, тем более скучным он мне покажется. Ниже привожу очень субъективный список признаков. Интересно, насколько эти наблюдения близки подписчикам…
Forwarded from Neural Machine
Сейчас мы можем делать все, что захотим, но скоро Бог будет судить нас.
Forwarded from Гепардово гнездо
Еще про проклятые фичи баша
https://yossarian.net/til/post/some-surprising-code-execution-sources-in-bash
tl;dr: вот эта функция на баше при передаче «правильного» аргумента может привести к выполнению произвольного кода:
Мораль проста:не пишите на баше не передавайте в bash-скрипты недоверенные данные
https://yossarian.net/til/post/some-surprising-code-execution-sources-in-bash
tl;dr: вот эта функция на баше при передаче «правильного» аргумента может привести к выполнению произвольного кода:
function guess() {
num="${1}"
if [[ "${num}" -eq 42 ]]
then
echo "Correct"
else
echo "Wrong"
fi
}
Мораль проста:
⚡️Хочешь крутить слоты 🎰 ПРЯМО В TELEGRAM? 💎🥵🥵
Если да, то... Что с тобой, блин, не так?
Если да, то... Что с тобой, блин, не так?
Forwarded from Гепардово гнездо
https://www.ryanliptak.com/blog/every-rc-exe-bug-quirk-probably/
Не знаю, как вы, а я просто обожаю такие посты.
Здесь автор попытался написать альтернативную реализацию компилятора ресурсов Windows. Это программа, которая принимает текстовый
Альтернативных реализаций компилятора ресурсов много, но у автора была цель, которой не добивались остальные:написать все на новом модном современном Zig как можно точнее сохранить совместимость с оригинальной версией от Microsoft, вплоть до багов и незадокументированного поведения.
Как достичь этой цели? Например, можно написать код, а затем пофаззить оригинальную реализацию с альтернативной и найти, на каких данных они выдают разные результаты. В результате этого процесса автор нашел горы странного поведения в компиляторе ресурсов от Microsoft.
Пост длинный; если хотите посмотреть только самое интересное, можно поискать по странице по словам
Не знаю, как вы, а я просто обожаю такие посты.
Здесь автор попытался написать альтернативную реализацию компилятора ресурсов Windows. Это программа, которая принимает текстовый
.rc
файл с описанием менюшек, кнопочек, окошек, иконок, курсоров и прочего, и компилирует это описание в бинарный .res
файл, который потом встраивается в бинарник приложения под Windows.Альтернативных реализаций компилятора ресурсов много, но у автора была цель, которой не добивались остальные:
Как достичь этой цели? Например, можно написать код, а затем пофаззить оригинальную реализацию с альтернативной и найти, на каких данных они выдают разные результаты. В результате этого процесса автор нашел горы странного поведения в компиляторе ресурсов от Microsoft.
Пост длинный; если хотите посмотреть только самое интересное, можно поискать по странице по словам
utterly baffling
. Если же у вас много времени и вам не лень, можно прочесть и все :)Ryanliptak
Every bug/quirk of the Windows resource compiler (rc.exe), probably - ryanliptak.com
Fuzz testing decades-old software can turn up some curious behaviors
#prog #article
Bunnyhopping from the Programmer's Perspective
Или про то, как реализовать багофичу "банни-хопинг" в коде
Bunnyhopping from the Programmer's Perspective
Или про то, как реализовать багофичу "банни-хопинг" в коде
#prog #article (и #performancetrap, видимо?)
The RAM myth (перевод)
Или о оптимизационных трюках, которые позволяют шардировать данные в RAM значительно быстрее наивного подхода (спойлер: они лучше утилизируют кэш). Бенчмарки наглядно показывают, насколько неадекватным является представление о RAM как о линейной памяти с константным доступом.
The RAM myth (перевод)
Или о оптимизационных трюках, которые позволяют шардировать данные в RAM значительно быстрее наивного подхода (спойлер: они лучше утилизируют кэш). Бенчмарки наглядно показывают, насколько неадекватным является представление о RAM как о линейной памяти с константным доступом.
purplesyringa's blog
The RAM myth
The RAM myth is a belief that modern computer memory resembles perfect random-access memory. Cache is seen as an optimization for small data: if it fits in L2, it’s going to be processed faster; if it doesn’t, there’s nothing we can do.
Most likely, you believe…
Most likely, you believe…