WG460 A22 - PERL scripts must use the TAINT option.


PERL (Practical Extraction and Report Language) is an interpreted language optimized for scanning arbitrary text files, extracting information from those text files, and printing reports based on that information. The language is often used in shell scripting and is intended to be practical, easy to use, and efficient means of generating interactive web pages for the user. Unfortunately, many widely available freeware PERL programs (scripts) are extremely insecure. This is most readily accomplished by a malicious user substituting input to a PERL script during a POST or a GET operation.

Consequently, the founders of PERL have developed a mechanism named TAINT that protects the system from malicious input sent from outside the program. When the data is tainted, it cannot be used in programs or functions such as eval(), system(), exec(), pipes, or popen(). The script will exit with a warning message. It is vital that if PERL is being used, the following line appear in the first line of PERL scripts:

#!/usr/local/bin/perl -T


Add the TAINT call to the PERL script.

#!/usr/local/bin/perl -T

See Also


Item Details


References: 800-53|SI-10, CAT|II, Rule-ID|SV-6932r1_rule, STIG-ID|WG460_A22, Vuln-ID|V-2272

Plugin: Unix

Control ID: 74e774814a0223c027ee9b37e02d60e600d304271d88635001277bc2fec6038c