Hello community,

here is the log from the commit of package namazu for openSUSE:11.4
checked in at Thu Dec 8 17:35:41 CET 2011.



--------
--- old-versions/11.4/all/namazu/namazu.changes 2010-03-22 14:44:17.000000000 
+0100
+++ 11.4/namazu/namazu.changes  2011-12-08 11:43:18.000000000 +0100
@@ -1,0 +2,6 @@
+Thu Dec  8 10:36:12 UTC 2011 - [email protected]
+
+- bnc#732323 (pretty bug number!)
+  - CVE-2011-4345 XSS flaw for IE6/7 in japanese locale
+
+-------------------------------------------------------------------

Package does not exist at destination yet. Using Fallback 
old-versions/11.4/all/namazu
Destination is old-versions/11.4/UPDATES/all/namazu
calling whatdependson for 11.4-i586


New:
----
  namazu-2.0.18-CVE-2011-4345-XSS.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ namazu.spec ++++++
--- /var/tmp/diff_new_pack.H1gO9Z/_old  2011-12-08 17:34:48.000000000 +0100
+++ /var/tmp/diff_new_pack.H1gO9Z/_new  2011-12-08 17:34:48.000000000 +0100
@@ -1,7 +1,7 @@
 #
-# spec file for package namazu (Version 2.0.20)
+# spec file for package namazu
 #
-# Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2011 SUSE LINUX Products GmbH, Nuernberg, Germany.
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -26,12 +26,13 @@
 Requires:       kakasi >= 2.3.0, perl-Text-Kakasi >= 1.00
 AutoReqProv:    on
 Version:        2.0.20
-Release:        1
+Release:        5.<RELEASE6>
 Url:            http://www.namazu.org/
 # Original Source is gzipped. 
 Source0:        http://www.namazu.org/stable/%{name}-%{version}.tar.bz2
 Patch0:         linguas.patch
 Patch2:         configure.patch
+Patch3:         namazu-2.0.18-CVE-2011-4345-XSS.patch
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
 Summary:        A Full-Text Search Engine
 #Summary(ja): 全文検索シス テムです。
@@ -158,6 +159,8 @@
 %setup0 -q
 %patch0 -p1 -b .linguas
 %patch2 -p1 -b .config
+%patch3 -p1
+chmod +x tests/ja-namazu-cgi-3
 
 %build
 # XXX is this right - it was /var/lib before FHS macros

++++++ namazu-2.0.18-CVE-2011-4345-XSS.patch ++++++
Index: namazu-2.0.18/nmz/codeconv.c
===================================================================
--- namazu-2.0.18.orig/nmz/codeconv.c
+++ namazu-2.0.18/nmz/codeconv.c
@@ -400,6 +400,71 @@ zen2han(char *str)
     *(s + q) = '\0';
 }
 
+static void
+check_eucjp(uchar *s)
+{
+    int i;
+    size_t num;
+
+    num = strlen((char *)s);
+    i = 0;
+    while (i < num) {
+        if (s[i] >= 0x20 && s[i] <= 0x7e) {
+            i++;
+        }
+        else if (s[i] >= 0xa1 && s[i] <= 0xfe) {
+            if (i + 1 < num) {
+                if (s[i + 1] >= 0xa1 && s[i + 1] <= 0xfe) {
+                    i += 2;
+                }
+                else {
+                    s[i++] = ' ';
+                    s[i++] = ' ';
+                }
+            }
+            else {
+                s[i++] = ' ';
+            }
+        }
+        else if (s[i] == 0x8e) {
+            if (i + 1 < num) { 
+                if (s[i + 1] >= 0xa1 && s[i + 1] <= 0xdf) {
+                    i += 2;
+                }
+                else {
+                    s[i++] = ' ';
+                    s[i++] = ' ';
+                }
+            }
+            else {
+                s[i++] = ' ';
+            }
+        }
+        else if (s[i] == 0x8f) {
+            if (i + 2 < num) { 
+                if (s[i + 1] >= 0xa1 && s[i + 1] <= 0xfe
+                && s[i + 2] >= 0xa1 && s[i + 2] <= 0xfe) {
+                    i += 3;
+                }
+                else {
+                    s[i++] = ' ';
+                    s[i++] = ' ';
+                    s[i++] = ' ';
+                }
+            }
+            else if (i + 1 < num) {
+                s[i++] = ' ';
+                s[i++] = ' ';
+            }
+            else {
+                s[i++] = ' ';
+            }
+        }
+        else {
+            s[i++] = ' ';
+        }
+    }
+}
 
 /*
  *
@@ -422,17 +486,24 @@ nmz_codeconv_internal(char *s)
     in = (uchar *)s;
 
     if (!nmz_is_lang_ja()) { /* Lang != ja */
