From owner-announce-jp@jp.freebsd.org  Tue Feb 20 18:55:41 2001
Received: (from daemon@localhost)
	by castle.jp.freebsd.org (8.9.3+3.2W/8.7.3) id SAA78383;
	Tue, 20 Feb 2001 18:55:41 +0900 (JST)
	(envelope-from owner-announce-jp@jp.FreeBSD.org)
Date: Mon, 19 Feb 2001 03:23:12 +0900 (JST)
Message-Id: <20010219.032312.41628057.hrs@eos.ocn.ne.jp>
To: announce-jp@jp.FreeBSD.org
From: Hiroki Sato <hrs@eos.ocn.ne.jp>
In-Reply-To: <200102071932.f17JWfV04151@freefall.freebsd.org>
References: <200102071932.f17JWfV04151@freefall.freebsd.org>
X-Mailer: Mew version 1.95b101 on Emacs 20.7 / Mule 4.0 (HANANOEN)
Mime-Version: 1.0
Content-Type: Text/Plain; charset=iso-2022-jp
Content-Transfer-Encoding: 7bit
X-ML-maintainer: owner-announce-jp@jp.FreeBSD.org
Precedence: list
X-Distribute: distribute version 2.1 (Alpha) patchlevel 24e+000315
X-Sequence: announce-jp 696
Subject: Re: ANNOUNCE: FreeBSD Security Advisory: FreeBSD-SA-01:08.ipfw [REVISED]
Errors-To: owner-announce-jp@jp.freebsd.org
Sender: owner-announce-jp@jp.freebsd.org


FreeBSD $B%;%-%e%j%F%#4+9p(B $BF|K\8lHG(B
=============================================================================
FreeBSD-SA-01:08 (2001-01-23)
 * ipfw/ip6fw allows bypassing of 'established' keyword [REVISED]
