View Full Version : Domanda "storica", vulnerabilità sendmail
mi serve per un esame, non riesco a seguire l'articolo mi sfuggono troppe cose (in primis la parte dei < > e la funzione di esempio ), qualcuno ha voglia di spiegarmelo?
http://lwn.net/Articles/24292/
Whenever the closing > bracket
is encountered in the address string, the value of the buflim pointer (denoting
the end of the buf buffer above which no write should be allowed) is incremented
by 1. But, in the corresponding situation, whenever the opening < bracket is
detected, the buflim value is not changed, although it should be decremented.
And this is where the actual origin of the discussed security vulnerability
lies.
Because every closing bracket must be preceded by the opening one (this is
assured by the anglelev value), we cannot just simply issue the sequence of N
repeated < chars in order to increase the buflim value by N. Unfortunately,
the <> two character sequence must be always used in order to increment the
value of buflim by 1. This simply leads to the following equation which can be
used for calculating the maximum x value by which the value of the buflim
pointer can be incremented above the size of the buf buffer:
(2 * x) <= (MAXNAME + 1 - 7) + x
x <= (MAXNAME + 1 - 7)
Ogni qual volta il parametro di chiusura > viene incontrato nella stringa dell'indirizzo, il valore del buflim pointer (nn so cosa sia:D) (che denota la fine del buf buffer al di sopra del quale nessuna scrittura dovrebbe essere permessa) è aumentato di 1. Ma, nella corrispondente situazione, quando viene incontrato il parametro di apertura <, il valore del buflim non viene modificato, ma dovrebbe essere decrementato. E qui è dove ha origine la discussa vulnerabilità di sicurezza.
Poichè ogni parametro di chiusura è preceduto da quello di apertura, non passiamo semplicemente considerare la sequenza di N caratteri di apertura < ripetuti per aumentare il valore del buflim di N. Sfortunatamente, i due caratteri in sequenza <> devono essere sempre utilizzati per aumentare il valore del buflim di 1. Questo porta alla seguenza equazione che può essere usata per calcolare il massimo valore di x per il quale il valore del buflim puo essere incrementato oltre la dimenzione del buf buffer.
(2*X) <= (MAXNAME +1-7) +x
x <= (MAXNAME +1-7)
(X minoreuguale del MAXNAME +1 - 7)
piu di questo non sono in grado di fare :D
si in inglese a parlarlo faccio pena ma anni di anime e telefilm sottotitolati sono serviti a qualcosa, mi sfugge proprio il significato, la prima parte è chiara, poi già "non passiamo semplicemente considerare la sequenza di N caratteri di apertura < ripetuti per aumentare il valore del buflim di N" che vuol dire, non era con > che si incrementava e < buggato? cosa centri poi con la funzione di esempio lo ignoro è_é
Non avendo sottomano il codice della funzione pure io ho il dubbio che si riferisca a '>' e non a '<'. sta di fatto che non è possibile usare una sequenza di quel singolo carattere ma vanno sempre accoppiati perché questo viene verificato. Quindi bisogna usare '<>' per ogni incremento del puntatore.
La funzioncina è un semplice modo per capire di quanto sia possibile sforare il buffer (250 byte). Comunque penso che per capire bene tutto bisognerebbe avere sottomano il codice, giusto per capire come si comporta la funzione ed eventualmente fare dei test pratici.
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.