From: Rafael Garcia-Suarez Date: Wed, 22 Sep 2004 09:08:04 +0000 (+0000) Subject: Document that $ENV{PATH} may not contain relative directories under -T X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=df98f9840e6fe334c33012e022f10cdcd0547d43;p=p5sagit%2Fp5-mst-13.2.git Document that $ENV{PATH} may not contain relative directories under -T p4raw-id: //depot/perl@23332 --- diff --git a/pod/perldiag.pod b/pod/perldiag.pod index c56f5dd..77b7c51 100644 --- a/pod/perldiag.pod +++ b/pod/perldiag.pod @@ -1854,7 +1854,8 @@ L for more information. (F) You can't use system(), exec(), or a piped open in a setuid or setgid script if C<$ENV{PATH}> contains a directory that is writable by -the world. See L. +the world. Also, the PATH must not contain any relative directory. +See L. =item Insecure $ENV{%s} while running %s diff --git a/pod/perlsec.pod b/pod/perlsec.pod index 2fb6877..3174450 100644 --- a/pod/perlsec.pod +++ b/pod/perlsec.pod @@ -236,16 +236,16 @@ will not. =head2 Cleaning Up Your Path -For "Insecure C<$ENV{PATH}>" messages, you need to set C<$ENV{'PATH'}> to a -known value, and each directory in the path must be non-writable by others -than its owner and group. You may be surprised to get this message even -if the pathname to your executable is fully qualified. This is I -generated because you didn't supply a full path to the program; instead, -it's generated because you never set your PATH environment variable, or -you didn't set it to something that was safe. Because Perl can't -guarantee that the executable in question isn't itself going to turn -around and execute some other program that is dependent on your PATH, it -makes sure you set the PATH. +For "Insecure C<$ENV{PATH}>" messages, you need to set C<$ENV{'PATH'}> to +a known value, and each directory in the path must be absolute and +non-writable by others than its owner and group. You may be surprised to +get this message even if the pathname to your executable is fully +qualified. This is I generated because you didn't supply a full path +to the program; instead, it's generated because you never set your PATH +environment variable, or you didn't set it to something that was safe. +Because Perl can't guarantee that the executable in question isn't itself +going to turn around and execute some other program that is dependent on +your PATH, it makes sure you set the PATH. The PATH isn't the only environment variable which can cause problems. Because some shells may use the variables IFS, CDPATH, ENV, and