=============================================================================

 $B$3$N%a!<%k$O(B, announce-jp $B$KN.$l$?(B

  Subject: ANNOUNCE: FreeBSD Security Advisory: FreeBSD-SA-01:08.ipfw [REVISED]
  From: FreeBSD Security Advisories <security-advisories@freebsd.org>
  Date: Wed, 7 Feb 2001 11:32:41 -0800 (PST)
  Message-Id: <200102071932.f17JWfV04151@freefall.freebsd.org>
  X-Sequence: announce-jp 684

 $B$rF|K\8lLu$7$?$b$N$G$9(B. 

 $B86J8$O(B PGP $B=pL>$5$l$F$$$^$9$,(B, $B$3$NF|K\8lLu$O(B PGP $B=pL>$5$l$F$$$^$;$s(B. 
 $B=$@5%Q%C%AEy$NFbMF$,2~cb$5$l$F$$$J$$$3$H$r3NG'$9$k$?$a$K(B PGP $B=pL>$N(B
 $B%A%'%C%/$r9T$J$&$K$O(B, $B86J8$r;2>H$7$F$/$@$5$$(B. 

 $BF|K\8lLu$*$h$S(B, $B%_%i!<%5%$%HMxMQ$N>\:Y$K$D$$$F$O(B, $BJ8Kv$N!V(BA. FreeBSD
 $B%;%-%e%j%F%#4+9p(B $BF|K\8lHG$K$D$$$F!W$r$4Mw$/$@$5$$(B.


                                     [$BK]Lu<T(B: $B:4F#(B $B9-@8(B <hrs@jp.FreeBSD.org>]
--($B$3$3$+$i(B)
=============================================================================
FreeBSD-SA-01:08                                           Security Advisory
                                                                FreeBSD, Inc.

$B%H%T%C%/(B:	ipfw/ip6fw allows bypassing of 'established' keyword [REVISED]

$BJ,N`(B:		core
$B%b%8%e!<%k(B:	kernel
$B9pCNF|(B:		2001-01-23
$B2~D{F|(B:         2001-02-07
$B%/%l%8%C%H(B:	Aragon Gouveia <aragon@phat.za.net>
$B1F6AHO0O(B:	FreeBSD 3.x ($BA4%j%j!<%9(B),
                FreeBSD 4.x ($BA4%j%j!<%9(B),
                $B=$@5F|0JA0$N(B FreeBSD 3.5-STABLE $B$*$h$S(B 4.2-STABLE
$B=$@5F|(B:		2001-01-09 (FreeBSD 4.2-STABLE)
                $B$?$@$7(B 2001-02-01 $B$+$i(B 2001-02-03 $B$^$G$N4V$@$1(B,
                $B=$@5A0$N>uBV$KLa$k$H$$$&<j0c$$$,$"$j$^$7$?(B.
		2001-01-12 (FreeBSD 3.5-STABLE)
FreeBSD $B$K8GM-$+(B:	Yes


0.   $B2~D{MzNr(B - Revision History

v1.0  2001-01-23  $B=iHG8x3+(B
v1.1  2001-02-07  $B=$@58e$N(B 4.2-STABLE $B$K$*$$$F(B, $B=$@5A0$N>uBV$KLa$k$H$$$&(B
                  $B<j0c$$$,$"$C$?$3$H$NCm5-$rDI2C(B.


I.   $BGX7J(B - Background

ipfw $B$O(B, IP $B%Q%1%C%H$N%U%#%k%?%j%s%0(B, $B%j%@%$%l%/%H(B, $B%H%i%U%#%C%/2]6b$r(B
$B<B8=$9$k$?$a$N%7%9%F%`5!G=$N0l$D$G$9(B.  ip6fw $B$O(B IPv6 $B%M%C%H%o!<%/$KBP1~$7$?(B
$B%f!<%F%#%j%F%#$G(B, FreeBSD 4.0 $B$H$=$l0J9_$K4^$^$l$F$$$^$9(B.
$B$?$@$78e<T$O8E$$%P!<%8%g%s$N(B ipfw $B$r85$K$7$F$*$j(B, $B$"$^$jB?$/$N5!G=$O(B
$B;}$C$F$$$^$;$s(B.


II.  $BLdBj$N>\:Y(B - Problem Description

ipfw $B$*$h$S(B ip6fw $B$O(B, ECE $B%U%i%0$N%;%C%H$5$l$?$9$Y$F$N%Q%1%C%H$r(B
$B3NN):Q$_(B TCP $B@\B3$N%Q%1%C%H$N0l$D$H$7$F07$$$^$9(B.  
$B$3$l$O(B TCP $BM=Ls%U%i%0%U%#!<%k%I$N%*!<%P%m!<%I$,860x$G$9(B.
$B$=$N$?$a(B, $B$=$l$i$OK\Mh(B, $B3NN):Q$_(B TCP $B@\B3$N%Q%1%C%H$G$J$$$K$b4X$o$i$:(B,
'established' $B=$>~;R$,IU$$$?(B ipfw $B%k!<%k$KIT@5$K%^%C%A$7$F$7$^$$$^$9(B.

 [$BLuCm(B] ipfw $BFbIt$G$O(B, $B%Q%1%C%H$NJ,N`$K(B TCP $BM=Ls%U%i%0%U%#!<%k%I$,(B
        $BMQ$$$i$l$F$$$^$9(B.$B!V(BTCP $BM=Ls%U%i%0%U%#!<%k%I$N%*!<%P%m!<%I!W$H$O(B,
        ipfw $B$,!V3NN):Q$_!W$KJ,N`$9$k$?$a$K@_Dj$7$F$$$?%U%i%0$H(B,
        ECE $B%U%i%0$,0lCW$7$F$7$^$C$F$$$?$3$H$r;X$7$^$9(B.
        $B$3$N$?$a(B, $B85!9(B ECE $B%U%i%0$,@_Dj$5$l$F$$$k%Q%1%C%H$H(B,
        ipfw $B$,3NN):Q$_$N@\B3$K4^$^$l$k$HH=CG$7$?%Q%1%C%H$N(B
        $B6hJL$,IU$+$J$/$J$C$F$7$^$C$?$3$H$,:#2s$NLdBj$N860x$G$9(B.

ECE $B%U%i%0$O8=;~E@$K$*$$$F(B, $B%$%s%?!<%M%C%H>e$G9-$/;H$o$l$F$$$k$b$N$G$O(B
$B$J$$$H9M$($i$l$F$$$^$9(B.  $B$3$l$OmUmTDLCN$N$?$a$K(B TCP $B$K2C$($i$l$?(B
$B<B83E*$J3HD%5!G=$N0l$D$G$9(B.  $B$7$+$7(B, $BB>$NM-L>$J%*%Z%l!<%F%#%s%0%7%9%F%`$N(B
$B0l$D$O>/$J$/$H$b(B, $B$3$N(B ECE $B%U%i%0$N$D$$$?%Q%1%C%H$rFCDj$N>r7o2<$G(B
$B=PNO$9$k$3$H$,3NG'$5$l$F$$$^$9(B.

$B$7$?$,$C$F(B, $B$3$NLdBj$K$h$k%;%-%e%j%F%#>e$N<eE@$,B8:_$9$k$N$O(B,
ipfw $B$b$7$/$O(B ip6fw $B$,M-8z2=$5$l(B, 'established' $B=$>~;R$rMxMQ$7$?(B,
$B$?$H$($P(B "allow tcp from any to any established" $B$H$$$&$h$&$J(B
TCP $B%k!<%k$r4^$`%k!<%k%;%C%H$r;H$C$F$$$k%7%9%F%`$K8B$i$l$^$9(B.
$B$3$N<eE@$K$h$k1F6AHO0O$r0lHLE*$KFCDj$9$k$3$H$O$G$-$^$;$s(B.
$B$=$l$i$O(B, $B;H$o$l$F$$$k%k!<%k%;%C%H$K$b0MB8$9$k$?$a$G$9(B.

FreeBSD 3.5.1 $B$*$h$S(B FreeBSD 4.2 $B$r4^$`(B, $B=$@5F|0JA0$N$9$Y$F$N(B
FreeBSD $B%j%j!<%9$,(B, $B$3$N%;%-%e%j%F%#>e$N<eE@$N1F6A$r<u$1$^$9(B.
$B$3$NLdBj$O(B, ($B>-Mh%j%j!<%9$5$l$k(B) FreeBSD 4.3 $B$N8x3+A0$K=$@5$5$l$^$7$?(B.

$B;DG0$J$3$H$K(B, FreeBSD 5.0-CURRENT $B$+$i$NJQ99E@$rE}9g$9$k:](B,
$B%;%-%e%j%F%#>e$N=$@5$,85$KLa$5$l$F$7$^$&$H$$$&<j0c$$$,$"$j$^$7$?(B.
$B$3$N<j0c$$$,H/@8$7$?$N$O(B, $B0J2<$N4|4V$G$9(B.

$BLdBj$N:FH/@8F|;~(B: Thu, 1 Feb 2001 12:25:10 -0800 (PST)
$BLdBj$N:F=$@5F|;~(B: Sat, 3 Feb 2001 21:49:00 -0800 (PST)

$B1F6A$r<u$1$?(B CVS $B%j%S%8%g%s$O(B /usr/src/sys/netinet/ip_fw.c $B$N(B
1.131.2.13 $B$G(B, $B:F=$@5$O(B 1.131.2.14 $B$G9T$J$o$l$^$7$?(B.
$B$A$J$_$K(B, $B$3$N%;%-%e%j%F%#4+9p$G85!9LdBj$H$J$C$F$$$?%j%S%8%g%s$O(B
1.131.2.11 $B$h$jA0$N$b$N$G$9(B.  $B%;%-%e%j%F%#4+9p$N=iHG$K4^$^$l$F$$$k(B
$B=$@5%Q%C%A$r(B 1.131.2.11 $B$r4^$`(B, $B$=$l$h$jA0$N$b$N$KE,MQ$7$?>l9g$K$O(B
$B%;%-%e%j%F%#>e$N<eE@$O@5>o$K=$@5$5$l$F$*$j(B, $BLdBj$O$"$j$^$;$s(B.

ip_fw.c $B%U%!%$%k$N(B CVS $B%j%S%8%g%s$r3N$+$a$k$K$O(B, $B0J2<$N%3%^%s%I$r(B
$B<B9T$7$^$9(B.

mollari# ident /usr/src/sys/netinet/ip_fw.c
/usr/src/sys/netinet/ip_fw.c:
	$FreeBSD: src/sys/netinet/ip_fw.c,v 1.131.2.14 2001/02/04 05:48:59 rwatson Exp $

$B%j%S%8%g%s(B 1.131.2.13 $B$HI=<($5$l$?$i(B, $B2<5-%;%/%7%g%s(B V $B$K$"$k(B
$B!V8eLa$jHG!W=$@5%Q%C%A$r%@%&%s%m!<%I$7$F$/$@$5$$(B.


III. $B1F6AHO0O(B - Impact

$B%j%b!<%H$N967b<T$O(B, ECE $B%U%i%0$,@_Dj$5$l$?(B TCP $B%Q%1%C%H$rMxMQ$7$F(B
$BFCDj$N(B ipfw $B%k!<%k$rDL2a$9$k$3$H$,2DG=$G$9(B.  $B$3$l$O%U%!%$%"%&%)!<%k$N(B
$B5!G=$rL5NO2=$9$k$3$H$,$G$-$k2DG=@-$,$"$j$^$9(B.

$BA0=R$7$?<j0c$$$K$h$k=$@5$N8eLa$j$O(B, $B$=$l<+BN$b$5$i$K?<9o$J(B
$B%;%-%e%j%F%#>e$N<eE@$H$J$j$^$9(B.  $B$3$l$K$h$j(B, $BLdBj$H$J$C$F$$$k(B
ipfw $B%k!<%k$O(B ECE $B%U%i%0$,%;%C%H$5$l$?%Q%1%C%H$@$1$r5v2D$9$k$N$G$O$J$/(B,
$B%U%i%0$N>uBV$K0M$i$:(B, $B$9$Y$F$N(B TCP $B%Q%1%C%H$rDL2a$5$;$F$7$^$$$^$9(B
($BDL>o(B, $B$3$&$$$C$?F0:n$r$5$;$k$K$OFC<l$J%D!<%k$,I,MW$H$J$j$^$9(B).


IV.  $B2sHrJ}K!(B - Workaround

$B$3$NLdBj$K$h$k%;%-%e%j%F%#>e$N<eE@$O(B, 'established' $B%k!<%k$H(B
ECE $B%U%i%0$,@_Dj$5$l$?(B TCP $B%Q%1%C%H$N$_$K1F6A$7$^$9(B.  $B$=$N$?$a(B
$B%7%9%F%`$N%k!<%k%;%C%H$rD4@0$9$k$3$H$G(B, $B$3$N<eE@$r2sHr$9$k$3$H$,2DG=$G$9(B.
$B0lHLE*$K(B, 'established' $B%k!<%k$N$[$H$s$I$O(B (TCP $B%U%i%0=$>~;R$,$J$$(B) $BDL>o$N(B
TCP $B%k!<%k$H(B 'setup' $B%k!<%k$rMQ$$$F5-=R$9$k$3$H$,$G$-$^$9(B.
$B$?$@$7$=$N>l9g(B, $B%k!<%k%;%C%H$N9=B$E*$JJQ99$*$h$S(B, $BHV9f$N?6$jD>$7$,I,MW$K(B
$B$J$k$+$bCN$l$^$;$s(B.


V.   $B2r7h:v(B - Solution

$B<!$N$$$:$l$+$K=>$C$F$/$@$5$$(B.

1) $B<eE@$r;}$C$?(B FreeBSD $B%7%9%F%`$r=$@5F|0J9_$N(B 3.5-STABLE $B$b$7$/$O(B
   4.2-STABLE $B$K%"%C%W%0%l!<%I$7$^$9(B.

2) $B0J2<$N>l=j$K$"$k=$@5%Q%C%A$r8=:_MxMQCf$N%7%9%F%`$KE,MQ$7$F(B,
   $B%7%9%F%`$r:F9=C[$7$^$9(B.

[FreeBSD 4.x - 2001-02-01 $B$KLa$5$l$?ItJ,$r:F=$@5$9$k$?$a$N=$@5%Q%C%A(B]
# fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-01:08/ipfw-4.2-regression.patch
# fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-01:08/ipfw-4.2-regression.patch.asc

[FreeBSD 4.x]
# fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-01:08/ipfw-4.x.patch
# fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-01:08/ipfw-4.x.patch.asc

[FreeBSD 3.x]
# fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-01:08/ipfw-3.x.patch
# fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-01:08/ipfw-3.x.patch.asc

PGP $B%f!<%F%#%j%F%#$r;H$C$F(B PGP $B=pL>$r3NG'$7$^$9(B.

root $B8"8B$G<!$N%3%^%s%I$r<B9T$7$^$9(B.

# cd /usr/src
# patch -p < /path/to/patch
# cp /usr/src/sys/netinet/tcp.h /usr/src/sys/netinet/ip_fw.h /usr/include/netinet/
# cd /usr/src/sbin/ipfw
# make depend && make all install
# cd /usr/src/sys/modules/ipfw
# make depend && make all install

4.x $B%7%9%F%`$N>l9g$O(B, $B>e$K2C$($F<!$N<j=g$r9T$J$$$^$9(B.

# cp /usr/src/sys/netinet6/ip6_fw.h /usr/include/netinet6/
# cd /usr/src/sbin/ip6fw
# make depend && make all install
# cd /usr/src/sys/modules/ip6fw
# make depend && make all install

$BCm0U(B: ip6fw $B$N=$@5%Q%C%A$O$^$@;n83$5$l$F$$$^$;$s$,(B,
      $B=$@5$O@5$7$$$b$N$G$"$k$H9M$($i$l$F$$$^$9(B.  ip6fw $B$O(B
      $B8=:_J]<i$5$l$F$*$i$:(B, $B>-Mh$N%j%j!<%9$G$O:o=|$5$l$kM=Dj$G$9(B.

$B%7%9%F%`$,(B ipfw $B$b$7$/$O(B ip6fw $B%+!<%M%k%b%8%e!<%k(B (kldstat(8) $B;2>H(B) $B$r(B
$B;HMQ$7$F$$$k>l9g$K$O(B, kldload(8)/kldunload(8) $B$rMQ$$$k$3$H$G(B
$B%+!<%M%k$+$i%b%8%e!<%k$r<h$j30$7(B, $B=$@5HG$N%b%8%e!<%k$rF3F~$9$k$3$H$,(B
$B2DG=$G$9(B.  $B$3$N:](B, $BDL>o$O(B /etc/rc.firewall $B%9%/%j%W%H$G<B9T$5$l$k(B
$B%U%!%$%"%&%)!<%k%k!<%k$N:FFI$_9~$_$r(B, $BL@<(E*$K9T$J$&I,MW$,$"$j$^$9(B.
$B$3$3$G(B, ipfw $B$b$7$/$O(B ip6fw $B%b%8%e!<%k$NF3F~;~$K$O(B, $B%G%U%)%k%H$G(B
$B$9$Y$F$N%Q%1%C%H$r5qH]$9$k$h$&$K%7%9%F%`$,@_Dj$5$l$F$7$^$&$3$H$K(B
$BCm0U$7$F$/$@$5$$(B.  $B$=$N$?$a$3$N:n6H$O(B, $B%3%s%=!<%k7PM3$G%7%9%F%`$K(B
$B%"%/%;%9$7$F$$$k;~$+(B, $B$b$7$/$O:Y?4$NCm0U$rJ'$C$F<!$N$h$&$J(B
$B%3%^%s%I$r<B9T$9$k$3$H$G$N$_(B, $B9T$J$&$Y$-$G$9(B.

# kldload ipfw && sh /etc/rc.firewall

$B>e$N%3%^%s%I$O(B, $B%+!<%M%k%b%8%e!<%k$NF3F~(B, $B$*$h$S(B
$B%U%!%$%"%&%)!<%k%k!<%k$N:FFI$_9~$_$r=gHV$K<B9T$7$^$9(B.

$B$^$?(B, ipfw $B$b$7$/$O(B ip6fw $B$,%7%9%F%`$N%+!<%M%k$K%3%s%Q%$%k$5$l$F$$$k(B
$B>l9g(B, $B=$@5$rM-8z2=$5$;$k$?$a$K%+!<%M%k$N:F9=C[(B, $B:F%$%s%9%H!<%k(B, $B$*$h$S(B
$B%7%9%F%`$N:F5/F0$,I,MW$K$J$j$^$9(B.


A.   FreeBSD $B%;%-%e%j%F%#4+9p(B $BF|K\8lHG$K$D$$$F(B

$BF|K\8lLu$O(B FreeBSD $BF|K\8l%I%-%e%a%s%F!<%7%g%s%W%m%8%'%/%H(B (doc-jp) $B$,(B
$B;29M$N$?$a$KDs6!$9$k$b$N$G$9(B.  $B2a5n$NF|K\8lHG%;%-%e%j%F%#4+9p$O(B

 http://www.FreeBSD.org/ja/security/

$B$K$^$H$a$i$l$F$$$^$9(B.  

$B$?$@$7(B, $BK]Lu<T$*$h$S(B doc-jp $B$O(B, $B$=$NFbMF$K$D$$$F$$$+$J$kJ]>Z$b(B
$B$$$?$7$^$;$s$N$G$4Cm0U$/$@$5$$(B.  $BF|K\8lLu$K$D$$$F$N$40U8+(B, $B$4MWK>(B,
$B$*Ld$$9g$o$;Ey$O(B doc-jp@jp.FreeBSD.org $B$^$G$*4j$$$7$^$9(B.

$B$3$N4+9p$NCf$G>R2p$5$l$F$$$k(B WWW $B%5%$%H(B http://www.FreeBSD.org/ $B$*$h$S(B
FTP $B%5%$%H(B ftp://ftp.FreeBSD.org/ $B$K$O(B, $BF|K\$N%_%i!<%5%$%H$,B8:_$7$^$9(B.
$B%M%C%H%o!<%/$N:.;($r4KOB$9$k$?$a(B, $B$^$:$O%_%i!<%5%$%H$NMxMQ$r(B
$B9MN8$9$k$h$&$*4j$$$7$^$9(B.

$BF|K\$N%_%i!<%5%$%H$rMxMQ$9$k$K$O(B,
http://www.FreeBSD.org/ $B$r(B http://www.jp.FreeBSD.org/www.freebsd.org/ $B$K(B,
ftp://ftp.FreeBSD.org/ $B$r(B ftp://ftp.jp.FreeBSD.org/ $B$K(B,
$B$=$l$>$lCV$-49$($F$/$@$5$$(B.

$BB>$NCO0h$r4^$`(B, $B%_%i!<%5%$%H$K4X$9$k>\:Y$O(B,

 http://www.FreeBSD.org/handbook/mirror.html ($B1QJ8(B)
 http://www.FreeBSD.org/ja/handbook/mirror.html ($BF|K\8lLu(B)

$B$K$^$H$a$i$l$F$$$^$9(B.

