HexBrain

ExpressionEngine · Report #149212

Full path + some back-end code disclosure

Validstatus
3upvotes
7 Aug 2016disclosed

How it was found

Hello,

Ironically enough, I just discovered a full path disclosure issue. When an admin edits their personal information, a request like the following gets sent:

POST /ee/admin.php?/cp/members/profile/settings&id=1 HTTP/1.1
Host: localhost
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Firefox/45.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Connection: close
Content-Type: multipart/form-data; boundary=---------------------------14340353543714380361467519033
Content-Length: 1708

-----------------------------14340353543714380361467519033
Content-Disposition: form-data; name="csrf_token"

{TOKEN}
-----------------------------14340353543714380361467519033
Content-Disposition: form-data; name="url"


-----------------------------14340353543714380361467519033
Content-Disposition: form-data; name="location"


-----------------------------14340353543714380361467519033
Content-Disposition: form-data; name="bday_d"


-----------------------------14340353543714380361467519033
Content-Disposition: form-data; name="bday_m"


-----------------------------14340353543714380361467519033
Content-Disposition: form-data; name="bday_y"


-----------------------------14340353543714380361467519033
Content-Disposition: form-data; name="bio"


-----------------------------14340353543714380361467519033
Content-Disposition: form-data; name="language"

english
-----------------------------14340353543714380361467519033
Content-Disposition: form-data; name="preferences[]"

display_avatars
-----------------------------14340353543714380361467519033
Content-Disposition: form-data; name="avatar_filename"

ee_paint.jpg
-----------------------------14340353543714380361467519033
Content-Disposition: form-data; name="upload_avatar"; filename=""
Content-Type: application/octet-stream


-----------------------------14340353543714380361467519033
Content-Disposition: form-data; name="avatar_picker"

choose
-----------------------------14340353543714380361467519033
Content-Disposition: form-data; name="link_avatar"

http://
-----------------------------14340353543714380361467519033--

The problem originates from the fact that, when the user attempts to change the value of the parameter "avatar_filename" to something like ../../../../../../etc/passwd, as an attempt to include such file, an exception gets thrown, disclosing the full path and some code from the back end.

Note: I didn't check if this is the case for normal uses or not, yet, working on it.

Regards

This report was disclosed publicly on HackerOne and belongs to its author and the program. See the original