- Advisory ID: DRUPAL-SA-CONTRIB-2012-040
- Project: CKEditor, FCKeditor - WYSIWYG HTML editor (third-party module)
- Version: 6.x, 7.x
- Date: 2012-March-14
- Security risk: Highly critical
- Exploitable from: Remote
- Vulnerability: Cross Site Scripting, Cross Site Request Forgery, Arbitrary PHP code execution
CKEditor and its predecessor FCKeditor allow Drupal to replace textarea fields with the (F)CKEditor - a visual HTML WYSIWYG editor.
The modules have an AJAX callback that filters text to prevent Cross site scripting attacks on content edits. This AJAX callback function contains a number of bugs which allow attackers to chose which filter to execute on chosen text or bypass the filter entirely.
The vulnerability can be used to conduct Cross site scripting (XSS) attacks on privileged users. Attackers can also execute arbitrary PHP code if the core PHP module is enabled. This can happen either directly or by enticing a privileged user to visit a page.
Direct execution of PHP code requires that the attacker has the following privileges:
"access fckeditor" for FCKeditor 6.x
"access ckeditor" for CKEditor 6.x
No additional permissions are required to directly exploit the PHP code execution flaw on CKEditor 7.x.
The XSS issue is
The arbitrary code execution issue is
- FCKeditor 6.x-2.x versions prior to 6.x-2.3.
- CKEditor 6.x-1.x versions prior to 6.x-1.9.
- CKEditor 7.x-1.x versions prior to 7.x-1.7.
Drupal core is not affected. If you do not use the contributed CKEditor - WYSIWYG HTML editor module, there is nothing you need to do.
Install the latest version:
- If you use the FCKeditor module for Drupal 6.x, upgrade to FCKeditor 6.x-2.3.
- If you use the CKEditor module for Drupal 6.x, upgrade to CKEditor 6.x-1.9.
- If you use the CKEditor module for Drupal 7.x, upgrade to CKEditor 7.x-1.7.
See also the CKEditor - WYSIWYG HTML editor project page.
- Heine Deelstra of the Drupal Security Team
- Wiktor Walc the module maintainer
Contact and More Information
The Drupal security team can be reached at security at drupal.org or via the contact form at http://drupal.org/contact.