<div dir="ltr">Folks,<div><br></div><div>Robert Coup has noticed a security problem with the OGR WCTS service.  As I am not aware of anyone using it, and it hasn't been maintained for a while, I'm going to move it to "svn spike" from trunk and added a small warning about it there.  Anyone actually running this as a service may want to review the notes added to the index.html and/or talk to Robert.  If there is desire to keep this in the GDAL/OGR distribution let me know and we could work on a fix. </div><div><br></div><div>The brief (incomplete) description follows, and the code can now be found at:</div><div><br></div><div>  <a href="http://svn.osgeo.org/gdal/spike/wcts/">http://svn.osgeo.org/gdal/spike/wcts/</a></div><div><br></div><div><div><h2><a id="security">Security Concern</a></h2></div><div><br></div><div>The OGR WCTS server has been moved to "spike" due to lack of maintenance</div><div>and a non-trivial SSRF security bug.  In light of this problem, it is advised </div><div>that this service only be used with caution.  Robert Coup describes it this way:</div><div><p></div><div><br></div><div><i></div><div>If the WCTS stuff is compiled with -DHAVE_CURL, then the ogrwcts process is</div><div>vulnerable to SSRF. The wctsclient process (which looks to me like a cgi</div><div>server) is always vulnerable, since it doesn't care about -DHAVE_CURL.<p></div><div><br></div><div>(a) Either passing in a user-supplied URL which isn't validated before</div><div>requesting it - this leaves "internal" http services which should only be</div><div>readable to the server readable to any client.<p></div><div><br></div><div>(b) Using a redirect to the gopher protocol a client can send HTTP POST</div><div>requests or other payloads to any host accessible to the server. *Why* curl</div><div>enables the gopher protocol is beyond me, but it does.<p></div><div><br></div><div>We can protect against (b) by disabling redirect-following</div><div>(CURLOPT_FOLLOWLOCATION=0). But we can't really protect against (a) at all</div><div>without adding some black/whitelist of IP addresses.<p></div><div><br></div><div>Steps to reproduce:<p></div><div><br></div><div>Overview:</div><div><ol></div><div><li> send evil request to wctsclient or ogrwcts services</div><div><li> wcts requests client-specified http url (via <FileUrl> in ogrwcts, or</div><div>WCTSServer/GMLURL in wctsclient)</div><div><li> either that reveals private inf</div><div></ol></div><div></i></div><div><br></div><div>Best regards,</div>-- <br>---------------------------------------+--------------------------------------<br>I set the clouds in motion - turn up   | Frank Warmerdam, <a href="mailto:warmerdam@pobox.com" target="_blank">warmerdam@pobox.com</a><br>light and sound - activate the windows | <a href="http://pobox.com/~warmerdam" target="_blank">http://pobox.com/~warmerdam</a><br>and watch the world go round - Rush    | Geospatial Software Developer<br>
</div></div>