Skip to content

FreeSWITCH allows remote users to trigger out of bounds write by offering an ICE candidate with unknown component ID

High
briankwest published GHSA-7mwp-86fv-hcg3 Sep 13, 2023

Package

FreeSWITCH (C)

Affected versions

<= 1.10.9

Patched versions

1.10.10

Description

Summary

FreeSWITCH allows remote users to trigger out of bounds write by offering an ICE candidate with unknown component ID

Description

When an SDP is offered with any ICE candidates with an unknown component ID, FreeSWITCH will make an out of bounds write to its arrays.

Impact

By abusing this vulnerability, an attacker is able to corrupt FreeSWITCH memory leading to an undefined behavior of the system or a crash of it.

How to reproduce the issue

Any of these ICE candidates will cause out of bound write. Note 0, x and 100:

"a=candidate:4010986621 0 udp 41819903 192.168.0.1 21280 typ relay raddr 192.168.1.1 rport 11556 generation 0 network-id 1 network-cost 10\n"
"a=candidate:4010986621 x udp 41819903 192.168.0.1 21280 typ relay raddr 192.168.1.1 rport 11556 generation 0 network-id 1 network-cost 10\n"
"a=candidate:4010986621 100 udp 41819903 192.168.0.1 21280 typ relay raddr 192.168.1.1 rport 11556 generation 0 network-id 1 network-cost 10\n"

Solution and recommendations

Update to FreeSWITCH version >= 1.10.10

Credit: SignalWire Inc.

Severity

High

CVSS overall score

This score calculates overall vulnerability severity from 0 to 10 and is based on the Common Vulnerability Scoring System (CVSS).
/ 10

CVSS v3 base metrics

Attack vector
Network
Attack complexity
Low
Privileges required
None
User interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
None
Availability
High

CVSS v3 base metrics

Attack vector: More severe the more the remote (logically and physically) an attacker can be in order to exploit the vulnerability.
Attack complexity: More severe for the least complex attacks.
Privileges required: More severe if no privileges are required.
User interaction: More severe when no user interaction is required.
Scope: More severe when a scope change occurs, e.g. one vulnerable component impacts resources in components beyond its security scope.
Confidentiality: More severe when loss of data confidentiality is highest, measuring the level of data access available to an unauthorized user.
Integrity: More severe when loss of data integrity is the highest, measuring the consequence of data modification possible by an unauthorized user.
Availability: More severe when the loss of impacted component availability is highest.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H

CVE ID

CVE-2023-40018

Weaknesses

No CWEs

Credits