I ricercatori di sicurezza informatica di JFrog hanno scoperto una vulnerabilità critica nella libreria open source PjSip e in Media Stack.
“La scoperta delle vulnerabilità nella popolare libreria PjSip”, commenta Pierluigi Paganini, analista di cyber security e CEO Cybhorus, “è sicuramente preoccupante per la tipologia delle falle individuate e perché tale libreria è utilizzata dalle principali applicazioni di comunicazioni, come WhatsApp e BlueJeans“.
Indice degli argomenti
La vulnerabilità ad alta gravità nella libreria PjSip
Nel dettaglio le falle rilevate, tra cui quella critica nella libreria PjSip che la telefonia VoIP e altri noti prodotti usano, sono cinque. Secondo il CSIRT, la vulnerabilità nella libreria PjSip ha un impatto medio/giallo (63,94/100).
“Le vulnerabilità, nello specifico”, continua Paganini, “potrebbero consentire ad un attaccante di:
- eseguire codice malevolo sul sistema che esegue un’applicazione che utilizza la libreria PJSIP;
- o di causare l’indisponibilità dell’applicazione (attacco DoS)”.
Cos’è la libreria PjSip
“PJSIP”, spiega Rosita Galiandro, Responsabile Osservatorio Exprivia sulla cyber security, “è un gruppo di librerie open source per gestire comunicazioni multimediali ed è utilizzata nell’implementazione di protocolli standard come i protocolli SIP, SDP, RTP, STUN, e ICE”.
Prosegue l’esperta: “Fornisce un servizio API che supporta funzionalità audio, video e di instant messaging che possono essere utilizzate in
piattaforme di comunicazione come telefoni VoIP e applicazioni per conferenze”.
“In particolare, PJSIP contiene una libreria denominata PJSUA con API per applicazioni SIP. In questa libreria sono state individuate le seguenti vulnerabilità che consentono ad un attaccante l’esecuzione arbitraria di codice sul sistema target o un attacco Denial of Service (DoS)”.
Perché è una falla ad alta gravità
Inoltre, la vulnerabilità è ad alta gravità perché la libreria open source PjSip è ubiqua in quanto è una componente di comunicazione multimediale. La usano i toolkit Asterisk PBX che si trova in un elevato numero di implementazioni VoIP.
PjSip è una libreria open source integrata nel protocollo SIP, una suite scritta in C che supporta:
- audio;
- video;
- funzionalità di instant messaging.
Tutte le popolari piattaforme di comunicazioni come WhatsApp e BlueJeans utilizzano la libreria PjSip. Oltre ad Asterisk, usata dal sistema di switching private branch exchange (PBX) per le reti VoIP.
Ma vediamo le falle nel dettaglio, con l’aiuto di Rosita Galiandro.
La falla CVE-2021-43299
“La vulnerabilità CVE-2021-43299 (valutata 8,1 su 10 (scala CVSS) – gravità alta)”, sottolinea Galiandro,” è presente in pjsua_player_create che crea un riproduttore di file e lo aggiunge automaticamente al bridge per conferenza. Questa funzione contiene una vulnerabilità stack overflow. Nel dettaglio, la funzione filename-
>ptr viene copiata nel path senza verificare che filename->slen abbia una dimensione massima del path assegnato, che è identificato da PJ_MAXPATH<c/ode> (260). Pertanto, il passaggio di un nome file più lungo di 260 caratteri causerà uno stack overflow”.
Le vulnerabilità CVE-2021-43300 e CVE-2021-43302
Continua Galiandro: “Le vulnerabilità CVE-2021-43300 (valutata 8,1 su 10 (scala CVSS) – gravità: alta) e CVE-2021-43302 (CVE-2021-43302 valutata 5,9 su 10 (scala CVSS) – gravità media) sono presenti in pjsua_recorder_create, incaricato di creare un file recorder e di connettere automaticamente questo registratore al bridge per conferenza, causando uno stack buffer overflow“.
Le altre falle
“In CVE-2021-43300“, prosegue Galiandro, “filename->ptr viene copiato con memcpy nella variabile dello stack del path senza verificare che filename->slen abbia al massimo la dimensione assegnata al path, che è PJ_MAXPATH (260).
Mentre in CVE-2021-43302, pjsua_recorder_create non verifica se la lunghezza del nome del file è almeno 4. Se il nome del file è inferiore a 4, pj_stricmp2 causerà un “out-of-bounds read” durante il confronto delle stringhe.
CVE-2021-43301 (valutata 8,1 su 10 (scala CVSS) – gravità alta) invece è una vulnerabilità che causa stack overflow e che riguarda pjsua_playlist_create. Esso crea una porta multimediale di una playlist di file e aggiunge automaticamente la porta al bridge per conferenza. All'avvio, pjsua_playlist_create richiama pjmedia_wav_playlist_create con l'argomento file_names assegnato come file_list.
La funzione copia ogni nome del file da file_list a filename senza verificare se la sua lunghezza sia al massimo PJ_MAXPATH (260). Se la lunghezza del nome file è maggiore, anche in questo caso viene creato
uno stack buffer overflow”.
CVE-2021-43303
Infine, conclude Galiandro: “CVE-2021-43303 (valutata 5,9 su 10 (scala CVSS) – gravità media) riguarda una vulnerabilità di buffer overflow in pjsua_call_dump, una funzione che scarica le statistiche delle chiamate in un determinato
buffer.
La funzione utilizza tmp per memorizzare temporaneamente le statistiche e quindi copiarle nel buffer degli argomenti senza convalidare che maxlen sia al massimo len. Ciò può causare un buffer overflow se la
capacità del parametro buffer specificato sia inferiore a len.
Pertanto, il corretto sfruttamento di questa vulnerabilità può comportare la completa compromissione del sistema vulnerabile”.
A rischio stack buffer overflow
“I buffer usati nel PjSip hanno dimensioni limitate, in particolare quelli allocati negli stack o forniti dalle applicazioni, comunque in diversi siti, non controlliamo se l’uso può eccedere le dimensioni”, ha spiegato Sauw Ming, lo sviluppatore di PjSip, nell’advisory postato un mese fa su GitHub: si tratta di uno scenario che potrebbe condurre a buffer overflow.
Come proteggersi
“Per la correzione di queste vulnerabilità si richiede, il prima possibile,”, conclude Rosita Galiandro, “l'aggiornamento di PJSIP alla versione 2.12“.
La patch è urgente proprio per l’ubiquità della vulnerabilità nella libreria open source PjSip e per il rischio di esecuzione di codice e attacchi DoS (Denial of Service). Il problema è che “come per tutte le falle individuate in librerie open source”, evidenzia Paganini, “è spesso complesso fare un assessment di tutte le applicazioni che ne fanno uso”.
Inoltre, mette in guardia Paganini: “spesso gli sviluppatori di applicazioni che utilizzano tali librerie potrebbero tardare nell’aggiornare in codice in cui sono presenti le falle”.
“Maggiore è il ritardo nell’applicare gli aggiornamenti che risolvono le vulnerabilità”, conclude Paganini, “più a lungo gli utenti delle applicazioni che utilizzano le librerie vulnerabilità potrebbero essere esposti ad attacchi”.