Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
litebox-snp-novalidation-userptr — Primitiva di scrittura locale elevata: LiteBox v0.1.0 SNP UserPtr è NoValidation quindi il buffer delle syscall guest può essere un VA del kernel | Kitploit
Strumenti/GitHubGitHub/abraxas/litebox-snp-novalidation-userptr
Escalation di PrivilegiMemory ForensicsAnalisi delle VulnerabilitàExploitVirtualizzazione per la SicurezzaSicurezza CloudSicurezza HardwarePaper e RicercaBinary Exploitation

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
GitHubabraxas/litebox-snp-novalidation-userptr

litebox-snp-novalidation-userptr

Primitiva di scrittura locale elevata: LiteBox v0.1.0 SNP UserPtr è NoValidation quindi il buffer delle syscall guest può essere un VA del kernel

Vedi Repository
74 giorni faNon ancora revisionato

Abraxas Labs - litebox-snp-novalidation-userptr

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  litebox-snp-novalidation-userptr

litebox-snp-novalidation-userptr

Classe: Primitive di scrittura (R/W guest-to-SNP-kernel) Reach: Locale

LiteBox v0.1.0 (d8556e3) - Microsoft

SNP LinuxKernel collega UserConstPtr / UserMutPtr a NoValidation, che restituisce il puntatore invariato. Il commento è TODO: implement pointer validation to ensure the pointers are in user space. LVBS esegue già il controllo di intervallo USER_ADDR_MIN..USER_ADDR_END (0x10000 .. 0x7ffffffff000 su x86_64) e racchiude le copie in STAC/CLAC. SNP no. La mmap guest di un VA del kernel viene rifiutata (TASK_ADDR_MAX), quindi gli store CPL3 non possono colpire l'heap del kernel. Il percorso della syscall viene eseguito in modalità kernel e può farlo. memcpy_fallible è rep movsb in modalità supervisore.

Questo residuo è R/W guest-to-SNP-kernel (VMPL2 LiteBox). Non è host VMPL0, non è hypervisor e non è firmware SNP.

IDnessuna CVE al momento
ClassePrimitiva di scrittura (R/W guest-to-SNP-kernel)
ReachLocale (userspace guest non attendibile all'interno di litebox_runner_snp)
CWECWE-823, CWE-119
CVSSAlto: 8.8 CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H
Prodottomicrosoft/litebox
Affettov0.1.0 (d8556e33676e47244bfefa139c1e9ff95bd67d53) piattaforma kernel SNP. TODO ancora su origin/main al commit 97001fd
Authguest già in esecuzione all'interno della VM SNP
LicenzaGNU Affero GPL v3.0
Labsolo 127.0.0.1. Nessun hardware SNP

Cosa può fare un attaccante

Chi: userspace guest non attendibile all'interno di litebox_runner_snp. La issue #505 (RFC aperta) riguarda questa classe. LVBS l'ha implementata. SNP no.

Integrità (gadget dimostrato in laboratorio)

Il laboratorio è un gadget copy_from_slice in modalità supervisore dei due validatori più una copia del pin litebox_platform_linux_kernel/src/lib.rs. Non è una syscall guest su hardware SNP.

PercorsoDest VARisultato
SNP NoValidation (identità)0x1000 (sotto USER_ADDR_MIN) e 0xffff800000000000 (GVA_OFFSET)accetta; memcpy scrive LITEBOX-SNP-NOVALIDATION-USERPTR-WITNESS nell'oggetto etichettato come kernel
Controllo di intervallo LVBSstesse destinazioni kernelrifiuta, errno=14 EFAULT, oggetto kernel vuoto
Entrambidestinazione utente legale 0x400000entrambi copiano il witness nell'oggetto utente
File pin nell'immaginen/acommento TODO più UserConstPtr / UserMutPtr collegati a NoValidation (LvbsValidateAccess assente)

Integrità (inferita dal percorso syscall del pin)

Metodo + sinkPrivilegio
read / readv / pread / recv* / getcwd / uname / epoll_pwait con buf = kernel VA -> UserMutPtr::copy_from_slice -> memcpy_fallible (rep movsb)scrive fino a MAX_KERNEL_BUF_SIZE (512 KiB) per syscall, o chunk di pagina iovec, in qualsiasi kernel VA SNP mappato. Il payload è scelto dal guest (pipe/file scritto dal guest)

Ricognizione (inferita)

Metodo + sinkPrivilegio
write / writev / send* con buf = kernel VA -> read_at_offsetlegge memoria kernel SNP mappata in un fd guest
kernel VA non mappatoEFAULT tramite la exception table (mappa di quali pagine kernel esistono)

Disponibilità (inferita)

Metodo + sinkPrivilegio
corrompere heap kernel SNP / page table / TLS dello shimcrash o dirottamento del kernel guest SNP. Non rivendico un gadget RIP affidabile

Cosa non concede questo residuo

  • Host VMPL0, hypervisor, firmware SNP
  • LVBS VTL1 (LvbsValidateAccess + STAC/CLAC)
  • sysretq verso un RIP del kernel (sanitize_for_user_return rifiuta RIP/RSP non-utente)
  • mmap / mprotect guest di kernel VA (TASK_ADDR_MAX)
  • NoValidation userland Linux/Windows (stesso processo; il confine host lì è seccomp, quello è un residuo affine)
  • Non è di per sé una violazione della riservatezza del C-bit SEV-SNP. È una copia confused-deputy all'interno del kernel SNP di LiteBox

Come l'ho trovato

litebox_platform_linux_kernel/src/lib.rs righe 59-67 su v0.1.0. Il TODO è ancora su main. LVBS ha già LvbsValidateAccess con USER_ADDR_MIN = 0x10000 e USER_ADDR_MAX = 0x7ffffffff000. Non avevo hardware SNP. Il laboratorio copia il file pin, implementa identità vs controllo di intervallo, e scrive il witness tramite NoValidation in dest VA che il controllo LVBS rifiuta.

Lab

cd lab
./run.sh

Loopback 127.0.0.1:19130. Progetto Compose litebox-snp-novalidation-userptr. Witness LITEBOX-SNP-NOVALIDATION-USERPTR-WITNESS. Ultima riga:

SUCCESS litebox-snp-novalidation-userptr novalidation-kernel-write-ok lvbs-range-reject pin-TODO-present user-range-copy-ok LITEBOX-SNP-NOVALIDATION-USERPTR-WITNESS

Fix

Collegare UserPtr di SNP allo stesso controllo di intervallo userspace che LVBS ha già (USER_ADDR_MIN..USER_ADDR_END), e mantenere le copie dietro la exception table. Non lasciare NoValidation su una piattaforma kernel.

L'intake del vendor è MSRC (https://msrc.microsoft.com/create-report). Non aprire una issue pubblica su GitHub per microsoft/litebox.

Contatti

Abraxas Labs - abraxaslabs.tech - github.com/abraxas - @abraxas_null - [email protected]

Scarica lo strumento