From 037af6890fe6fdb84a08d3c86083e847c90ec0ad Mon Sep 17 00:00:00 2001
From: Aleksander Machniak <alec@alec.pl>
Date: Tue, 22 Oct 2013 08:17:26 -0400
Subject: [PATCH] Fix vulnerability in handling _session argument of utils/save-prefs (#1489382)

---
 tests/MailFunc.php |   18 ++++++++++++++++--
 1 files changed, 16 insertions(+), 2 deletions(-)

diff --git a/tests/MailFunc.php b/tests/MailFunc.php
index 57a6b9d..38c0bac 100644
--- a/tests/MailFunc.php
+++ b/tests/MailFunc.php
@@ -8,7 +8,7 @@
 class MailFunc extends PHPUnit_Framework_TestCase
 {
 
-    function __construct()
+    function setUp()
     {
         // simulate environment to successfully include func.inc
         $GLOBALS['RCMAIL'] = $RCMAIL = rcmail::get_instance();
@@ -97,6 +97,20 @@
     }
 
     /**
+     * Test the elimination of some XSS vulnerabilities
+     */
+    function test_html_xss3()
+    {
+        // #1488850
+        $html = '<p><a href="data:text/html,&lt;script&gt;alert(document.cookie)&lt;/script&gt;">Firefox</a>'
+            .'<a href="vbscript:alert(document.cookie)">Internet Explorer</a></p>';
+        $washed = rcmail_wash_html($html, array('safe' => true), array());
+
+        $this->assertNotRegExp('/data:text/', $washed, "Remove data:text/html links");
+        $this->assertNotRegExp('/vbscript:/', $washed, "Remove vbscript: links");
+    }
+
+    /**
      * Test washtml class on non-unicode characters (#1487813)
      */
     function test_washtml_utf8()
@@ -159,7 +173,7 @@
     function test_resolve_base()
     {
         $html = file_get_contents(TESTS_DIR . 'src/htmlbase.txt');
-        $html = rcmail_resolve_base($html);
+        $html = rcube_washtml::resolve_base($html);
 
         $this->assertRegExp('|src="http://alec\.pl/dir/img1\.gif"|', $html, "URI base resolving [1]");
         $this->assertRegExp('|src="http://alec\.pl/dir/img2\.gif"|', $html, "URI base resolving [2]");

--
Gitblit v1.9.1