docs: record partial VM verification of cifswitch (CVE-2026-46243)

Verified 2026-06-08 on Ubuntu 24.04.4 / kernel 6.8.0-117-generic under
QEMU/HVF (offline: cloud image + payload iso, no guest networking):

- modprobe cifs registers the cifs.spnego key type (cifs-utils not needed
  to reach the primitive).
- Independent python3 ctypes add_key('cifs.spnego', forged
  uid/creduid/upcall_target) ACCEPTED (user-key control also accepted);
  module exploit() independently reported 'primitive CONFIRMED' then the
  honest EXPLOIT_FAIL.
- detect() returned PRECOND_FAIL without cifs-utils and VULNERABLE under
  SKELETONKEY_CIFS_ASSUME_PRESENT=1.

Still pending (so cifswitch stays 🟡 and is NOT counted as a verified
end-to-end CVE; verified count stays 28 of 37): a patched kernel
(>=6.12.90/7.0.10) to prove add_key is REJECTED there (probe discriminates
fixed-from-vulnerable), and the full namespace+NSS root-pop. Recorded in
NOTICE.md, CVES.md, RELEASE_NOTES.md, and tools/verify-vm/targets.yaml.
This commit is contained in:
KaraZajac
2026-06-08 13:53:29 -04:00
parent ada56b0db3
commit 050731396d
4 changed files with 38 additions and 7 deletions
@@ -67,3 +67,26 @@ vulnerable VM, in keeping with the project's no-fabrication rule.
(blocklists the `cifs` module — the vendor-recommended runtime
mitigation); `--cleanup` removes it. Architecture-agnostic — keyring and
namespace logic, no shellcode.
## Verification status (partial)
Verified **2026-06-08** on **Ubuntu 24.04.4 LTS, kernel 6.8.0-117-generic**
(QEMU/HVF, x86_64):
- `modprobe cifs` registers the `cifs.spnego` key type (dmesg:
`Key type cifs.spnego registered`) — `cifs-utils` is **not** required to
reach the primitive.
- An **independent** `python3` `ctypes` probe calling
`add_key("cifs.spnego", <forged uid/creduid/upcall_target>)` was
**ACCEPTED** (a plain `user`-key control was also accepted), and the
module's own `exploit()` independently reported **primitive CONFIRMED**
then the honest `EXPLOIT_FAIL`.
- `detect()` returned `PRECOND_FAIL` with `cifs-utils` absent and
`VULNERABLE` under `SKELETONKEY_CIFS_ASSUME_PRESENT=1`.
**Still pending** (so this stays 🟡 and is *not* counted as a verified
end-to-end CVE): (a) confirming `add_key` is **rejected** on a *patched*
kernel (≥ 6.12.90 / 7.0.10) — i.e. that the probe distinguishes
fixed-from-vulnerable rather than the key type always permitting userspace
creation; and (b) the full namespace + malicious-NSS root-pop, which
remains unbundled.