Il wraparound di interi si verifica quando un numero cresce oltre il valore massimo che la sua variabile può memorizzare e “si riporta” a un valore molto più piccolo, spesso zero o un numero vicino a zero. Nel codice sensibile alla sicurezza, questo può far sembrare valido un valore di lunghezza, un contatore o una dimensione di allocazione quando in realtà non lo è.
Questo è importante perché gli aggressori possono usare il wraparound per aggirare i controlli sui limiti, attivare allocazioni di dimensioni insufficienti o corrompere la memoria. Il codice del kernel, i parser e i percorsi di elaborazione dei pacchetti sono particolarmente sensibili: se un campo di lunghezza va in wraparound, la logica successiva può convalidare il valore sbagliato e poi operare su uno spazio troppo ridotto. I difensori cercano controlli rigorosi sugli intervalli, routine di aritmetica sicura, fuzzing e revisione del codice dei calcoli di dimensione per evitare che i bug di wraparound si trasformino in crash o in escalation dei privilegi.


