
Disclosure-Paket und PoC für CVE-2026-96512, eine Umgehung des sudo NOTBEFORE/NOTAFTER TZ-Zeitfensters, die lokale Rechteausweitung ermöglicht, mit Labor-Reproduktion und Patch-Anleitung.
abraxaslabs.tech · github.com/abraxas · @abraxas_null · CVE-2026-96512
sudo 1.9.13p3 (Debian bookworm) — Sudo Project
In sudo wurde eine Schwachstelle gefunden. Wenn sudoers-Regeln zeitbasierte Zugriffsbeschränkungen über NOTBEFORE oder NOTAFTER verwenden und die Zeitstempel den abschließenden Z-Zeitzonenindikator weglassen, stützt sich die Zeitauswertung auf die TZ-Umgebungsvariable, die vom aufrufenden Benutzer übernommen wird.
| 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 |
| Produkt | sudo |
| Betroffen | alle Versionen bis einschließlich 1.9.13p3 (Debian bookworm) |
| Gepatcht | main commit 1820a34 (noch kein Upstream-Release) und später |
| Auth | authentifiziert (siehe Source Map) |
| Lizenz | GNU Affero GPL v3.0 |
| Lab | nur 127.0.0.1 · Vendor/Client-Disclosure-Paket, kein Scanner |
plugins/sudoers parse_gentime / gram.y timespec. Fix sudo-project/sudo@1820a34 kopiert environ aus envp und 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 -> verweigert (abgelaufen)TZ=UTC+14 sudo -n /usr/bin/idparse_gentime mktime berücksichtigt POSIX TZ=UTC+14NOTAFTER-Epoch verschiebt sich um +14h; Befehl als root erlaubtOhne TZ: sudo -n id verweigert. Mit TZ=UTC+14: uid=0(root).
Zuerst dies tun: Aktualisieren Sie sudo auf main commit 1820a34 (noch kein Upstream-Release) oder neuer.
Nach dem Upgrade verifizieren
CVE-2026-96512-Abraxas-Labs.py erneut gegen den gepatchten Build aus: der zugeordnete Witness darf nicht erscheinen.Wenn Sie nicht sofort aktualisieren können
Zielen Sie ausschließlich auf http://127.0.0.1:8088 (oder das von Ihnen gebundene Loopback). Richten Sie dieses Skript nicht auf das Internet.
python3 CVE-2026-96512-Abraxas-Labs.py
Erfolg ist der Witness oben im Response-Body. Generisches 200-HTML ist es nicht.
Loopback-Stack zur Reproduktion. Offizielle Images, sofern nicht ein Dockerfile in diesem Ordner aus dem Quellcode baut.
cd lab
docker compose up --force-recreate
Binden Sie den verwundbaren Produkt-Tree neben Compose ein, wenn die YAML ein lokales Verzeichnis mountet (Plugin-Zip / Source-Tag aus der Versionstabelle). Veröffentlichen Sie nichts außer 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.
Dieses Disclosure-Paket ist unter der GNU Affero General Public License v3.0 lizenziert. Siehe LICENSE.
Dieses Paket ist für den Vendor, den Site-Eigentümer und lizenzierte Labs. Das Skript kommuniziert mit 127.0.0.1. Die Verwendung gegen Systeme, die Ihnen nicht gehören, ist von Abraxas Labs nicht autorisiert. Keine Gewährleistung.