CVE Vulnerabilities

CVE-2017-14099

Exposure of Sensitive Information to an Unauthorized Actor

Published: Sep 02, 2017 | Modified: Nov 04, 2017
CVSS 3.x
7.5
HIGH
Source:
NVD
CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
CVSS 2.x
5 MEDIUM
AV:N/AC:L/Au:N/C:P/I:N/A:N
RedHat/V2
RedHat/V3
Ubuntu

In res/res_rtp_asterisk.c in Asterisk 11.x before 11.25.2, 13.x before 13.17.1, and 14.x before 14.6.1 and Certified Asterisk 11.x before 11.6-cert17 and 13.x before 13.13-cert5, unauthorized data disclosure (media takeover in the RTP stack) is possible with careful timing by an attacker. The strictrtp option in rtp.conf enables a feature of the RTP stack that learns the source address of media for a session and drops any packets that do not originate from the expected address. This option is enabled by default in Asterisk 11 and above. The nat and rtp_symmetric options (for chan_sip and chan_pjsip, respectively) enable symmetric RTP support in the RTP stack. This uses the source address of incoming media as the target address of any sent media. This option is not enabled by default, but is commonly enabled to handle devices behind NAT. A change was made to the strict RTP support in the RTP stack to better tolerate late media when a reinvite occurs. When combined with the symmetric RTP support, this introduced an avenue where media could be hijacked. Instead of only learning a new address when expected, the new code allowed a new source address to be learned at all times. If a flood of RTP traffic was received, the strict RTP support would allow the new address to provide media, and (with symmetric RTP enabled) outgoing traffic would be sent to this new address, allowing the media to be hijacked. Provided the attacker continued to send traffic, they would continue to receive traffic as well.

Weakness

The product exposes sensitive information to an actor that is not explicitly authorized to have access to that information.

Affected Software

Name Vendor Start Version End Version
Asterisk Digium 13.0.0 (including) 13.0.0 (including)
Asterisk Digium 13.0.0-beta1 (including) 13.0.0-beta1 (including)
Asterisk Digium 13.0.0-beta2 (including) 13.0.0-beta2 (including)
Asterisk Digium 13.0.0-beta3 (including) 13.0.0-beta3 (including)
Asterisk Digium 13.0.1 (including) 13.0.1 (including)
Asterisk Digium 13.0.2 (including) 13.0.2 (including)
Asterisk Digium 13.1.0 (including) 13.1.0 (including)
Asterisk Digium 13.1.0-rc1 (including) 13.1.0-rc1 (including)
Asterisk Digium 13.1.0-rc2 (including) 13.1.0-rc2 (including)
Asterisk Digium 13.1.1 (including) 13.1.1 (including)
Asterisk Digium 13.2.0 (including) 13.2.0 (including)
Asterisk Digium 13.2.0-rc1 (including) 13.2.0-rc1 (including)
Asterisk Digium 13.2.1 (including) 13.2.1 (including)
Asterisk Digium 13.3.0-rc1 (including) 13.3.0-rc1 (including)
Asterisk Digium 13.3.2 (including) 13.3.2 (including)
Asterisk Digium 13.4.0 (including) 13.4.0 (including)
Asterisk Digium 13.4.0-rc1 (including) 13.4.0-rc1 (including)
Asterisk Digium 13.5.0 (including) 13.5.0 (including)
Asterisk Digium 13.5.0-rc1 (including) 13.5.0-rc1 (including)
Asterisk Digium 13.6.0-rc1 (including) 13.6.0-rc1 (including)
Asterisk Digium 13.7.0-rc1 (including) 13.7.0-rc1 (including)
Asterisk Digium 13.7.0-rc2 (including) 13.7.0-rc2 (including)
Asterisk Digium 13.7.1 (including) 13.7.1 (including)
Asterisk Digium 13.7.2 (including) 13.7.2 (including)
Asterisk Digium 13.8.0 (including) 13.8.0 (including)
Asterisk Digium 13.8.0-rc1 (including) 13.8.0-rc1 (including)
Asterisk Digium 13.8.1 (including) 13.8.1 (including)
Asterisk Digium 13.8.2 (including) 13.8.2 (including)
Asterisk Digium 13.9.0 (including) 13.9.0 (including)
Asterisk Digium 13.9.1 (including) 13.9.1 (including)
Asterisk Digium 13.10.0 (including) 13.10.0 (including)
Asterisk Digium 13.10.0-rc1 (including) 13.10.0-rc1 (including)
Asterisk Digium 13.11.0 (including) 13.11.0 (including)
Asterisk Digium 13.11.1 (including) 13.11.1 (including)
Asterisk Digium 13.11.2 (including) 13.11.2 (including)
Asterisk Digium 13.12 (including) 13.12 (including)
Asterisk Digium 13.12.0 (including) 13.12.0 (including)
Asterisk Digium 13.12.1 (including) 13.12.1 (including)
Asterisk Digium 13.12.2 (including) 13.12.2 (including)
Asterisk Digium 13.13 (including) 13.13 (including)
Asterisk Digium 13.13.0 (including) 13.13.0 (including)
Asterisk Digium 13.13.1 (including) 13.13.1 (including)
Asterisk Digium 13.14.0 (including) 13.14.0 (including)
Asterisk Digium 13.14.0-rc1 (including) 13.14.0-rc1 (including)
Asterisk Digium 13.14.0-rc2 (including) 13.14.0-rc2 (including)
Asterisk Digium 13.14.1 (including) 13.14.1 (including)
Asterisk Digium 13.15.0 (including) 13.15.0 (including)
Asterisk Digium 13.15.0-rc1 (including) 13.15.0-rc1 (including)
Asterisk Digium 13.15.0-rc2 (including) 13.15.0-rc2 (including)
Asterisk Digium 13.15.0-rc3 (including) 13.15.0-rc3 (including)
Asterisk Digium 13.15.1 (including) 13.15.1 (including)
Asterisk Digium 13.16.0 (including) 13.16.0 (including)
Asterisk Digium 13.16.0-rc1 (including) 13.16.0-rc1 (including)
Asterisk Digium 13.16.0-rc2 (including) 13.16.0-rc2 (including)
Asterisk Digium 13.17.0 (including) 13.17.0 (including)
Asterisk Digium 13.17.0-rc1 (including) 13.17.0-rc1 (including)

Extended Description

There are many different kinds of mistakes that introduce information exposures. The severity of the error can range widely, depending on the context in which the product operates, the type of sensitive information that is revealed, and the benefits it may provide to an attacker. Some kinds of sensitive information include:

Information might be sensitive to different parties, each of which may have their own expectations for whether the information should be protected. These parties include:

Information exposures can occur in different ways:

It is common practice to describe any loss of confidentiality as an “information exposure,” but this can lead to overuse of CWE-200 in CWE mapping. From the CWE perspective, loss of confidentiality is a technical impact that can arise from dozens of different weaknesses, such as insecure file permissions or out-of-bounds read. CWE-200 and its lower-level descendants are intended to cover the mistakes that occur in behaviors that explicitly manage, store, transfer, or cleanse sensitive information.

Potential Mitigations

  • Compartmentalize the system to have “safe” areas where trust boundaries can be unambiguously drawn. Do not allow sensitive data to go outside of the trust boundary and always be careful when interfacing with a compartment outside of the safe area.
  • Ensure that appropriate compartmentalization is built into the system design, and the compartmentalization allows for and reinforces privilege separation functionality. Architects and designers should rely on the principle of least privilege to decide the appropriate time to use privileges and the time to drop privileges.

References