[ Home | Liste | F.A.Q. | Risorse | Cerca... ]


[ Data: precedente | successivo | indice ] [ Argomento: precedente | successivo | indice ]


Archivio: openbsd@sikurezza.org
Soggetto: 2.6-stable ipfilter patch..
Mittente: Igor Falcomata'
Data: 17 May 2000 16:04:20 -0000
allego una patch per /usr/src/sys/inet/fil.c (IP Filter) distribuito con
la 2.6-stable, come da un bug evidenziato da Darren sulla ml di ipfilter
(Fix bug in dealing with "hlen == 1 and opt > 1" - Itojun) e che
potrebbe implicare una vulnerabilita' nel trattare quei pacchetti...

Il messaggio originale e' recuperabile presso:

http://www.false.net/ipfilter/2000_05/0091.html

chi usa la 2.7-current si aggiorni sul cvs, le ultime release *quello
dove e' incorportato IP Filter 3.3.14 sono ok

bye
Koba

ps (ovviamente)

cd /usr/src/sys/netinet
patch -p0 < /dir/dove/sta/fil.c.patch

e poi ricompilare il kernel, per essere sicuri meglio cancellare la
directory */compile/NOME e rifare config NOME da */conf (ps: se NON
usate ipfilter, non serve a un tubo questa patch)

-- 

Igor Falcomata'
igor@infosec.it
koba@sikurezza.org
 --
Infosec srl - www.infosec.it
Network Security & Data Defense
 --
free advertising: www.openbsd.org - Multiplatform Ultra-secure OS
--- fil.c.orig	Wed May 17 19:00:51 2000
+++ fil.c	Wed May 17 19:00:51 2000
@@ -275,12 +275,19 @@
 	}
 
 
-	for (s = (u_char *)(ip + 1), hlen -= sizeof(*ip); hlen; ) {
-		if (!(opt = *s))
-			break;
-		ol = (opt == IPOPT_NOP) ? 1 : (int)*(s+1);
-		if (opt > 1 && (ol < 2 || ol > hlen))
+	for (s = (u_char *)(ip + 1), hlen -= (int)sizeof(*ip); hlen > 0; ) {
+		opt = *s;
+		if (opt == '\0')
 			break;
+		else if (opt == IPOPT_NOP)
+			ol = 1;
+		else {
+			if (hlen < 2)
+				break;
+			ol = (int)*(s + 1);
+			if (ol < 2 || ol > hlen)
+				break;
+		}
 		for (i = 9, mv = 4; mv >= 0; ) {
 			op = ipopts + i;
 			if (opt == (u_char)op->ol_val) {



[ Home | Liste | F.A.Q. | Risorse | Cerca... ]

www.sikurezza.org - Italian Security Mailing List
(c) 1999-2005