From owner-doc-jp@jp.FreeBSD.org Sun Dec 23 02:37:42 2001
Received: (from daemon@localhost)
	by castle.jp.FreeBSD.org (8.11.6+3.4W/8.11.3) id fBMHbgr66525;
	Sun, 23 Dec 2001 02:37:42 +0900 (JST)
	(envelope-from owner-doc-jp@jp.FreeBSD.org)
Received: from eos.ocn.ne.jp (eos.ocn.ne.jp [210.190.142.171])
	by castle.jp.FreeBSD.org (8.11.6+3.4W/8.11.3) with ESMTP/inet id fBMHbgH66520
	for <doc-jp@jp.FreeBSD.org>; Sun, 23 Dec 2001 02:37:42 +0900 (JST)
	(envelope-from hrs@eos.ocn.ne.jp)
Received: from mail.hrslab.yi.org (p5126-ip02funabasi.chiba.ocn.ne.jp [61.214.4.126])
	by eos.ocn.ne.jp (OCN) with ESMTP id CAA20264
	for <doc-jp@jp.FreeBSD.org>; Sun, 23 Dec 2001 02:37:40 +0900 (JST)
Received: from localhost (alph.hrslab.yi.org [192.168.0.10])
	by mail.hrslab.yi.org (8.9.3/3.7W/DomainMaster) with ESMTP id CAA59944
	for <doc-jp@jp.FreeBSD.org>; Sun, 23 Dec 2001 02:27:23 +0900 (JST)
	(envelope-from hrs@eos.ocn.ne.jp)
Date: Sun, 23 Dec 2001 02:26:55 +0900 (JST)
Message-Id: <20011223.022655.74745672.hrs@eos.ocn.ne.jp>
To: doc-jp@jp.FreeBSD.org
From: Hiroki Sato <hrs@eos.ocn.ne.jp>
In-Reply-To: <200112171819.fBHIJKs62840@freefall.freebsd.org>
References: <200112171819.fBHIJKs62840@freefall.freebsd.org>
X-Mailer: Mew version 2.0 on Emacs 20.7 / Mule 4.0 (HANANOEN)
Mime-Version: 1.0
Content-Type: Multipart/Mixed;
 boundary="--Next_Part(Sun_Dec_23_02:26:55_2001_586)--"
Content-Transfer-Encoding: 7bit
Reply-To: doc-jp@jp.FreeBSD.org
Precedence: list
X-Distribute: distribute version 2.1 (Alpha) patchlevel 24e+011218
X-Sequence: doc-jp 8581
Subject: [doc-jp 8581] Re: ANNOUNCE: FreeBSD Ports Security Advisory
 FreeBSD-SA-01:68.xsane
Errors-To: owner-doc-jp@jp.FreeBSD.org
Sender: owner-doc-jp@jp.FreeBSD.org
X-Originator: hrs@eos.ocn.ne.jp

----Next_Part(Sun_Dec_23_02:26:55_2001_586)--
Content-Type: Text/Plain; charset=iso-2022-jp
Content-Transfer-Encoding: 7bit

$B:4F#!wEl5~M}2JBg3X$G$9!#(B

 01:68 $B$G$9!#(B

--
| $B:4F#(B $B9-@8!wEl5~M}2JBg3X(B <hrs@eos.ocn.ne.jp>
|                         <hrs@FreeBSD.org> (FreeBSD Project)

----Next_Part(Sun_Dec_23_02:26:55_2001_586)--
Content-Type: Text/Plain; charset=iso-2022-jp
Content-Disposition: inline; filename="01:68"
Content-Transfer-Encoding: 7bit


FreeBSD $B%;%-%e%j%F%#4+9p(B $BF|K\8lHG(B
=============================================================================
FreeBSD-SA-01:68 (2001-12-17)
 * xsane port uses insecure temporary file handling
=============================================================================

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

  Subject: ANNOUNCE: FreeBSD Ports Security Advisory FreeBSD-SA-01:68.xsane
  From: FreeBSD Security Advisories <security-advisories@FreeBSD.org>
  Date: Mon, 17 Dec 2001 10:19:20 -0800 (PST)
  Message-Id: <200112171819.fBHIJKs62840@freefall.freebsd.org>
  X-Sequence: announce-jp 873

 $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~$6$s$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:68                                            Security Advisory
                                                                FreeBSD, Inc.

