Bugzilla – Full Text Bug Listing |
Summary: | VUL-0: CVE-2020-10136: IP-in-IP protocol routes arbitrary traffic by default | ||
---|---|---|---|
Product: | [Novell Products] SUSE Security Incidents | Reporter: | Alexandros Toptsoglou <atoptsoglou> |
Component: | Incidents | Assignee: | Michal Kubeček <mkubecek> |
Status: | NEW --- | QA Contact: | Security Team bot <security-team> |
Severity: | Major | ||
Priority: | P3 - Medium | CC: | meissner, mkubecek |
Version: | unspecified | ||
Target Milestone: | --- | ||
Hardware: | Other | ||
OS: | Other | ||
Whiteboard: | CVSSv2:NVD:CVE-2020-10136:5.0:(AV:N/AC:L/Au:N/C:N/I:N/A:P) CVSSv3.1:NVD:CVE-2020-10136:5.3:(AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L) | ||
Found By: | --- | Services Priority: | |
Business Priority: | Blocker: | --- | |
Marketing QA Status: | --- | IT Deployment: | --- |
Description
Alexandros Toptsoglou
2020-04-30 11:14:19 UTC
The problem description is rather vague and if I understood it correctly, it does not match what ipip tunneling works like. It is definitely not true that any ipip packet would be decapsulated and inner packet processed (received or forwarded, depending on destination address). Only packets with outer IP header matching one of existing tunnels are handled, the rest is dropped. Thus the attacker would need to setup a tunnel with their address as remote endpoint on our system first which hardly counts as "remote" or "unauthenticated". If the point of this report is that attacker able to spoof outer source IP address to match remote endpoint of one of existing ipip tunnels (if there is any which is quite rare) can pose as the remote endpoint and inject inner traffic, that would be a generic problem of any unauthenticated tunneling protocol; the same could be said about GRE, SIT, vxlan, ... has been published now https://de.tenable.com/blog/cve-2020-10136-ip-in-ip-packet-processing-vulnerability-could-lead-to-ddos-network-access https://github.com/CERTCC/PoC-Exploits/tree/master/cve-2020-10136 https://kb.cert.org/vuls/id/636397 Vulnerability Note VU#636397 Original Release Date: 2020-06-02 | Last Revised: 2020-06-04 Overview IP Encapsulation within IP (RFC2003 IP-in-IP) can be abused by an unauthenticated attacker to unexpectedly route arbitrary network traffic through a vulnerable device. Description IP-in-IP encapsulation is a tunneling protocol specified in RFC 2003 that allows for IP packets to be encapsulated inside another IP packets. This is very similar to IPSEC VPNs in tunnel mode, except in the case of IP-in-IP, the traffic is unencrypted. As specified, the protocol unwraps the inner IP packet and forwards this packet through IP routing tables, potentially providing unexpected access to network paths available to the vulnerable device. An IP-in-IP device is considered to be vulnerable if it accepts IP-in-IP packets from any source to any destination without explicit configuration between the specified source and destination IP addresses. This unexpected Data Processing Error (CWE-19) by a vulnerable device can be abused to perform reflective DDoS and in certain scenarios used to bypass network access control lists. Because the forwarded network packet may not be inspected or verified by vulnerable devices, there are possibly other unexpected behaviors that can be abused by an attacker on the target device or the target device's network environment. Impact An unauthenticated attacker can route network traffic through a vulnerable device, which may lead to reflective DDoS, information leak and bypass of network access controls. Solution Apply updates The CERT/CC recommends that you apply the latest patch provided by the affected vendor that addresses this issue. Review the vendor information below or contact your vendor or supplier for specific mitigation advice. If a device has the ability to disable IP-in-IP in its configuration, it is recommended that you disable IP-in-IP in all interfaces that do not require this feature. Device manufacturers are urged to disable IP-in-IP in their default configuration and to require their customers to explicitly configure IP-in-IP as and when needed. Disable IP-in-IP Users can block IP-in-IP packets by filtering IP protocol number 4. Note this filtering is for the IPv4 Protocol (or IPv6 Next Header) field value of 4 and not IP protocol version 4 (IPv4). Proof of Concept (PoC) A proof-of-concept originally written by Yannay Livneh is available in the CERT/CC PoC respository. Detection Signature (IDS) This Snort IDS rule looks for any IP-in-IP traffic, whether intentional or not seen at upstream network path of a vulnerable device. This Snort or Suricata rule can be modified to apply filters that ignore sources and destinations that are allowed by policy to route IP-in-IP traffic. alert ip any any -> any any (msg: "IP-in-IP Tunneling VU#636397 https://kb.cert.org"; ip_proto:4; sid: 1367636397; rev:1;) Acknowledgements Thanks to Yannay Livneh for reporting this issue to us. This document was written by Vijay Sarvepalli. Michal, can you take a more detailed look now? The whole description still depends on behaviour which linux kernel does not exhibit (and neither it did since the start of git history). IMHO the key is this sentence: An IP-in-IP device is considered to be vulnerable if it accepts IP-in-IP packets from any source to any destination without explicit configuration between the specified source and destination IP addresses. If an ipip packet not matching any configured tunnel is received by a linux host, it is dropped. It is true that unless suppressed e.g. by netfilter rules, an ICMP error message is sent but it is sent to source IP address from the outer IPv4 header. Therefore to reflect this ICMP error to someone else, the attacker would need to spoof victim's IP address. But then such reflection would not need ipip, any TCP or UDP port without listener would behave the same way. My theory is that this CVE does not describe a known vulnerability of linux networking stack, rather a generic weakness of some implementations of ipip observed in specific devices. The first link lists HPE, Digi International, Treck and Cisco devices to be known as affected. I assume that if linux kernel as such were affected, they would hardly forget to mention such catch. |