FreeSWITCH is a Software Defined Telecom Stack enabling the digital transformation from proprietary telecom switches to a software implementation that runs on any commodity hardware. Prior to version 1.11.1, esl_recv_event() parses Content-Length with atol() and passes the result straight to malloc(len + 1) with no sign or magnitude check. A malicious or man-in-the-middle ESL peer can send a frame with a negative Content-Length to corrupt the heap of, or crash, any process linked against libesl, before the client has authenticated to that peer. This issue has been patched in version 1.11.1.
The esl_recv_event() function reads the Content-Length header value using atol(), which can return a negative number. The result is directly passed to malloc(len + 1) without any verification of sign or value size. A malicious ESL peer or an attacker performing a man-in-the-middle attack can send a frame with a negative Content-Length, leading to improper memory allocation (heap buffer overflow) and consequently heap corruption or immediate crash of the process using libesl.
An attacker can remotely cause a crash of any process linked with the libesl library or corrupt heap memory, potentially opening the way for further compromise of system integrity or availability. The attack is possible before client authentication to the peer.
FreeSWITCH must be updated to version 1.11.1, in which the issue has been fixed. The patch is available in the official repository: https://github.com/signalwire/freeswitch/releases/tag/v1.11.1
FreeSWITCH in versions prior to 1.11.1 — all processes and applications linked with the libesl library.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:HFreeswitch
APPFreeswitch< 1.11.1
Related vulnerabilities
FreeSWITCH mod_verto: heap buffer overflow przed autoryzacją HTTP
FreeSWITCH — domyślne hasło w konfiguracji Event Socket (CWE-798)
FreeSWITCH is a Software Defined Telecom Stack enabling the digital transformation from proprietary telecom sw...
FreeSWITCH is a Software Defined Telecom Stack enabling the digital transformation from proprietary telecom sw...
FreeSWITCH is a Software Defined Telecom Stack enabling the digital transformation from proprietary telecom sw...