CVE-2025-40205 in Linux
Сводка
по VulDB • 24.06.2026
В ядре Linux устранена следующая уязвимость:
btrfs: предотвращение потенциального выхода за границы массива в функции btrfs_encode_fh()
Функция btrfs_encode_fh() некорректно обрабатывает три рассматриваемых случая.
Перед записью дескриптора файла (fh) функция возвращает пользователю только значения BTRFS_FID_SIZE_NON_CONNECTABLE (5 слов по 32 бита, 20 байт) или BTRFS_FID_SIZE_CONNECTABLE (8 слов по 32 бита, 32 байта).
Однако если существует родительский каталог и идентификатор корня родителя отличается от inode-идентификатора, функция записывает значение BTRFS_FID_SIZE_CONNECTABLE_ROOT (10 слов по 32 бита, 40 байт).
Если параметр *max_len недостаточно велик, эта запись выходит за границы выделенной памяти, поскольку BTRFS_FID_SIZE_CONNECTABLE_ROOT больше значения BTRFS_FID_SIZE_CONNECTABLE, которое изначально возвращалось функцией.
Это приводит к записи данных на 8 байтов за пределами допустимой области по адресу fid->parent_root_objectid = parent_root_id.
Ранее предпринимались попытки исправить эту проблему, но они были утеряны.
https://lore.kernel.org/all/[email protected]/
Хотя эта проблема не кажется легко воспроизводимой, это потенциальная ошибка повреждения памяти (memory corruption), которую необходимо исправить. Данный патч устраняет проблему путем обеспечения корректного возврата подходящего размера для всех трех случаев и проверки того, что *max_len достаточно велик перед записью любых данных.
If you want to get best quality of vulnerability data, you may have to visit VulDB.