https://bz.apache.org/bugzilla/show_bug.cgi?id=65823

            Bug ID: 65823
           Summary: mod_proxy_http seems to redact the URI
           Product: Apache httpd-2
           Version: 2.4.52
          Hardware: Other
                OS: FreeBSD
            Status: NEW
          Severity: normal
          Priority: P2
         Component: mod_proxy_http
          Assignee: bugs@httpd.apache.org
          Reporter: apa...@cyclaero.com
  Target Milestone: ---

I got a private web application which is connected via VPN to a public web
server running Apache httpd. The OS is FreeBSD 13.0-RELEASE-p6, and Apache has
been installed from the FreeBSD pkg system, i.e. with the default compiler
options.

httpd -v
Server version: Apache/2.4.52 (FreeBSD)

Apache serves as proxy to the Web application. Here come the virtual hosts
settings:

<VirtualHost *:443>
   ServerName            xyz.example.com:443
   ServerAdmin           m...@example.com

   ProxyPass             / http://10.11.0.1:80/
   ProxyPassReverse      / http://10.11.0.1:80/

   SSLEngine             on
   SSLCertificateFile   
"/usr/local/etc/letsencrypt/live/example.com/fullchain.pem"
   SSLCertificateKeyFile
"/usr/local/etc/letsencrypt/live/example.com/privkey.pem"
</VirtualHost>

10.11.0.1 is the local IP address on the remote side of the VPN tunnel, and the
web application provides WebDAV access to some file hierarchy. Until recently,
the WebDAV shares could be accessed by Windows and Mac clients via said Apache
proxy without any hickups.

I updated the Apache server to v2.4.52, and now Windows clients can’t connect
anymore, while Mac clients and third party Windows software (WinSCP) still can.
Now the debug transcripts of my WebDAV server show clearly, that the Apache
proxy removes trailing slashes from the URI. However, according to
https://datatracker.ietf.org/doc/html/rfc4918, a trailing slash distinguishes a
collection (i.e. a directory of a file system) from ordinary resources (i.e. a
file), and trailing slashes must not be removed for WebDAV functioning
properly.

I found out, that when I run my web application on a non-standard port, e.g.
13939 instead of 80, then the Apache proxy passes the URI without redacting
away trailing slashes, and then Windows WebDAV clients can connect, as before.

I had another issue with an URI which was send to the Apache proxy by ordinary
browsers (Firefox, Chrome, Safari, ...) alike
https://xyz.example.com/|startVA|1|VA|?date=1642726020.032. In case the web
application runs on port 80, this produced a 404, it didn’t even reach my web
app. In case the web app runs on port 13939 then this simply went through
without problems.

I will now run the web app on a non standard port, however, I assume that you
want to consider to revise the rules of the URI sanitizer of the proxy modules.

Best regards

Rolf Jansen

-- 
You are receiving this mail because:
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: bugs-unsubscr...@httpd.apache.org
For additional commands, e-mail: bugs-h...@httpd.apache.org

Reply via email to