From 54702c4d832bdcb24f24852a96d5336e5adca75a Mon Sep 17 00:00:00 2001 From: Fumitoshi UKAI Date: Fri, 21 Dec 2001 18:33:41 +0000 Subject: Security hole in multipart.cgi.in, w3mman2html.cgi.in From: Hironori Sakamoto --- scripts/multipart/multipart.cgi.in | 4 ++-- scripts/w3mhelp.cgi.in | 6 +++--- scripts/w3mman/w3mman2html.cgi.in | 6 +++--- 3 files changed, 8 insertions(+), 8 deletions(-) (limited to 'scripts') diff --git a/scripts/multipart/multipart.cgi.in b/scripts/multipart/multipart.cgi.in index be4e6a0..fb13443 100644 --- a/scripts/multipart/multipart.cgi.in +++ b/scripts/multipart/multipart.cgi.in @@ -25,7 +25,7 @@ if (defined($ENV{'QUERY_STRING'})) { $CGI = "file:///\$LIB/multipart.cgi?file=" . &html_quote($file); } -open(F, $file); +open(F, "< $file"); $end = 0; $mbody = ''; if (defined($boundary)) { @@ -258,7 +258,7 @@ sub load_mime_type { local($file) = @_; local(%m, $a, @b, $_); - open(M, $file) || return (); + open(M, "< $file") || return (); while() { /^#/ && next; chop; diff --git a/scripts/w3mhelp.cgi.in b/scripts/w3mhelp.cgi.in index 7f11047..2045224 100644 --- a/scripts/w3mhelp.cgi.in +++ b/scripts/w3mhelp.cgi.in @@ -1,5 +1,5 @@ #!@PERL@ -# $Id: w3mhelp.cgi.in,v 1.3 2001/12/02 13:16:29 ukai Exp $ +# $Id: w3mhelp.cgi.in,v 1.4 2001/12/21 18:33:41 ukai Exp $ $helpdir = "@HELP_DIR@"; unshift(@INC, $helpdir); @@ -29,7 +29,7 @@ if (defined($ENV{'QUERY_STRING'})) { $tlang =~ s/\+|%([0-9A-Fa-f][0-9A-Fa-f])/$& eq '+' ? ' ' : pack('C', hex($1))/ge; $tlang =~ tr/A-Z/a-z/; print "tlang=$tlang\n"; - eval qq{require "w3mhelp-funcdesc.$tlang.pl"}; + eval {require "w3mhelp-funcdesc.$tlang.pl";}; if (defined(%funcdesc)) { $lang = $tlang; } @@ -37,7 +37,7 @@ if (defined($ENV{'QUERY_STRING'})) { } if (-f $keymap) { - open(KEYMAP, $keymap) || die "cannot open keymap: $keymap, $!"; + open(KEYMAP, "< $keymap") || die "cannot open keymap: $keymap, $!"; &load_keymap(*KEYMAP, $func); close(KEYMAP); } diff --git a/scripts/w3mman/w3mman2html.cgi.in b/scripts/w3mman/w3mman2html.cgi.in index 68f318a..6786928 100644 --- a/scripts/w3mman/w3mman2html.cgi.in +++ b/scripts/w3mman/w3mman2html.cgi.in @@ -31,7 +31,7 @@ Content-Type: text/html

man -k $k

    EOF - $keyword =~ s:([^\w./]):\\$1:g; + $keyword =~ s:([^-\w\200-\377.,])::g; open(F, "$MAN -k $keyword 2> /dev/null |"); @line = (); while() { @@ -82,8 +82,8 @@ if ($man =~ s/\((\w+)\)$//) { $man_section = "$man"; } -$section =~ s:([^\w./]):\\$1:g; -$man =~ s:([^\w./]):\\$1:g; +$section =~ s:([^-\w\200-\377.,])::g; +$man =~ s:([^-\w\200-\377.,])::g; open(F, "$MAN $section $man 2> /dev/null |"); $ok = 0; undef $header; -- cgit v1.2.3