Обзор
Публичная запись Linux CVE описывает проблему разрядности целых чисел в dbExtendFS(), в fs/jfs/jfs_dmap.c. JFS вычисляла размер группы размещения выражением 1 << l2agsize. Большой сдвиг 32-битного операнда мог вызвать неопределённое поведение и некорректный размер группы.
Исправление приводит левый операнд к s64 до сдвига: (s64)1 << l2agsize. Вычисление использует 64-битную арифметику, соответствующую типу сохраняемого размера группы. Приведение только результата оставило бы проблемную операцию в исходной разрядности.
Некорректный размер группы может повлиять на дальнейшие операции файловой системы. Публичное описание указывает на возможное повреждение файловой системы и сбои ядра. Оно также содержит ссылки на upstream-исправление и сведения о затронутых версиях; исправления дистрибутивов нужно проверять по рекомендациям поставщика пакета.
Общий вывод для анализа кода — проверять типы промежуточных арифметических операций, особенно сдвигов и расчётов размеров. Широкая переменная назначения сама по себе не делает узкое выражение безопасным.
Основные сведения
- Описание уязвимости
- 2025
- Публичная запись
- Linux kernel · National Vulnerability Database
- Затронутый код
- JFS filesystem · dbExtendFS() in fs/jfs/jfs_dmap.c
- Темы
- CVE-2025-37858 · JFS · Целочисленная арифметика · Промежуточные типы