Security hole in multipart.cgi.in, w3mman2html.cgi.in
From: Hironori Sakamoto <h-saka@lsi.nec.co.jp>
This commit is contained in:
10
ChangeLog
10
ChangeLog
@@ -1,3 +1,11 @@
|
|||||||
|
2001-12-22 Hironori Sakamoto <h-saka@lsi.nec.co.jp>
|
||||||
|
|
||||||
|
* Security hole in multipart.cgi.in, w3mman2html.cgi.in
|
||||||
|
* scripts/w3mhelp.cgi.in: open(F, "< $var") instead of open(F, $var)
|
||||||
|
* scripts/w3mhelp.cgi.in: fix eval qq{require ...};
|
||||||
|
* scripts/multipart/multipart.cgi.in: ditto
|
||||||
|
* scripts/w3mman/w3mman2html.cgi.in: validate $keyword, $section, $man
|
||||||
|
|
||||||
2001-12-21 Fumitoshi UKAI <ukai@debian.or.jp>
|
2001-12-21 Fumitoshi UKAI <ukai@debian.or.jp>
|
||||||
|
|
||||||
* [w3m-dev-en 00656]
|
* [w3m-dev-en 00656]
|
||||||
@@ -1369,4 +1377,4 @@
|
|||||||
* release-0-2-1
|
* release-0-2-1
|
||||||
* import w3m-0.2.1
|
* import w3m-0.2.1
|
||||||
|
|
||||||
$Id: ChangeLog,v 1.152 2001/12/21 02:11:49 ukai Exp $
|
$Id: ChangeLog,v 1.153 2001/12/21 18:33:41 ukai Exp $
|
||||||
|
@@ -25,7 +25,7 @@ if (defined($ENV{'QUERY_STRING'})) {
|
|||||||
$CGI = "file:///\$LIB/multipart.cgi?file=" . &html_quote($file);
|
$CGI = "file:///\$LIB/multipart.cgi?file=" . &html_quote($file);
|
||||||
}
|
}
|
||||||
|
|
||||||
open(F, $file);
|
open(F, "< $file");
|
||||||
$end = 0;
|
$end = 0;
|
||||||
$mbody = '';
|
$mbody = '';
|
||||||
if (defined($boundary)) {
|
if (defined($boundary)) {
|
||||||
@@ -258,7 +258,7 @@ sub load_mime_type {
|
|||||||
local($file) = @_;
|
local($file) = @_;
|
||||||
local(%m, $a, @b, $_);
|
local(%m, $a, @b, $_);
|
||||||
|
|
||||||
open(M, $file) || return ();
|
open(M, "< $file") || return ();
|
||||||
while(<M>) {
|
while(<M>) {
|
||||||
/^#/ && next;
|
/^#/ && next;
|
||||||
chop;
|
chop;
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
#!@PERL@
|
#!@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@";
|
$helpdir = "@HELP_DIR@";
|
||||||
unshift(@INC, $helpdir);
|
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 =~ s/\+|%([0-9A-Fa-f][0-9A-Fa-f])/$& eq '+' ? ' ' : pack('C', hex($1))/ge;
|
||||||
$tlang =~ tr/A-Z/a-z/;
|
$tlang =~ tr/A-Z/a-z/;
|
||||||
print "tlang=$tlang\n";
|
print "tlang=$tlang\n";
|
||||||
eval qq{require "w3mhelp-funcdesc.$tlang.pl"};
|
eval {require "w3mhelp-funcdesc.$tlang.pl";};
|
||||||
if (defined(%funcdesc)) {
|
if (defined(%funcdesc)) {
|
||||||
$lang = $tlang;
|
$lang = $tlang;
|
||||||
}
|
}
|
||||||
@@ -37,7 +37,7 @@ if (defined($ENV{'QUERY_STRING'})) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (-f $keymap) {
|
if (-f $keymap) {
|
||||||
open(KEYMAP, $keymap) || die "cannot open keymap: $keymap, $!";
|
open(KEYMAP, "< $keymap") || die "cannot open keymap: $keymap, $!";
|
||||||
&load_keymap(*KEYMAP, $func);
|
&load_keymap(*KEYMAP, $func);
|
||||||
close(KEYMAP);
|
close(KEYMAP);
|
||||||
}
|
}
|
||||||
|
@@ -31,7 +31,7 @@ Content-Type: text/html
|
|||||||
<h2>man -k <b>$k</b></h2>
|
<h2>man -k <b>$k</b></h2>
|
||||||
<ul>
|
<ul>
|
||||||
EOF
|
EOF
|
||||||
$keyword =~ s:([^\w./]):\\$1:g;
|
$keyword =~ s:([^-\w\200-\377.,])::g;
|
||||||
open(F, "$MAN -k $keyword 2> /dev/null |");
|
open(F, "$MAN -k $keyword 2> /dev/null |");
|
||||||
@line = ();
|
@line = ();
|
||||||
while(<F>) {
|
while(<F>) {
|
||||||
@@ -82,8 +82,8 @@ if ($man =~ s/\((\w+)\)$//) {
|
|||||||
$man_section = "$man";
|
$man_section = "$man";
|
||||||
}
|
}
|
||||||
|
|
||||||
$section =~ s:([^\w./]):\\$1:g;
|
$section =~ s:([^-\w\200-\377.,])::g;
|
||||||
$man =~ s:([^\w./]):\\$1:g;
|
$man =~ s:([^-\w\200-\377.,])::g;
|
||||||
open(F, "$MAN $section $man 2> /dev/null |");
|
open(F, "$MAN $section $man 2> /dev/null |");
|
||||||
$ok = 0;
|
$ok = 0;
|
||||||
undef $header;
|
undef $header;
|
||||||
|
Reference in New Issue
Block a user