
CVE-2026-96512에 대한 공개 패키지 및 PoC로, sudo의 NOTBEFORE/NOTAFTER TZ 시간 창 우회를 통해 로컬 권한 상승이 가능하며, 실습 재현 및 패치 지침을 포함합니다.
abraxaslabs.tech · github.com/abraxas · @abraxas_null · CVE-2026-96512
sudo 1.9.13p3 (Debian bookworm) — Sudo Project
sudo에서 결함이 발견되었습니다. sudoers 규칙이 후행 Z 시간대 표시자를 생략한 타임스탬프와 함께 NOTBEFORE 또는 NOTAFTER 시간 기반 접근 제한을 사용할 경우, 시간 평가가 호출 사용자로부터 상속된 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 | 인증됨 (소스 맵 참조) |
| License | GNU Affero GPL v3.0 |
| Lab | 127.0.0.1 전용 · 벤더/클라이언트 공개 팩, 스캐너 아님 |
plugins/sudoers parse_gentime / gram.y timespec. Fix sudo-project/sudo@1820a34 copies environ off envp and 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 rootTZ 없이: sudo -n id 거부됨. TZ=UTC+14 사용 시: uid=0(root).
먼저 이것을 하십시오: sudo를 main commit 1820a34 (아직 업스트림 릴리스 없음) 이상으로 업데이트하십시오.
업그레이드 후 확인
CVE-2026-96512-Abraxas-Labs.py를 다시 실행하십시오: 매핑된 witness가 나타나지 않아야 합니다.즉시 업데이트할 수 없는 경우
오직 http://127.0.0.1:8088 (또는 바인딩한 루프백)만 대상으로 하십시오. 이 스크립트를 인터넷으로 향하게 하지 마십시오.
python3 CVE-2026-96512-Abraxas-Labs.py
성공은 응답 본문에 위의 witness가 있는 것입니다. 일반적인 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에 의해 승인되지 않습니다. 보증 없음.