
Пакет раскрытия и PoC для CVE-2026-96512 — обход временного окна TZ NOTBEFORE/NOTAFTER в sudo, позволяющий локальное повышение привилегий, с воспроизведением в лаборатории и рекомендациями по исправлению.
abraxaslabs.tech · github.com/abraxas · @abraxas_null · CVE-2026-96512
sudo 1.9.13p3 (Debian bookworm) — Sudo Project
В sudo обнаружена уязвимость. Когда правила sudoers используют ограничения доступа по времени NOTBEFORE или NOTAFTER с временными метками, в которых отсутствует завершающий индикатор часового пояса Z, оценка времени опирается на переменную окружения TZ, унаследованную от вызывающего пользователя.
| CVE | CVE-2026-96512 · CVE.org |
| CWE | CWE-863 |
| CVSS | High: 7.8 CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H |
| Продукт | sudo |
| Затронуто | все версии вплоть до 1.9.13p3 (Debian bookworm) (включительно) |
| Исправлено | main commit 1820a34 (upstream-релиза пока нет) и новее |
| Аутентификация | аутентифицированный (см. карту исходников) |
| Лицензия | GNU Affero GPL v3.0 |
| Лаборатория | только 127.0.0.1 · пакет для раскрытия вендору/клиенту, не сканер |
plugins/sudoers parse_gentime / gram.y timespec. Исправление sudo-project/sudo@1820a34 копирует environ из envp и выполняет unsetenv TZ.
LOCALTZ=UTC+14 sudo -n /usr/bin/idsudoers: labuser ALL=(root) NOPASSWD: NOTAFTER=<now-1h no Z> /usr/bin/idlabuser sudo -n /usr/bin/id -> denied (expired)TZ=UTC+14 sudo -n /usr/bin/idparse_gentime mktime учитывает POSIX TZ=UTC+14NOTAFTER epoch сдвигается на +14ч; команда разрешается с правами rootБез TZ: sudo -n id запрещён. С TZ=UTC+14: uid=0(root).
Сделайте это в первую очередь: Обновите sudo до main commit 1820a34 (upstream-релиза пока нет) или новее.
Проверка после обновления
CVE-2026-96512-Abraxas-Labs.py против исправленной сборки: отображённое свидетельство не должно появляться.Если вы не можете обновиться немедленно
Цель — только http://127.0.0.1:8088 (или loopback, который вы привязали). Не направляйте этот скрипт в интернет.
python3 CVE-2026-96512-Abraxas-Labs.py
Успех — это свидетельство выше в теле ответа. Обычный HTML с кодом 200 — это не оно.
Loopback-стек, использованный для воспроизведения. Официальные образы, если только Dockerfile в этой папке не собирается из исходников.
cd lab
docker compose up --force-recreate
Привяжите дерево уязвимого продукта рядом с Compose, если YAML монтирует локальный каталог (zip плагина / тег исходников из таблицы версий). Публикуйте только 127.0.0.1.
github.com/sudo-project/sudo/commit/1820a349687522f51023d1ae5925125f59679a8c
Abraxas Labs: abraxaslabs.tech · github.com/abraxas · @abraxas_null
# CVE-2026-96512
CWE: CWE-863
CVSS: High 7.8 CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H (Red Hat).
## Description
sudoers `NOTBEFORE`/`NOTAFTER` timestamps without a trailing `Z` are converted with `mktime()`, which follows the caller’s `TZ`. A local user who is already named in such a rule can shift the window by up to ~25 hours (POSIX `TZ=UTC+14`) and run the allowed command outside the intended period. PAM authentication is unchanged.
## Product
sudo 1.9.13p3 on Debian bookworm (upstream 1.8.20–1.9.17p2). Fix in main `1820a34`; no upstream tarball yet at disclosure. Lab oracle is `uid=0(root)` via TZ, not a shell.
Этот пакет раскрытия лицензирован под GNU Affero General Public License v3.0. См. LICENSE.
Этот пакет предназначен для вендора, владельца сайта и лицензированных лабораторий. Скрипт обращается к 127.0.0.1. Использование его против систем, которыми вы не владеете, не авторизовано Abraxas Labs. Без гарантий.