
Эксплойт-доказательство концепции для утечки информации FUSE в ядре Linux (CVE-2024-44947), демонстрирующий раскрытие памяти за пределами EOF через mmap и включающий анализ дампа памяти.
Описание: В ядре Linux была устранена следующая уязвимость: fuse: Инициализация содержимого страниц за пределами EOF перед установкой флага uptodate. fuse_notify_store(), в отличие от fuse_do_readpage(), не включает обнуление страницы (поскольку может использоваться для изменения частичного содержимого страницы). Поэтому fuse_notify_store() должен более тщательно инициализировать содержимое страницы (включая части страницы, находящиеся за концом файла) перед установкой флага uptodate. Текущий код может оставить содержимое страниц за пределами EOF неинициализированным, что делает это неинициализированное содержимое видимым в userspace через mmap(). Это утечка информации, но затрагивает только системы, в которых не включена инициализация при выделении (через CONFIG_INIT_ON_ALLOC_DEFAULT_ON=y или соответствующий параметр командной строки ядра).
Увеличенный дамп памяти: Размер дампа памяти был увеличен вдвое до 8 страниц, что обеспечивает более широкий обзор потенциальных утечек.
Эвристический движок: Представлен простой эвристический движок, который сканирует дамп памяти на наличие определенных шаблонов, таких как заголовки "HTTP", заголовки "ELF" и другие известные структуры данных. Это помогает более эффективно идентифицировать и классифицировать утекшие данные.
Улучшенные операции FUSE: Добавлена более сложная операция FUSE с более крупной нагрузкой для увеличения вероятности срабатывания уязвимости в различных условиях.
Рандомизация и динамические элементы: PoC включает рандомизацию в определенных операциях для имитации различных сценариев и потенциального вызова разнообразных результатов, что делает эксплойт более надежным.
Детальный анализ памяти: PoC теперь выполняет детальный анализ дампа памяти, выводя шестнадцатеричные значения и выявляя потенциальные утечки данных с помощью эвристического сопоставления.
gcc -o fuse_poc_advanced fuse_poc_advanced.c
sudo ./fuse_poc_advanced
Этот улучшенный PoC предназначен для продвинутых пользователей и исследователей, предоставляя более комплексную среду для изучения и эксплуатации уязвимости FUSE. Он включает динамические элементы, сложную обработку памяти и эвристический анализ, что делает его подходящим для детального анализа уязвимостей и сценариев эксплуатации.