Search code examples
apachehttpmime-typesreverse-proxyfile-type

Apache, connection reset on specific filetype and HTTP only


I cant access a specific filetype on my customer server (production).

Here are the results with cURL:

curl "http://domain.tld/fonts/glyphicons-halflings-regular.eot" -I
HTTP/1.1 200 OK
Date: Tue, 28 Jul 2015 12:06:23 GMT
Server: Apache/2.2.15 (Red Hat)
Last-Modified: Tue, 19 May 2015 15:32:20 GMT
ETag: "14023-4f42-516710421e900"
Accept-Ranges: bytes
Content-Length: 20290
Connection: close
Content-Type: application/vnd.ms-fontobject

The file is here. But when I try to get the file content:

curl "http://domain.tld/fonts/glyphicons-halflings-regular.eot"
curl: (56) Recv failure: Connection was reset

I can't (yet) access the customer server, so I'm trying to guess what's wrong here.

What is working so far:

curl "https://domain.tld/fonts/glyphicons-halflings-regular.eot" --insecure

It is working in HTTPS, even if there is no certificate (which is why I use --insecure). I get the file content.

The customer can get the file if he accesses the file from a local URL.

I can access all other files on the server, even in the fonts directory. I can't access all .eot files, even in other directories.

So I think it is one of those 2 problems: - Apache configuration / .htaccess problem. - Proxy / reverse proxy problem.

What do you think about it? What kind of other test should I do? What information should I ask to the customer?

Thanks.


Solution

  • Ok, here is the cause: The customer firewall blocks .eot file content.

    A vulnerability in Embedded Web Fonts Could Allow Remote Code Execution.
    

    http://www.checkpoint.com/defense/advisories/public/2006/cpai-2006-010.html

    As the .eot files are used by IE8 and lower, and those browser versions are not required by the customer, I've simply removed all references to .eot files.

    Another solution would be to ask for the customer firewall admins to add an exception, as the severity is low.