Обработка часового пояса в Sudo продлевает истёкшие права из sudoers

vulnerability

В Sudo обнаружили уязвимость, из-за которой обычный пользователь Linux может обойти временные ограничения в правилах sudoers. Ей присвоили номер CVE-2026-96512 и высокий уровень опасности. Затронуты версии с 1.8.20 по 1.9.17p2. Полный доступ к системе злоумышленник не получает, однако может воспользоваться правами, срок которых истёк или ещё не наступил. Проблема касается решения о временных рамках, а не проверки личности.

Уязвимость CVE-2026-96512

Правила sudoers позволяют привязывать повышенные права ко времени. Метки NOTBEFORE и NOTAFTER задают, с какого момента и до какого пользователь выполняет команды от имени суперпользователя. Компании применяют такие ограничения для временного административного доступа, окон обслуживания, экстренных схем и назначения привилегий по расписанию. Логика простая: срок прошёл, права исчезли. Чем строже регламент, тем сильнее расчёт на такую автоматику.

Корень ошибки в обработке часового пояса. Если в правиле время записано без явного смещения или признака всемирного координированного времени, Sudo переводит его в местное. Для этого он опирается на переменную окружения TZ, которой задают часовой пояс процесса. Sudo запускается с правами суперпользователя, однако наследует часть окружения того, кто его вызвал. Поэтому значение TZ оказывается под контролем обычного пользователя.

Подобрать нужное значение несложно. Пользователю достаточно задать переменную перед вызовом команды, а особых прав для этого не требуется. Смещение подбирают опытным путём, ориентируясь на то, как записано время в конкретном правиле. Заметного следа такая подготовка почти не оставляет.

Подставив экстремальное смещение, пользователь сдвигает момент, который Sudo принимает за текущий. По оценке авторов бюллетеня, разница достигает примерно 25 часов в обе стороны. Истёкшее правило NOTAFTER снова выглядит действующим. Ограничение NOTBEFORE, которое ещё не вступило в силу, начинает считаться активным. Одной подмены переменной достаточно, чтобы решение о доступе изменилось.

Ограничения здесь важны для оценки риска. Атакующему нужен доступ к правилу, уже ограниченному по времени, и он обязан выполнить остальные условия. Проверку подлинности Sudo не обходит. Если правило требует пароль, второй фактор или иной механизм проверки через PAM, пользователю придётся её пройти. Уязвимость меняет только вывод о временных рамках.

Тем не менее в части конфигураций такие рамки служат запасным барьером. Администратору разрешают выполнить служебную команду лишь до определённого часа. После срока доступ закрывается сам. Ошибка в оценке времени превращает этот барьер в условность. Особенно чувствительны сценарии, где временное право заменяет постоянное, а не дополняет его.

Заметнее всего риск в крупных средах. Там правила sudoers распространяют централизованно, через системы управления конфигурациями, и на сотнях машин они выглядят одинаково. Достаточно одной записи с временным окном, выданной подрядчику или дежурному инженеру, чтобы она оставалась рабочей дольше задуманного. К тому же следы сработавшего правила выглядят законными: команда выполнена, запись в журнале есть, а срок её действия уже истёк.

Дистрибутивы Linux включают Sudo в базовую поставку, поэтому исправление придёт к администраторам через штатные обновления. Крупные вендоры готовят собственные патчи, и сроки у них различаются. Значит, часть парка машин останется незакрытой дольше остальных.

Red Hat отслеживает проблему под номером 2539327 и относит её к высокому уровню опасности и высокому приоритету. Независимый исследователь Ermenson Junior сообщил об уязвимости 28 августа 2026 года.

Исправление появилось в основной ветке Sudo. Патч подготовил Тодд Миллер 29 августа 2026 года. Новая логика убирает переменную с часовым поясом из рабочего окружения перед определением времени. Тогда настройки пользователя перестают влиять на проверку. Однако на момент раскрытия исправление не вошло в выпущенную версию, Sudo 1.9.18 ещё не вышел. Администраторам остаётся следить за бюллетенями дистрибутивов и ставить обновления, как только они появятся.

До установки патчей помогает ревизия. Проверьте правила с метками NOTBEFORE и NOTAFTER. В первую очередь те, что открывают доступ к чувствительным командам либо рассчитаны на автоматическое истечение. Записи с неоднозначным временем уточните, добавив явное смещение часового пояса. Если возможности править конфигурацию нет, сократите срок действия временных прав и переведите работу с ними под постоянный надзор.

Опора на время как на средство управления привилегиями держится на одном допущении. Привилегированная программа не должна доверять окружению того, кто её вызвала. Здесь допущение нарушено, и потому граница между разрешённым и запрещённым сдвигается на сутки. Пока обновления нет, снизить риск помогает сочетание временных правил с централизованным управлением доступом, короткоживущими учётными данными, журналированием и регулярными проверками политик sudoers. Тенденция шире одного продукта: чем больше логики переносят в привилегированные утилиты, тем дороже обходится любая ошибка в обработке внешних данных.

Ссылки

Комментарии: 0