Details ================ Software: Post Indexer Version: 3.0.6.1 Homepage: http://premium.wpmudev.org/project/post-indexer/ Advisory report: https://security.dxw.com/advisories/unserialisation-in-post-indexer-could-allow-man-in-the-middle-to-execute-arbitrary-code-in-some-circumstances/ CVE: Awaiting assignment CVSS: 7.6 (High; AV:N/AC:H/Au:N/C:C/I:C/A:C) Description ================ Unserialisation in Post Indexer could allow man-in-the-middle to execute arbitrary code (in some circumstances) Vulnerability ================ Twice a day the blog makes an automated unencrypted HTTPA request to premium.wpmudev.org and the value that is returned is passed to unserialize(). It is possible for premium.wpmudev.orgA or any one on the network in a man-in-the-middle position to return a string that contains an evil encoded object that executes arbitrary code (depending on the active plugins and themes). This code is called twice a day by wp_schedule_event(time(), \'twicedaily\', \'wpmudev_scheduled_jobs\')A (extra/wpmudev-dash-notification.php): var $server_url = \'http://premium.wpmudev.org/wdp-un.php\'; // line 12 $url = $this->server_url . \'?action=check&un-version=3.3.3&wp=\' . urlencode($wp) . \'&bcount=\' . $blog_count . \'&domain=\' . urlencode(network_site_url()) . $projects; // line 393 $response = wp_remote_get($url, $options); // line 400 $data = $response[\'body\']; // line 402 $data = unserialize($data); // line 404 There is a class called ProcessLocker in this pluginA with an exploitableA __destructA method, which could be used as a jumping-off point for attacks using this unserialize()A vulnerability (or the use ofA unserialize()A in WordPress core which requires access to the database to exploit). Proof of concept ================ AchievingA arbitrary code executionA depends onA which classes are available (i.e. which plugins and themes are installed and active). It wonat be possible in all situations. Mitigations ================ Upgrade to version 3.0.6.2 or later. Disclosure policy ================ dxw believes in responsible disclosure. Your attention is drawn to our disclosure policy: https://security.dxw.com/disclosure/ Please contact us on security@dxw.com to acknowledge this report if you received it via a third party (for example, plugins@wordpress.org) as they generally cannot communicate with us on your behalf. This vulnerability will be published if we do not receive a response to this report with 14 days. Timeline ================ 2016-11-01: Discovered 2016-11-14: Reported to plugin author viaA https://premium.wpmudev.org/contact/ 2016-11-14:A Plugin author responded 2016-11-17: Confirmed that version 3.0.6.2 fixes the issue 2016-11-17:A Requested CVE 2016-11-17:A Advisory published Discovered by dxw: ================ Glyn Wintle Please visit security.dxw.com for more information.