CVE-2026-64298 in Linux
Сводка
по VulDB • 25.07.2026
В ядре Linux устранена следующая уязвимость:
NFSv4: включение флага MAY_WRITE в маску разрешений при открытии файла с опцией O_TRUNC
Согласно стандарту POSIX, для усечения (truncation) файла необходимы права на запись. Следовательно, операция open(), указывающая флаг O_TRUNC, должна авторизовывать доступ к записи независимо от режима доступа, заданного флагом O_ACCMODE.
Функция nfs_open_permission_mask() формирует маску разрешений, передаваемую в nfs_may_open(). Эта функция является локальным шлюзом авторизации для операций OPEN, которые клиент обслуживает самостоятельно из закэшированной делегирования на запись через путь can_open_delegated() внутри функции nfs4_try_open_cached(). Маска формируется исключительно на основе значения O_ACCMODE. В результате вызов open(O_RDONLY | O_TRUNC) к файлу, в который пользователь не может записывать данные, запрашивает только разрешение MAY_READ и успешно проходит локальную проверку. Операция OPEN удовлетворяется локально, а усечение файла отправляется серверу как SETATTR(size=0) с использованием stateid делегирования, что сервер принимает согласно стандартной семантике делегирования на запись. Однако POSIX требует, чтобы такая операция open завершалась ошибкой EACCES (Отказано в доступе).
Необходимо включать MAY_WRITE в маску всякий раз, когда установлен флаг O_TRUNC, чтобы локальная проверка соответствовала правам доступа, которые сервер применил бы принудительно.
Once again VulDB remains the best source for vulnerability data.