+       for (i = 0; i < strlen(s); i++) {
+           if (s[i] < 0x20 || s[i] >= 0x7f) {
+               s[i] = ' ';
+           }
+       }
         return 0;
     }
     for (i = 0, m = 0, n = 0, f = 0; *(in + i); i++) {
        if (*(in + i) == ESC) {
            jistoeuc(in);
+           check_eucjp(in);
            return 1;
        }
        if (*(in + i) > (uchar) '\x80')
            m++, f = f ? 0 : 1;
        else if (f) {
            sjistoeuc(in);
+           check_eucjp(in);
            return 1;
        }
        if (*(in + i) > (uchar) '\xa0')
@@ -440,10 +511,14 @@ nmz_codeconv_internal(char *s)
     }
     if (m != n) {
        sjistoeuc(in);
+       check_eucjp(in);
        return 1;
     }
-    if (n)
+    if (n) {
+        check_eucjp(in);
        return 1;
+    }
+    check_eucjp(in);
     return 0;
 }
 
Index: namazu-2.0.18/pltests/alltests.pl.in
===================================================================
--- namazu-2.0.18.orig/pltests/alltests.pl.in
+++ namazu-2.0.18/pltests/alltests.pl.in
@@ -44,6 +44,7 @@ my @TESTS = (
     'namazu-cgi-7.pl', 'namazu-cgi-8.pl',
     'namazu-cgi-9.pl', 'namazu-cgi-10.pl',
     'namazu-cgi-12.pl',
+    'ja-namazu-cgi-3.pl',
     'chasen-1.pl', 'chasen-2.pl', 'chasen-3.pl',
     'mecab-1.pl', 'mecab-2.pl', 'mecab-3.pl',
     'kakasi-1.pl', 'kakasi-2.pl', 'kakasi-3.pl',
Index: namazu-2.0.18/pltests/Makefile.am
===================================================================
--- namazu-2.0.18.orig/pltests/Makefile.am
+++ namazu-2.0.18/pltests/Makefile.am
@@ -23,6 +23,7 @@ PROGRAM = alltests.pl pltests.pl \
        namazu-cgi-7.pl namazu-cgi-8.pl \
        namazu-cgi-9.pl namazu-cgi-10.pl \
        namazu-cgi-12.pl \
+       ja-namazu-cgi-3.pl \
        chasen-1.pl chasen-2.pl chasen-3.pl \
        mecab-1.pl mecab-2.pl mecab-3.pl \
        kakasi-1.pl kakasi-2.pl kakasi-3.pl
@@ -48,6 +49,7 @@ EXTRA_DIST = pltests.pl.in \
        namazu-cgi-7.pl.in namazu-cgi-8.pl.in \
        namazu-cgi-9.pl.in namazu-cgi-10.pl.in \
        namazu-cgi-12.pl.in \
+       ja-namazu-cgi-3.pl.in \
        chasen-1.pl.in chasen-2.pl.in chasen-3.pl.in \
        mecab-1.pl.in mecab-2.pl.in mecab-3.pl.in \
        kakasi-1.pl.in kakasi-2.pl.in kakasi-3.pl.in
@@ -283,6 +285,11 @@ namazu-cgi-12.pl: namazu-cgi-12.pl.in pl
        sed -e 's!%PERL%!$(PERL)!g' $(srcdir)/[email protected] > [email protected]
        mv [email protected] $@
        chmod +x $@
+
+ja-namazu-cgi-3.pl: ja-namazu-cgi-3.pl.in pltests.pl.in Makefile
+       sed -e 's!%PERL%!$(PERL)!g' $(srcdir)/[email protected] > [email protected]
+       mv [email protected] $@
+       chmod +x $@
 
 chasen-1.pl: chasen-1.pl.in pltests.pl.in Makefile
        sed -e 's!%PERL%!$(PERL)!g' $(srcdir)/[email protected] > [email protected]
Index: namazu-2.0.18/pltests/Makefile.in
===================================================================
--- namazu-2.0.18.orig/pltests/Makefile.in
+++ namazu-2.0.18/pltests/Makefile.in
@@ -158,6 +158,7 @@ PROGRAM = alltests.pl pltests.pl \
        namazu-cgi-7.pl namazu-cgi-8.pl \
        namazu-cgi-9.pl namazu-cgi-10.pl \
        namazu-cgi-12.pl \
+       ja-namazu-cgi-3.pl \
        chasen-1.pl chasen-2.pl chasen-3.pl \
        mecab-1.pl mecab-2.pl mecab-3.pl \
        kakasi-1.pl kakasi-2.pl kakasi-3.pl
@@ -184,6 +185,7 @@ EXTRA_DIST = pltests.pl.in \
        namazu-cgi-7.pl.in namazu-cgi-8.pl.in \
        namazu-cgi-9.pl.in namazu-cgi-10.pl.in \
        namazu-cgi-12.pl.in \
+       ja-namazu-cgi-3.pl.in \
        chasen-1.pl.in chasen-2.pl.in chasen-3.pl.in \
        mecab-1.pl.in mecab-2.pl.in mecab-3.pl.in \
        kakasi-1.pl.in kakasi-2.pl.in kakasi-3.pl.in
@@ -590,6 +592,11 @@ namazu-cgi-12.pl: namazu-cgi-12.pl.in pl
        sed -e 's!%PERL%!$(PERL)!g' $(srcdir)/[email protected] > [email protected]
        mv [email protected] $@
        chmod +x $@
+
+ja-namazu-cgi-3.pl: ja-namazu-cgi-3.pl.in pltests.pl.in Makefile
+       sed -e 's!%PERL%!$(PERL)!g' $(srcdir)/[email protected] > [email protected]
+       mv [email protected] $@
+       chmod +x $@
 
 chasen-1.pl: chasen-1.pl.in pltests.pl.in Makefile
        sed -e 's!%PERL%!$(PERL)!g' $(srcdir)/[email protected] > [email protected]
Index: namazu-2.0.18/tests/Makefile.am
===================================================================
--- namazu-2.0.18.orig/tests/Makefile.am
+++ namazu-2.0.18/tests/Makefile.am
@@ -17,7 +17,10 @@ TESTS =      mknmz-1 mknmz-2 mknmz-3 mknmz-4
        namazu-cgi-1 namazu-cgi-2 namazu-cgi-3 namazu-cgi-4 \
        namazu-cgi-5 namazu-cgi-6 namazu-cgi-7 namazu-cgi-8 \
        namazu-cgi-9 namazu-cgi-10 namazu-cgi-11 \
-       ja-mknmz-1 ja-namazu-cgi-1 ja-namazu-1
+       ja-mknmz-1 ja-namazu-cgi-1 \
+       ja-namazu-cgi-3 ja-namazu-1
+
+distclean: clean-local
 
 clean-local:
        rm -rf test-log tmp-data tmp.* idx[0-9]* ja-idx[0-9]*
Index: namazu-2.0.18/tests/Makefile.in
===================================================================
--- namazu-2.0.18.orig/tests/Makefile.in
+++ namazu-2.0.18/tests/Makefile.in
@@ -152,7 +152,8 @@ TESTS = mknmz-1 mknmz-2 mknmz-3 mknmz-4
        namazu-cgi-1 namazu-cgi-2 namazu-cgi-3 namazu-cgi-4 \
        namazu-cgi-5 namazu-cgi-6 namazu-cgi-7 namazu-cgi-8 \
        namazu-cgi-9 namazu-cgi-10 namazu-cgi-11 \
-       ja-mknmz-1 ja-namazu-cgi-1 ja-namazu-1
+       ja-mknmz-1 ja-namazu-cgi-1 \
+       ja-namazu-cgi-3 ja-namazu-1
 
 
 EXTRA_DIST = $(TESTS) select-data commonfuncs
@@ -465,6 +466,8 @@ uninstall-info: uninstall-info-recursive
        uninstall-info-recursive uninstall-recursive
 
 
+distclean: clean-local
+
 clean-local:
        rm -rf test-log tmp-data tmp.* idx[0-9]* ja-idx[0-9]*
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
Index: namazu-2.0.18/pltests/ja-namazu-cgi-3.pl.in
===================================================================
--- /dev/null
+++ namazu-2.0.18/pltests/ja-namazu-cgi-3.pl.in
@@ -0,0 +1,90 @@
+#!%PERL% -w
+#
+# $Id: ja-namazu-cgi-3.pl.in,v 1.1.2.1 2011-07-18 13:32:49 opengl2772 Exp $
+# Copyright (C) 2007 Tadamasa Teranishi
+#               2007,2011 Namazu Project All rights reserved.
+#     This is free software with ABSOLUTELY NO WARRANTY.
+#
+#  This program is free software; you can redistribute it and/or modify
+#  it under the terms of the GNU General Public License as published by
+#  the Free Software Foundation; either versions 2, or (at your option)
+#  any later version.
+#
+#  This program is distributed in the hope that it will be useful
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#  GNU General Public License for more details.
+#
+#  You should have received a copy of the GNU General Public License
+#  along with this program; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+#  02111-1307, USA
+#
+#  This file must be encoded in EUC-JP encoding
+#
+
+#
+# Test for cross-site scripting vulnerability with IE6,IE7 and wrong EUC-JP 
chracter code.
+#
+
+use strict;
+require Cwd;
+use File::Copy;
+require 'pltests.pl';
+
+my $cwd = Cwd::cwd();
+my $LOG = "$cwd/test-log";
+my $INDEX = "$cwd/idx1";
+my $NAMAZU = pltests::binpath('namazu.cgi');
+my $RC = pltests::binpath('.namazurc');
+
+my @cmd;
+
+$ENV{'SCRIPT_NAME'} = 'namazu.cgi';
+$ENV{'QUERY_STRING'} = 'query=%8F%EF%9C/%20%8F%EF%9E%20%8F%EF%9C/';
+
+pltests::putline($LOG, "  *** starting $0");
+
+if ($English::OSNAME eq "MSWin32" || $English::OSNAME eq "os2") {
+    pltests::putline($LOG, "Skipping because of MSWin32 or os2: $0");
+    exit 77;
+}
+
+if (pltests::get_lang() !~ /^ja/) {
+    pltests::putline($LOG, "Skipping because of LANG does not begin with ja: 
$0");
+    exit 77;
+}
+
+if (-f $RC) {
+    unlink("$RC");
+}
+pltests::putline($RC, "Index $INDEX");
+pltests::duprcs($RC);
+
+my $ascii = '[\x00-\x7F]';
+my $twoBytes = '(?:[\x8E\xA1-\xFE][\xA1-\xFE])';
+my $threeBytes = '(?:\x8F[\xA1-\xFE][xA1-\xFE])';
+my $character = "(?:$ascii|$twoBytes|$threeBytes)";
+
+@cmd = ("$NAMAZU");
+my ($staus, $result, $conts_err) = pltests::ezsyscmd(\@cmd);
+$result =~ s/$character//g;
+$result =~ s/[\n\r]//g;
+pltests::putline($LOG, "\"$result\"");
+exit 1 if $result;
+
+$ENV{'QUERY_STRING'} = 'query=%8F%AF%82%20';
+@cmd = ("$NAMAZU");
+($staus, $result, $conts_err) = pltests::ezsyscmd(\@cmd);
+$result =~ s/$character//g;
+$result =~ s/[\n\r]//g;
+pltests::putline($LOG, "\"$result\"");
+exit 1 if $result;
+
+exit 0;
+
+END {
+    if (-f $RC) {
+        unlink("$RC");
+    }
+}
Index: namazu-2.0.18/tests/ja-namazu-cgi-3
===================================================================
--- /dev/null
+++ namazu-2.0.18/tests/ja-namazu-cgi-3
@@ -0,0 +1,80 @@
+#! /bin/sh
+#
+# Test for cross-site scripting vulnerability with IE6,IE7 and wrong EUC-JP 
chracter code.
+#
+LOG=`pwd`/test-log
+echo '  *** starting ' $0 >>$LOG
+. ${srcdir}/commonfuncs
+
+EXEC=no
+
+lc_all=$LC_ALL
+lc_ctype=$LC_CTYPE
+lang=$LANG
+
+for ctype in "$lc_all" "$lc_ctype" "$lang"; do
+    if test -n "$ctype" -a "$ctype" = "C"; then
+        ctype="en"
+        break
+    fi
+    cand=`echo "$ctype" | LC_ALL="C" perl -nle 'print $1 if /^(..)/'`
+    if test -n "$cand"; then
+        ctype=$cand
+        break
+    fi
+done
+
+case $ctype in 
+       ja*)
+               EXEC=yes
+               ;;
+esac
+if [ $EXEC = 'no' ]
+then
+        echo "Skipping because of LANG does not begin with ja: $0" >> $LOG
+       exit 77
+fi
+
+unset LANGUAGE
+unset LC_ALL
+unset LC_MESSAGES
+unset LC_CTYPE
+unset LANG
+
+
+pwd=`pwd`
+tmprc="$pwd/../src/.namazurc"
+echo "Index ../tests/idx1" > $tmprc
+echo "Lang ja" >> $tmprc
+duprcs
+cd ../src
+
+perl << 'TEST'  >> $LOG
+       my $query  = 'query=%8F%EF%9C/%8F%EF%9E%20%8F%EF%9C';
+       $ENV{'SCRIPT_NAME'} = 'namazu.cgi';
+        $ENV{'QUERY_STRING'} = $query;
+       my $cmd    = "./namazu.cgi";
+       my $result = `$cmd 2>&1`;
+
+        my $ascii = '[\x00-\x7F]';
+        my $twoBytes = '(?:[\x8E\xA1-\xFE][\xA1-\xFE])';
+        my $threeBytes = '(?:\x8F[\xA1-\xFE][xA1-\xFE])';
+        my $character = "(?:$ascii|$twoBytes|$threeBytes)";
+        $result =~ s/$character//g;
+        $result =~ s/[\n\r]//g;
+        print "\"$result\"\n";
+        exit  1 if $result;
+
+        $query = 'query=%8F%AF%82%20';
+        $ENV{'QUERY_STRING'} = $query;
+       $result = `$cmd 2>&1`;
+        $result =~ s/$character//g;
+        $result =~ s/[\n\r]//g;
+        print "\"$result\"\n";
+        exit  1 if $result;
+
+       exit 0;
+TEST
+result=$?
+rm -f $tmprc
+exit $result
continue with "q"...



Remember to have fun...

-- 
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to