CVE Vulnerabilities

CVE-2020-28327

Improper Resource Shutdown or Release

Published: Nov 06, 2020 | Modified: Nov 20, 2020
CVSS 3.x
5.3
MEDIUM
Source:
NVD
CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:H
CVSS 2.x
2.1 LOW
AV:N/AC:H/Au:S/C:N/I:N/A:P
RedHat/V2
RedHat/V3
Ubuntu

A res_pjsip_session crash was discovered in Asterisk Open Source 13.x before 13.37.1, 16.x before 16.14.1, 17.x before 17.8.1, and 18.x before 18.0.1. and Certified Asterisk before 16.8-cert5. Upon receiving a new SIP Invite, Asterisk did not return the created dialog locked or referenced. This caused a gap between the creation of the dialog object, and its next use by the thread that created it. Depending on some off-nominal circumstances and timing, it was possible for another thread to free said dialog in this gap. Asterisk could then crash when the dialog object, or any of its dependent objects, were dereferenced or accessed next by the initial-creation thread. Note, however, that this crash can only occur when using a connection-oriented protocol (e.g., TCP or TLS, but not UDP) for SIP transport. Also, the remote client must be authenticated, or Asterisk must be configured for anonymous calling.

Weakness

The product does not release or incorrectly releases a resource before it is made available for re-use.

Affected Software

Name Vendor Start Version End Version
Open_source Asterisk 13.0.0 (including) 13.37.1 (excluding)
Open_source Asterisk 16.0.0 (including) 16.14.1 (excluding)
Open_source Asterisk 17.0.0 (including) 17.8.1 (excluding)
Open_source Asterisk 18.0.0 (including) 18.0.1 (excluding)
Certified_asterisk Digium 16.8 (including) 16.8 (including)
Certified_asterisk Digium 16.8-cert1-rc1 (including) 16.8-cert1-rc1 (including)
Certified_asterisk Digium 16.8-cert1-rc2 (including) 16.8-cert1-rc2 (including)
Certified_asterisk Digium 16.8-cert1-rc3 (including) 16.8-cert1-rc3 (including)
Certified_asterisk Digium 16.8-cert1-rc4 (including) 16.8-cert1-rc4 (including)
Certified_asterisk Digium 16.8-cert2 (including) 16.8-cert2 (including)
Certified_asterisk Digium 16.8-cert3 (including) 16.8-cert3 (including)
Certified_asterisk Digium 16.8-cert4 (including) 16.8-cert4 (including)
Certified_asterisk Digium 16.8-cert4-rc1 (including) 16.8-cert4-rc1 (including)
Certified_asterisk Digium 16.8-cert4-rc2 (including) 16.8-cert4-rc2 (including)
Certified_asterisk Digium 16.8-cert4-rc3 (including) 16.8-cert4-rc3 (including)
Certified_asterisk Digium 16.8-cert4-rc4 (including) 16.8-cert4-rc4 (including)

Potential Mitigations

  • Use a language that does not allow this weakness to occur or provides constructs that make this weakness easier to avoid.
  • For example, languages such as Java, Ruby, and Lisp perform automatic garbage collection that releases memory for objects that have been deallocated.

References