Intel CET protegge dalla programmazione Return Oriented, non da buffer overflow di per sé. Il suo compito è di assicurarsi che ogni istruzione RET ritorni allo stesso indirizzo da cui proviene l'istruzione CALL corrispondente, e il gioco è fatto. Per fare ciò, l'hardware mantiene una sezione di memoria chiamata "shadow stack" che è fuori dalla portata del programma stesso. Ogni istruzione CALL trasferisce l'indirizzo di ritorno appropriato nello stack shadow e ogni RET preleva il valore superiore dallo shadow stack e interrompe il processo se tale valore non è uguale al valore restituito nello stack effettivo.
La programmazione orientata al ritorno è un modo per aggirare la tecnologia DEP (o NX). Dato che con DEP non puoi semplicemente inserire più codice eseguibile, puoi invece utilizzare ROP per sovrascrivere gli indirizzi di ritorno e stringere insieme i frammenti del codice del programma in un ordine che gli consente di eseguire le tue offerte.
Gli overflow del buffer vengono utilizzati per iniettare payload nello spazio di memoria di un processo e tali payload possono essere certamente payload ROP. Ma non esiste una relazione fondamentale tra buffer overflow e Intel CET.