- Fix XSS vulnerability in vbscript: and data:text links handling (#1488850)
| | |
| | | CHANGELOG Roundcube Webmail |
| | | =========================== |
| | | |
| | | - Fix XSS vulnerability in vbscript: and data:text links handling (#1488850) |
| | | - Fix broken message/part bodies when FETCH response contains more untagged lines (#1488836) |
| | | - Fix empty email on identities list after identity update (#1488834) |
| | | - Add new identities_level: (4) one identity with possibility to edit only signature |
| | |
| | | $key = strtolower($key); |
| | | $value = $node->getAttribute($key); |
| | | if (isset($this->_html_attribs[$key]) || |
| | | ($key == 'href' && !preg_match('!^javascript!i', $value) |
| | | ($key == 'href' && !preg_match('!^(javascript|vbscript|data:text)!i', $value) |
| | | && preg_match('!^([a-z][a-z0-9.+-]+:|//|#).+!i', $value)) |
| | | ) { |
| | | $t .= ' ' . $key . '="' . htmlspecialchars($value, ENT_QUOTES) . '"'; |
| | |
| | | } |
| | | |
| | | /** |
| | | * Test the elimination of some XSS vulnerabilities |
| | | */ |
| | | function test_html_xss3() |
| | | { |
| | | // #1488850 |
| | | $html = '<p><a href="data:text/html,<script>alert(document.cookie)</script>">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() |