SPIP 3.1.2 Server Side Request Forgery

Related Vulnerabilities: CVE-2016-7999  
Publish Date: 20 Oct 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









<p>