[TYPO3-announce] TYPO3 Security Bulletin TYPO3-20080611-1: Multiple vulnerabilities in TYPO3 Core
Lars Houmark
lars at typo3.org
Wed Jun 11 11:14:03 CEST 2008
Dear users of TYPO3,
It has been discovered that the default value of the TYPO3
configuration variable fileDenyPattern allows arbitrary code execution
on Apache web servers. Besides that, the library fe_adminlib.inc
allows Cross Site Scripting (XSS).
=== Component Type ===
TYPO3 Core
=== Affected Versions ===
TYPO3 versions 3.x, 4.0 to 4.0.7, 4.1 to 4.1.6, 4.2
=== Vulnerability Types ===
Arbitrary code execution on Apache, Cross Site Scripting
=== Vulnerability #1 ===
Default value of fileDenyPattern allows arbitrary code execution on
Apache
=== Severity ===
High
=== Problem Description ===
Because of a not sufficiently secure default value of the TYPO3
configuration variable fileDenyPattern, TYPO3 is susceptible to the
following vulnerabilities when running on Apache web server:
1. Authenticated backend users with granted access to an arbitrary
filemount are able to upload Apache configuration files (.htaccess). A
malicious backend user may abuse this to create and execute files
containing arbitrary code.
2. If the Apache module mod_mime is enabled on the Apache web server
(default case), authenticated backend users with granted access to an
arbitrary filemount can upload/create and execute arbitrary files with
PHP code. The same applies to frontend users in the case that TYPO3
extensions with frontend plugins rely on
t3lib_div::verifyFilenameAgainstDenyPattern() to check the validity of
the file name. The TYPO3 security team is aware of a number of popular
TYPO3 extensions that use this method. Besides that, TYPO3 extensions
that process file uploads using the method processFiles() of the core
library fe_adminLib.inc would also be vulnerable. The TYPO3 Security
Team is not aware of an existing TYPO3 extension within the TYPO3
extension repository (TER) that uses the method processFiles().
=== Solution ===
Update to the TYPO3 versions 4.1.7 or 4.2.1 that fix the issues
described. The new versions contain an updated default value for
fileDenyPattern. If this default value is not used, there will be a
warning displayed in backend module "About modules". This should
remind the administrator to change the value of fileDenyPattern.
If you can't update directly, change the value of the configuration
variable fileDenyPattern to the following value:
\.php[3456]?(\..*)?$|^\.htaccess$
This can be achieved by either changing the value of fileDenyPattern
in the section "All configuration" within the TYPO3 install tool or by
adding the line
$GLOBALS['TYPO3_CONF_VARS']['BE']['fileDenyPattern']='\.php[3456]?
(\..*)?$|^\.htaccess$';
to the end of the TYPO3 configuration file typo3conf/localconf.php.
=== Background ===
To prevent backend and frontend users from uploading arbitrary PHP
scripts through TYPO3 core features, each file operation (upload,
creation, rename, copy, move) includes a check of the file name
against the configuration variable fileDenyPattern. (Furthermore,
there are more checks done using the contents of the array
$TYPO3_CONF_VARS['BE']['fileExtensions'] which are not discussed here
because they are not related to the problem.)
The previous value of fileDenyPattern allows to create and upload
files with multiple extensions where 'php' doesn't necessarily has to
be the last extension. In the case of a file with an unknown mime type
the Apache module mod_mime may search for other known extensions in
the file name and handle the file according to the first known
extension found.
Further advice can be found in the blog entry Advice on core security
issue regarding fileDenyPattern on buzz.typo3.org. There we try to
describe a number of basic steps concerning how to check your TYPO3
website for the presence of a possible manipulation and how to change
Apache's handling of multiple extensions.
=== Vulnerability #2 ===
fe_adminlib.inc allows Cross Site Scripting
=== Severity ===
Low
=== Problem Description ===
User input processed by fe_adminlib.inc is not being properly filtered
to prevent Cross Site Scripting (XSS) attacks. A TYPO3 based website
will not be vulnerable to this flaw, as long as there is no frontend
extension in use, that is based on fe_adminlib.inc. Popular TYPO3
extensions that use fe_adminlib.inc are:
* direct_mail_subscription
* feuser_admin
* kb_md5fepw
=== Solution ===
Update to the TYPO3 versions 4.1.7 or 4.2.1 that fix the issues
described.
=== Background ===
This is a different XSS issue within fe_adminlib.inc as reported in
Security Bulletin TYPO3-20061010-1.
=== General advice ===
Follow the recommendations that are given in the TYPO3 Security
Cookbook [1]. Please subscribe to the typo3-announce mailing list [2]
to receive future Security Bulletins via E-mail. All TYPO3 Security
Bulletins are available at the Security Team pages on typo3.org [3].
=== Credits ===
Credits go to Michiel Roos and Marcus Krause who both reported issue
#1 to us and to Christian Seifert, Jeroen van Iddekinge and Arnd
Messer who reported issue #2 to us. The TYPO3 Security Team also
wishes to thank the Security Team members Marcus Krause and Henning
Pingel for fixing the issues in cooperation with the core team members
Ingo Renner, Ingmar Schlecht and Michael Stucki.
[1] <http://typo3.org/fileadmin/security-team/typo3_security_cookbook_v-0.5.pdf
>
[2] <http://lists.netfielders.de/cgi-bin/mailman/listinfo/typo3-
announce>
[3] <http://typo3.org/teams/security/security-bulletins/>
Regards,
Lars Houmark
lars at typo3.org
More information about the TYPO3-announce
mailing list