Change:
, CVSSv3=7.5 (nixos-21.05) CVSSv3=7.5 (nixos-21.05) CVSSv3=7.5 (nixos-21.05) CVSSv3=7.5 (nixos-21.05) 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.10.7, FreeSWITCH does not authenticate SIP MESSAGE requests, leading to spam and message spoofing. By default, SIP requests of the type MESSAGE (RFC 3428) are not authenticated in the affected versions of FreeSWITCH. MESSAGE requests are relayed to SIP user agents registered with the FreeSWITCH server without requiring any authentication. Although this behaviour can be changed by setting the parameter to , it is not the default setting. Abuse of this security issue allows attackers to send SIP MESSAGE messages to any SIP user agent that is registered with the server without requiring authentication. Additionally, since no authentication is required, chat messages can be spoofed to appear to come from trusted entities. Therefore, abuse can lead to spam and enable social engineering, phishing and similar attacks. This issue is patched in version 1.10.7. Maintainers recommend that this SIP message type is authenticated by default so that FreeSWITCH administrators do not need to be explicitly set the parameter. When following such a recommendation, a new parameter can be introduced to explicitly disable authentication. 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. When handling SRTP calls, FreeSWITCH prior to version 1.10.7 is susceptible to a DoS where calls can be terminated by remote attackers. This attack can be done continuously, thus denying encrypted calls during the attack. When a media port that is handling SRTP traffic is flooded with a specially crafted SRTP packet, the call is terminated leading to denial of service. This issue was reproduced when using the SDES key exchange mechanism in a SIP environment as well as when using the DTLS key exchange mechanism in a WebRTC environment. The call disconnection occurs due to line 6331 in the source file , which disconnects the call when the total number of SRTP errors reach a hard-coded threshold (100). By abusing this vulnerability, an attacker is able to disconnect any ongoing calls that are using SRTP. The attack does not require authentication or any special foothold in the caller's or the callee's network. This issue is patched in version 1.10.7. 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. FreeSWITCH prior to version 1.10.7 is susceptible to Denial of Service via SIP flooding. When flooding FreeSWITCH with SIP messages, it was observed that after a number of seconds the process was killed by the operating system due to memory exhaustion. By abusing this vulnerability, an attacker is able to crash any FreeSWITCH instance by flooding it with SIP messages, leading to Denial of Service. The attack does not require authentication and can be carried out over UDP, TCP or TLS. This issue was patched in version 1.10.7. 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.10.7, an attacker can perform a SIP digest leak attack against FreeSWITCH and receive the challenge response of a gateway configured on the FreeSWITCH server. This is done by challenging FreeSWITCH's SIP requests with the realm set to that of the gateway, thus forcing FreeSWITCH to respond with the challenge response which is based on the password of that targeted gateway. Abuse of this vulnerability allows attackers to potentially recover gateway passwords by performing a fast offline password cracking attack on the challenge response. The attacker does not require special network privileges, such as the ability to sniff the FreeSWITCH's network traffic, to exploit this issue. Instead, what is required for this attack to work is the ability to cause the victim server to send SIP request messages to the malicious party. Additionally, to exploit this issue, the attacker needs to specify the correct realm which might in some cases be considered secret. However, because many gateways are actually public, this information can easily be retrieved. The vulnerability appears to be due to the code which handles challenges in , which does not check if the challenge is originating from the actual gateway. The lack of these checks allows arbitrary UACs (and gateways) to challenge any request sent by FreeSWITCH with the realm of the gateway being targeted. This issue is patched in version 10.10.7. Maintainers recommend that one should create an association between a SIP session for each gateway and its realm to make a check be put into place for this association when responding to challenges. Scanned versions: nixos-21.05: . Cc

Discussion:
<ins> { lib , stdenv , fetchFromGitHub , fetchpatch , cmake , pkg-config , libuuid , openssl }: stdenv.mkDerivation rec { pname = "libks"; version = "1.7.0"; src = fetchFromGitHub { owner = "signalwire"; repo = pname; rev = "v${version}"; sha256 = "1wvl8kzi1fx7pg58r5x1lw4gwkvrkljqajsn72yq6sbsd3iqn8wr"; }; patches = [ (fetchpatch { url = "https://raw.githubusercontent.com/openwrt/telephony/5ced7ea4fc9bd746273d564bf3c102f253d2182e/libs/libks/patches/01-find-libm.patch"; sha256 = "1hyrsdxg69d08qzvf3mbrx2363lw52jcybw8i3ynzqcl228gcg8a"; }) ]; dontUseCmakeBuildDir = true; nativeBuildInputs = [ cmake pkg-config ]; buildInputs = [ libuuid openssl ]; meta = with lib; { description = "Foundational support for signalwire C products"; homepage = "https://github.com/signalwire/libks"; maintainers = with lib.maintainers; [ misuzu ]; platforms = platforms.linux; license = licenses.mit; }; } </ins>

stdenv.mkDerivation rec { pname = "sofia-sip"; <del> version = "1.13.3"; </del> <ins> version = "1.13.6"; </ins> src = fetchFromGitHub { owner = "freeswitch"; repo = pname; rev = "v${version}"; <del> sha256 = "sha256-qMgZpLo/BHGJbJ0DDN8COHAhU3ujWgVK9oZOnnMwKas="; </del> <ins> sha256 = "0b1gq499ksgsi16f5nf3dzbj6s8knwkiak5j810jzdfm7vkm0vvm"; </ins> }; buildInputs = [ glib openssl ] ++ lib.optional stdenv.isDarwin SystemConfiguration;

stdenv.mkDerivation rec { pname = "freeswitch"; <del> version = "1.10.6"; </del> <ins> version = "1.10.7"; </ins> src = fetchFromGitHub { owner = "signalwire"; repo = pname; rev = "v${version}"; <del> sha256 = "1i5n06pds3kvzhhzfwvhwxnvcb2p2fcr8k52157aplm2i7prl4q2"; </del> <ins> sha256 = "0npdvidvsi4dhwswdwilff4p3x04qmz7hgs9sdadiy2w83qb6alf"; </ins> }; postPatch = ''

NIX_CFLAGS_COMPILE = "-Wno-error"; <ins> CFLAGS = "-D_ANSI_SOURCE"; </ins> hardeningDisable = [ "format" ]; preConfigure = ''

, postgresql , spandsp3 , sofia_sip <ins> , libks </ins> }: let

rtmp = mk "endpoints/mod_rtmp" []; skinny = mk "endpoints/mod_skinny" []; sofia = mk "endpoints/mod_sofia" [ sofia_sip ]; <del> verto = mk "endpoints/mod_verto" []; </del> <ins> verto = mk "endpoints/mod_verto" [ libks ]; </ins> }; event_handlers = {

libkml = callPackage ../development/libraries/libkml { }; <ins> libks = callPackage ../development/libraries/libks { }; </ins> libksba = callPackage ../development/libraries/libksba { }; libksi = callPackage ../development/libraries/libksi { };