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 |
| Product | sudo |
| Affected | 所有版本 直至 1.9.13p3 (Debian bookworm)(含) |
| Patched | main commit 1820a34(尚无上游发布版本) 及之后 |
| Auth | 已认证(见 source map) |
| License | GNU Affero GPL v3.0 |
| Lab | 仅限 127.0.0.1 · 供应商/客户披露包,非扫描器 |
plugins/sudoers parse_gentime / gram.y timespec。修复 sudo-project/sudo@1820a34 从 envp 复制 environ 并 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 honors POSIX TZ=UTC+14NOTAFTER epoch shifts +14h; command allowed as root不带 TZ:sudo -n id 被拒绝。带 TZ=UTC+14:uid=0(root)。
首先执行此操作: 将 sudo 更新至 main commit 1820a34(尚无上游发布版本)或更新版本。
升级后验证
CVE-2026-96512-Abraxas-Labs.py:映射的见证必须不出现。如果无法立即更新
仅针对 http://127.0.0.1:8088(或你绑定的回环地址)。不要将此脚本指向互联网。
python3 CVE-2026-96512-Abraxas-Labs.py
成功即响应体中出现上述见证。通用的 200 HTML 不算。
用于复现的回环栈。除非此文件夹中的 Dockerfile 从源码构建,否则使用官方镜像。
cd lab
docker compose up --force-recreate
如果 YAML 挂载了本地目录(来自版本表的插件 zip / 源码标签),请将易受攻击的产品树绑定到 Compose 旁边。除 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 授权。不提供任何担保。