Fixed bug #15860: Mitigate libpcre recursion crash in email address validation (thank...
authorOliver Hader <oliver.hader@typo3.org>
Wed, 6 Oct 2010 08:15:00 +0000 (08:15 +0000)
committerOliver Hader <oliver.hader@typo3.org>
Wed, 6 Oct 2010 08:15:00 +0000 (08:15 +0000)
git-svn-id: https://svn.typo3.org/TYPO3v4/Core/trunk@8972 709f56b5-9817-0410-a4d7-c38de5d9e867

ChangeLog
t3lib/class.t3lib_div.php

index 5df62e0..5d8008f 100755 (executable)
--- a/ChangeLog
+++ b/ChangeLog
@@ -5,6 +5,7 @@
        * Fixed bug #15887: XSS in template analyzer (thanks to Georg Ringer)
        * Fixed bug #15728: Extension Manager allows to download arbitrary files beyond PATH_site or rootpath (thanks to Marcus Krause)
        * Fixed bug #15729: Sysext setup's user simulation is susceptible to XSS (thanks to Marcus Krause)
+       * Fixed bug #15860: Mitigate libpcre recursion crash in email address validation (thanks to Marcus Krause)
 
 2010-10-05  Steffen Gebert  <steffen@steffen-gebert.de>
 
index 3faf554..13a2cc1 100644 (file)
@@ -1509,7 +1509,12 @@ final class t3lib_div {
         * @return      boolean         Returns true if the $email address (input string) is valid
         */
        public static function validEmail($email)       {
-               return (filter_var($email, FILTER_VALIDATE_EMAIL) !== false);
+                       // enforce maximum length to prevent libpcre recursion crash bug #52929 in PHP
+                       // fixed in PHP 5.2+ later than Sept 2010; length restriction per SMTP RFC 2821
+               if (strlen($email) > 320) {
+                       return FALSE;
+               }
+               return (filter_var($email, FILTER_VALIDATE_EMAIL) !== FALSE);
        }
 
        /**