CVE Vulnerabilities

CVE-2020-28327

Improper Resource Shutdown or Release

Published: Nov 06, 2020 | Modified: Aug 15, 2024
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
LOW

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
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)
Asterisk Sangoma 13.0.0 (including) 13.37.1 (excluding)
Asterisk Sangoma 16.0.0 (including) 16.14.1 (excluding)
Asterisk Sangoma 17.0.0 (including) 17.8.1 (excluding)
Asterisk Sangoma 18.0.0 (including) 18.0.1 (excluding)
Asterisk Ubuntu bionic *
Asterisk Ubuntu esm-apps/bionic *
Asterisk Ubuntu esm-apps/focal *
Asterisk Ubuntu esm-apps/xenial *
Asterisk Ubuntu focal *
Asterisk Ubuntu groovy *
Asterisk Ubuntu trusty *
Asterisk Ubuntu upstream *
Asterisk Ubuntu xenial *

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