Una violazione della sicurezza semantica è un difetto in cui il software continua a funzionare, ma si comporta comunque in modo errato in un modo che incide sulla sicurezza, sulle policy o sulla fiducia. Il programma potrebbe non andare in crash né generare un errore evidente. Invece, accetta, trasforma o inoltra i dati in un modo che infrange il contratto previsto.
Questo è importante perché molti attacchi reali sfruttano la logica, non la stabilità. Ad esempio, un servizio può accettare un parametro non sicuro, aggirare una regola di autorizzazione o eseguire un'azione al di fuori dell'ambito consentito pur apparendo integro. Nei sistemi di agenti IA, questo può accadere nel passaggio tra il testo generato e l'esecuzione degli strumenti: il modello può produrre una richiesta che il server dovrebbe rifiutare, ma se la convalida è debole, l'azione pericolosa avviene comunque. Le difese si concentrano sulla convalida lato server, su contratti di input rigorosi, sul principio del privilegio minimo e sulla verifica che gli output e le chiamate agli strumenti corrispondano al comportamento atteso. I test basati solo sui crash possono perdere questi guasti, quindi i team di sicurezza usano semantic fuzzing e test delle policy per individuarli.


