------------------------------------------------------------------------ Cross-Site Request Forgery in Icegram WordPress Plugin ------------------------------------------------------------------------ Yorick Koster, July 2016 ------------------------------------------------------------------------ Abstract ------------------------------------------------------------------------ A Cross-Site Request Forgery vulnerability was found in the Icegram WordPress Plugin. This issue allows an attacker to overwrite any WordPress option with the value true. An attacker may use this issue to enable (vulnerable) WordPress features that are disabled in the target site. ------------------------------------------------------------------------ OVE ID ------------------------------------------------------------------------ OVE-20160712-0032 ------------------------------------------------------------------------ Tested versions ------------------------------------------------------------------------ This issue was successfully tested on the Icegram - Popups, Optins, CTAs & lot more... [2] WordPress Plugin version 1.9.18. ------------------------------------------------------------------------ Fix ------------------------------------------------------------------------ This issue is resolved in Icegram 1.9.19 [3]. ------------------------------------------------------------------------ Introduction ------------------------------------------------------------------------ The Icegram [2] WordPress Plugin allows creating beautiful popups, hellobars, slide-ins & notifications. Capture leads, Instant results and awesome support. A Cross-Site Reqeust Forgery vulnerability exists in Icegram that allows an attacker to overwrite any WordPress option with the value true. An attacker may use this issue to enable (vulnerable) WordPress features that are disabled in the target site. ------------------------------------------------------------------------ Details ------------------------------------------------------------------------ The vulnerability exists in the file icegram.php. As can be seen in the code fragment below, the plugin reads the value of the option_name URL parameter and uses this value as a key to update_option(). This allows an attacker to create an link that will overwrite an arbitrary WordPress option. The value of target option will be set to true. update_option($_GET['option_name'], true); In order to exploit this issue, the attacker has to lure/force a logged on WordPress Administrator into opening a malicious link. If a logged in Administrator opens the following URL, the ability for users to register will be enabled: http:///wp-admin/edit.php?dismiss_admin_notice=1&option_name=users_can_register ------------------------------------------------------------------------ References ------------------------------------------------------------------------ [1] https://sumofpwn.nl/advisory/2016/cross_site_request_forgery_in_icegram_wordpress_plugin.html [2] https://wordpress.org/plugins/icegram/ [3] https://downloads.wordpress.org/plugin/icegram.1.9.19.zip