$B%H%T%C%/(B:	xsane port uses insecure temporary file handling
                xsane port $B$N;HMQ$9$k0l;~%U%!%$%k$K$*$1$k%;%-%e%j%F%#>e$N<eE@(B

$BJ,N`(B:		ports
$B%b%8%e!<%k(B:	xsane
$B9pCNF|(B:		2001-12-17
$B%/%l%8%C%H(B:	Tim Waugh <twaugh@redhat.com>, michal@harddata.com
$B1F6AHO0O(B:	$B=$@5F|0JA0$N(B Ports Collection
$B=$@5F|(B:		2001-12-14 01:58:36 UTC
FreeBSD $B$K8GM-$+(B:	NO


I.   $BGX7J(B - Background

The XSane application is a gtk based X11 front-end to the SANE
(Scanner Access Now Easy) library used to interface with scanners.
XSane will acquire images using devices such as scanners and cameras.

XSane $B%"%W%j%1!<%7%g%s$O(B, $B%9%-%c%J$H$N@\B3$KMQ$$$i$l$k(B SANE (Scanner
Access Now Easy) $B%i%$%V%i%j$r;HMQ$9$k$?$a$N(B gtk $B%Y!<%9$N(B
X11 $B%U%m%s%H%(%s%I$N0l$D$G$9(B.  XSane $B$r;H$&$H(B, $B%9%-%c%J$d(B
$B%+%a%i$H$$$C$?%G%P%$%9$+$i2hA|$r<hF@$9$k$3$H$,2DG=$K$J$j$^$9(B.


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

XSane creates temporary files in /tmp during the process of scanning
images and to communicate with SANE (the back-end application which
actually performs the scans) during image preview and save.

XSane $B$O2hA|$N%9%-%c%sCf(B, $B$*$h$S2hA|$N%W%l%S%e!<!&J]B8$G(B
SANE ($B<B:]$K%9%-%c%s$r<B9T$9$k%P%C%/%(%s%I%"%W%j%1!<%7%g%s(B) $B$H(B
$BDL?.$9$k:](B, /tmp $B$K0l;~%U%!%$%k$r:n@.$7$^$9(B.

However XSane creates temporary files using mktemp(3), which can be
easily predicted (see the BUGS section of the mktemp(3) man page).
This makes XSane vulnerable to exploit, opening the opportunity for a
user's files to be overwritten through a race condition.

$B$7$+$7(B, XSane $B$O%U%!%$%kL>$,MF0W$KM=B,$G$-$k(B mktemp(3) $B$r;HMQ$7$F(B
$B0l;~%U%!%$%k$r:n@.$7$^$9(B ($B>\:Y$O(B mktemp(3) $B$N%^%K%e%"%k%Z!<%8(B
BUGS $B$N9`$r;2>H(B).  $B$=$N$?$a(B XSane $B$K$O(B, $B6%9g>uBV$rMxMQ$7$F%f!<%6$N(B
$B%U%!%$%k$r>e=q$-$G$-$F$7$^$&$H$$$&%;%-%e%j%F%#>e$N<eE@$,$"$j$^$9(B.

The xsane port is not installed by default, nor is it "part of
FreeBSD" as such: it is part of the FreeBSD ports collection, which
contains over 6000 third-party applications in a ready-to-install
format. The ports collection shipped with FreeBSD 4.4 contains this
problem since it was discovered after the release.

FreeBSD makes no claim about the security of these third-party
applications, although an effort is underway to provide a security
audit of the most security-critical ports.

xsane $B$N(B port $B$O%G%U%)%k%H$G%$%s%9%H!<%k$5$l$k$b$N$G$O$J$/(B,
$B!V(BFreeBSD $B%7%9%F%`$N0lIt!W$r9=@.$9$k$b$N$G$b$"$j$^$;$s(B.
$B$=$l$i$O(B 6000 $B$r1[$($k%5!<%I%Q!<%F%#@=%"%W%j%1!<%7%g%s$,$9$0$K(B
$B%$%s%9%H!<%k$G$-$k7A$G<}$a$i$l$F$$$k(B FreeBSD Ports Collection $B$N0lIt$G$9(B.
$B$3$NLdBj$O(B FreeBSD 4.4 $B$N%j%j!<%98e$KH/8+!&=$@5$5$l$?$?$a(B,
FreeBSD 4.4 $B$K$O$3$NLdBj$K$h$k%;%-%e%j%F%#>e$N<eE@$,4^$^$l$F$$$^$9(B.

FreeBSD $B$G$O(B, $B$3$N$h$&$J%5!<%I%Q!<%F%#@=%"%W%j%1!<%7%g%s$N%;%-%e%j%F%#(B
$BLdBj$KBP$7$F(B, $BFC$K2?$+$r<gD%$9$k$3$H$O$"$j$^$;$s(B ($BLuCm(B: Ports Collection $B$K(B
$BF~$C$F$$$k$+$i$H$$$C$F(B, FreeBSD $B$N3+H/<T$?$A$,$=$N%"%W%j%1!<%7%g%s$,(B
$B0BA4$G$"$k$HI>2A$7$?$o$1$G$O$"$j$^$;$s(B).  $B$?$@$7(B, $B%;%-%e%j%F%#LdBj$KBP$7$F(B
$BBg$-$J1F6A$r;}$D$h$&$J(B ports $B$KBP$9$k%;%-%e%j%F%#4F::$rDs6!$9$Y$/(B,
$B8=:_EXNOCf$G$9(B.


III. $B1F6AHO0O(B - Impact

A local user may be able to cause xsane (run by another user) to
overwrite any file for which the latter user has sufficient privilege.
While it is advisable to run XSane with a non-privileged user account,
many users run it using the root account, increasing the risk.

$B%m!<%+%k%f!<%6$O(B ($BB>$N%f!<%6$,<B9T$7$F$$$k(B) xsane $B$rMxMQ$7$F(B,
$B<B9T%f!<%6$N8"8B$G%"%/%;%92DG=$JG$0U$N%U%!%$%k$r>e=q$-$9$k$3$H$,2DG=$G$9(B.
XSane $B$O9b$$8"8B$r;}$?$J$$%f!<%6%"%+%&%s%H$G<B9T$9$k$3$H$,K>$^$7$$$N$G$9$,(B,
$B%f!<%6$O$h$j4m81EY$N9b$$(B root $B8"8B$G<B9T$9$k$3$H$,B?$$$h$&$G$9(B.


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

1) Deinstall the xsane port/package if you have it installed.
1) xsane $B$N(B port/package $B$,%$%s%9%H!<%k$5$l$F$$$k>l9g$O(B,
   $B$=$l$r%7%9%F%`$+$i:o=|$7$^$9(B.


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

1) Upgrade your entire ports collection and rebuild the port.
1) Ports Collection $BA4BN$r%"%C%W%0%l!<%I$7(B xsane $B$N(B port $B$r:F9=C[$9$k(B.

2) Deinstall the old package and install a new package dated after the
correction date, obtained from the following directories:
2) $B8E$$(B ($BLuCm(B: xsane $B$N(B) package $B$r%7%9%F%`$+$i:o=|$7(B,
   $B=$@5F|0J9_$K:n@.$5$l$??7$7$$(B package $B$r0J2<$N>l=j$+$i(B
   $B<hF@$7$F%$%s%9%H!<%k$9$k(B.

[i386]
ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-4-stable/graphics/xsane-0.82.tgz
ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-5-current/graphics/xsane-0.82.tgz

[alpha]
Packages are not automatically generated for the alpha architecture at
this time due to lack of build resources.
$B8=;~E@$G$O(B alpha $B%"!<%-%F%/%A%cMQ$N(B package $B$O<+F0@8@.$5$l$F$$$^$;$s(B.
$B$3$l$O(B, $B9=C[$N$?$a$N%^%7%s%j%=!<%9$,ITB-$7$F$$$k$?$a$G$9(B.

NOTE: It may be several days before updated packages are available. Be
sure to check the file creation date on the package, because the
version number of the software has not changed.
$BCm0U(B: $B99?7$5$l$?(B package $B$,Ds6!$5$l$k$^$G(B, $B?tF|$+$+$k2DG=@-$,$"$j$^$9(B.
      $B$I$A$i$b%=%U%H%&%'%"$N%P!<%8%g%sHV9f$OF10l$G$9$N$G(B,
      package $B%U%!%$%k$N:n@.F|$r3NG'$9$k$h$&$K$7$F$/$@$5$$(B.

3) Download a new port skeleton for the xsane port from:
3) xsane $B$N?7$7$$(B port $B%9%1%k%H%s$r0J2<$N>l=j$+$i%@%&%s%m!<%I$7(B,
   $B$=$l$r;H$C$F(B port $B$r:F9=C[$9$k(B.

http://www.freebsd.org/ports/

and use it to rebuild the port.

4) Use the portcheckout utility to automate option (3) above. The
portcheckout port is available in /usr/ports/devel/portcheckout or the
package can be obtained from:
4) $B>e5-(B (3) $B$NA`:n$r<+F0E*$K9T$J$&(B portcheckout $B%f!<%F%#%j%F%#$r;H$&(B.
   portcheckout $B$N(B port $B$O(B /usr/ports/devel/portcheckout $B$K$"$j$^$9(B.
   $B$^$?(B, portcheckout $B$N(B package $B$,0J2<$N>l=j$+$iF~<j2DG=$G$9(B.

ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-4-stable/devel/portcheckout-2.0.tgz
ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-5-current/devel/portcheckout-2.0.tgz


VI.  $B=$@5$N>\:Y(B - Correction details

The following list contains the revision numbers of each file that was
corrected in the FreeBSD ports collection.
$B<!$NI=$O(B, FreeBSD Ports Collection $B$K4^$^$l$F$$$k(B,
$B=$@5$5$l$?%U%!%$%k$=$l$>$l$N%j%S%8%g%sHV9f$G$9(B.

Path                                                             Revision
$B%Q%9L>(B                                                       $B%j%S%8%g%sHV9f(B
- -------------------------------------------------------------------------
ports/graphics/xsane/Makefile                                        1.30
ports/graphics/xsane/distinfo                                        1.20
ports/graphics/xsane/pkg-plist                                       1.18
- -------------------------------------------------------------------------


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.

$hrs: announce-jp/FreeBSD-SA/01:68,v 1.2 2001/12/22 17:20:12 hrs Exp $

----Next_Part(Sun_Dec_23_02:26:55_2001_586)----
