Web Server HTTP Header Internal IP Disclosure - (CVE-2000-0649)

Description

A Nessus security scan reports that the OpenNMS webUI is vulnerable to a particular issue first reported on IIS in 2000.

"This may expose internal IP addresses that are usually hidden or masked behind a Network Address Translation (NAT) Firewall or proxy server"

I'm not 100% sure this is an OpenNMS issue or a jetty issue, but a quick search did not turn up any remediation via jetty configuration.

 

 

 

Environment

OpenNMS Running on RHEL See https://mynms.opennms.com/Ticket/Display.html?id=6097

Acceptance / Success Criteria

None

Attachments

1

Lucidchart Diagrams

Activity

Show:

Jeff Gehlbach August 20, 2019 at 7:27 PM

Go for it. Might as well open it to default security level so folks searching key terms will be able to find it.

Jesse White August 20, 2019 at 7:25 PM

HTTP/1.0 vs HTTP/1.1 is what I missed. Thanks for figuring this one out.

Should we close this one as Configuration then?

Jeff Gehlbach August 20, 2019 at 7:20 PM
Edited

I figured out what this report is about, and it's easily demonstrated by bringing up OpenNMS on a Vagrant box and connecting to the webapp via the forwarded port:

In the Location: header above, the IP address of the VM's guest operating system is exposed. If we imagine that we're looking at an OpenNMS instance behind e.g. a load balancer rather than a Vagrant box, the complaint starts to make sense. For additional context, the instance against which the customer reported this problem is in an environment that is subject to heightened security measures.

I identified a small change that we can make to jetty.xml to hide the local IP address:

With this change applied and services restarted, the Location: header now shows the configured hostname rather than the local IP address:

This change is unlikely to break things even if the hostname configured in jetty.xml is not resolvable from the outside world, because the hostname is used only for HTTP requests that lack a Host: header, i.e. HTTP/1.0 requests. Any HTTP/1.1 requests will have a Host: header, which Jetty will use in the URLs it produces for its Location: headers when needed.

If the jetty.xml adds an HTTPS listener, the customizer configuration will need to be added to that section of the file as well.

I don't think this change or anything like it needs to be applied to the default configuration files.

Jesse White August 14, 2019 at 1:51 PM

Still unable to reproduce this.

Tarus Balog May 23, 2019 at 4:46 PM

I know nothing more than Nessus is reporting this as a vulnerability against OpenNMS.

My guess is that when you use a hostname that is NAT'd, this vulnerability will return the internal (real) IP address.

I can try to set up an instance here and have Chris set up a NAT if that would help.

Configuration

Details

Assignee

Reporter

Labels

Affects versions

Priority

PagerDuty

Created May 21, 2019 at 7:08 PM
Updated August 20, 2019 at 7:31 PM
Resolved August 20, 2019 at 7:31 PM