Описание уязвимости / 2025

CVE-2025-37858: переполнение при расчёте размера группы размещения JFS

Расчёт размера группы размещения JFS требовал 64-битного операнда до сдвига на 32-битных архитектурах.

Обзор

Публичная запись 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 · Целочисленная арифметика · Промежуточные типы
Первоисточник

Связанные материалы

08Контакт

Решим следующую сложную задачу.

Расскажите, что вы разрабатываете, что стоит на кону и когда нужен результат. Обсудим, подходит ли задача, и определим объём, результаты и стоимость.