Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

[General]: SYSCALL leaves the new code segment's internal role fields uninitialized

Chiusa Adatta ai principianti
#62 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
2/5
Tempo stimato
1-3 ore
Idoneità per principianti
75/100
Tipo di issue
Bug
Chiarezza
Specificata chiaramente
Stato di attività
Attiva
Stack tecnologico
xml

Direzione di ricerca

La definizione di SYSCALL si trova in data/instruction/SYSCALL.xml; esamina prima la costruzione di new_cs e i campi di ruolo CS esistenti. Riproduci il caso a 64 bit 0F 05 con la destinazione IA32_LSTAR mappata, quindi esegui il fetch di 48 0F 07. È completato quando il fetch e l'istruzione di ritorno non generano più uninitializedRead, mentre le assegnazioni architetturali rimangono invariate.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

Executable specification issue

Problem

SYSCALL builds a fresh Segment record and assigns its architectural CS fields, but omits the internal is_code, is_stack and is_64bit_mode_segment fields. Later executable-model helpers read those fields. This creates an uninitialized model value after an otherwise valid control transfer.

Concrete case

Execute a valid 64-bit SYSCALL with FRED and shadow-stack handling disabled and a canonical mapped IA32_LSTAR target. Then fetch an instruction at that target. The new CS has the expected architectural descriptor bits but lacks the internal role fields used by the fetch/address helpers. Executing SYSCALL and then fetching at the new entry point raises uninitializedRead in the executable model.

Expected behavior and references

References use Intel SDM 325462-093, checked on 2026-10-01. PDF page numbers below refer to the combined manual.

Source

Source checked at Intel SDM repository commit b5218b0f1cf512304d4b3cb364433a08fcee47cb.

The helper links are the readable current pages. Their reviewed definitions are in the compressed definition database at the pinned commit.

Suggested correction

When constructing new_cs, copy is_code, is_stack and is_64bit_mode_segment from the existing CS. Preserve the existing assignments to architectural descriptor fields and leave intentionally unspecified fields unspecified.

Evidence

Model execution of SYSCALL (0F 05) followed by an instruction fetch of 48 0F 07 at the configured kernel entry fails with uninitializedRead because the new CS lacks its role fields. Preserving is_code, is_stack and is_64bit_mode_segment allows the subsequent fetch and return instruction to execute.

AI disclosure

Assisted by Codex

Lingua principale
HTML
Stelle
50
Fork
4
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di intel/SDM

Tutte le issue di intel/SDM

Issue simili

Altre issue su Operating Systems

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.