exploit the possibilities
Home Files News &[SERVICES_TAB]About Contact Add New

TinyMCE 3.5.8 Cross Site Scripting

TinyMCE 3.5.8 Cross Site Scripting
Posted Mar 11, 2013
Authored by Justin C. Klein Keane, Zach Alexander

TinyMCE version 3.5.8 suffers from a cross site scripting vulnerability.

tags | exploit, xss
advisories | CVE-2012-4230
SHA-256 | f8c9ff61aa722eff9d8b70db05c7eb7538744c819d92adc412486e43a0c64c31

TinyMCE 3.5.8 Cross Site Scripting

Change Mirror Download
Vulnerability Report

Author: Justin C. Klein Keane <justin@madirish.net>
Date: 5 March, 2013

CVE-2012-4230

Description of Vulnerability:
-----------------------------
"TinyMCE in itself can not be insecure"
(http://www.tinymce.com/wiki.php/Security)

"TinyMCE is a platform independent web based Javascript HTML WYSIWYG
editor control released as Open Source under LGPL by Moxiecode Systems
AB. TinyMCE has the ability to convert HTML TEXTAREA fields or other
HTML elements to editor instances. TinyMCE is very easy to integrate
into other Content Management Systems." (http://www.tinymce.com/)
TinyMCE is widely utilized in a number of web application systems.

A cross site scripting (XSS), or arbitrary script injection,
vulnerability exists in TinyMCE due to the fact that the bbcode plugin
violates the explicit security policy of TinyMCE. If the bbcode plugin
is enabled, but encoding is enabled using the "encoding" directive, or
sanitizing is enabled using the "valid_elements" attribute, these
mechanisms fail to function as expected. According to the "encoding"
documentation: "Posted content will be converted to an XML string
escaping characters such as <, >, ", and & to <, >, ", and
&." (http://www.tinymce.com/wiki.php/Configuration:encoding)
According to the "valid_elements" attribute documentation:
"valid_elements option defines which elements will remain in the edited
text when the editor saves. You can use this to limit the returned HTML
to a subset."
(http://www.tinymce.com/wiki.php/Configuration:valid_elements) However,
if the bbcode plugin is enabled these stated functions do not affect
content.

Systems affected:
-----------------
TinyMCE 3.5.8 was tested and found vulnerable using Chrome Version
25.0.1364.97.

Impact:
------
Systems using TinyMCE could erroneously assume a level of protection
against arbitrary script execution within the client side context of
TinyMCE. This could allow attackers to misuse TinyMCE enabled
applications to carry out arbitrary script injection (XSS) attacks.
Victims could be subject to credential theft, client side attack, or
other dangerous condition.

Mitigating factors:
-------------------
The TinyMCE system must be configured to use the bbcode plugin (included
in TinyMCE).

Proof of Concept Exploit:
---------------------------------
Configuring a TinyMCE textarea using:

tinyMCE.init({
mode : "textareas",
encoding : "xml",
plugins : "preview",
theme_advanced_buttons1 : "preview,code",
valid_elements : "br,strong",
});

will create the expected text area. If a user types HTML tags directly
into the textarea then presses the 'Preview' button the HTML characters
are properly encoded and show up in the display. Similarly, if the
'Code' button is pressed the pop up will show encoded HTML entities.

However, if the bbcode plugin is utilized then this behavior changes,
and HTML elements are not encoded, causing HTML tags to be rendered.

The explicit security policy of TinyMCE indicates that if the "encoding"
option is set then HTML entities will be encoded and if the
"valid_elements" option is set HTML elements will be removed, however,
the use of the bbcode plugin overrides this behavior, which could lead
to vulnerabilities in situations where a developer improperly assumed
that HTML would be encoded by the TinyMCE editor.

Steps to Reproduce:
-------------------
Install TinyMCE and create a textarea with the following init:

tinyMCE.init({
mode : "textareas",
encoding : "xml",
plugins : "preview",
theme_advanced_buttons1 : "preview,code",
valid_elements : "br,strong",
});

Load the page containing the textarea in a browser and enter the text
"<b>test</b>" then click the HTML Source Editor button and note that the
HTML entities are encoded showing "<b>test</b>". Next
change the init to the following:

tinyMCE.init({
mode : "textareas",
encoding : "xml",
plugins : "bbcode,preview",
theme_advanced_buttons1 : "preview,code",
valid_elements : "br,strong",
});

Type "<b>test</b>" into the textarea and again, click the HTML Source
Editor button. Note that the HTML entities have not been encoded. This
test can be run using the text "<script>alert('xss');</script>" for a
more dramatic demonstration of the issue.

Credits:
--------
This issue was originally discovered by Zach Alexander

Vendor Response:
----------------
Vendor has been alerted to this vulnerability but does not consider it a
critical security issue and will look into mitigation at some future time.

--
Justin C. Klein Keane
http://www.MadIrish.net


Login or Register to add favorites

File Archive:

October 2024

  • Su
  • Mo
  • Tu
  • We
  • Th
  • Fr
  • Sa
  • 1
    Oct 1st
    39 Files
  • 2
    Oct 2nd
    23 Files
  • 3
    Oct 3rd
    18 Files
  • 4
    Oct 4th
    20 Files
  • 5
    Oct 5th
    0 Files
  • 6
    Oct 6th
    0 Files
  • 7
    Oct 7th
    17 Files
  • 8
    Oct 8th
    66 Files
  • 9
    Oct 9th
    25 Files
  • 10
    Oct 10th
    20 Files
  • 11
    Oct 11th
    21 Files
  • 12
    Oct 12th
    0 Files
  • 13
    Oct 13th
    0 Files
  • 14
    Oct 14th
    14 Files
  • 15
    Oct 15th
    49 Files
  • 16
    Oct 16th
    28 Files
  • 17
    Oct 17th
    23 Files
  • 18
    Oct 18th
    0 Files
  • 19
    Oct 19th
    0 Files
  • 20
    Oct 20th
    0 Files
  • 21
    Oct 21st
    0 Files
  • 22
    Oct 22nd
    0 Files
  • 23
    Oct 23rd
    0 Files
  • 24
    Oct 24th
    0 Files
  • 25
    Oct 25th
    0 Files
  • 26
    Oct 26th
    0 Files
  • 27
    Oct 27th
    0 Files
  • 28
    Oct 28th
    0 Files
  • 29
    Oct 29th
    0 Files
  • 30
    Oct 30th
    0 Files
  • 31
    Oct 31st
    0 Files

Top Authors In Last 30 Days

File Tags

Systems

packet storm

© 2024 Packet Storm. All rights reserved.

Services
Security Services
Hosting By
Rokasec
close