For the English version of this alert, click here.
Allele Security Alert
ASA-2019-00422
Identificador(es)
ASA-2019-00422, CVE-2019-13161, AST-2019-003
Título
Crash remoto no driver do canal chan_sip
Fabricante(s)
Digium, Inc
Produto(s)
Certified Asterisk
Asterisk Open Source
Versão(ões) afetada(s)
Certified Asterisk todos os lançamentos da versão 13.21
Asterisk Open Source todos os lançamentos da versão 13.x
Asterisk Open Source todos os lançamentos da versão 15.x
Asterisk Open Source todos os lançamentos da versão 16.x
Versão(ões) corrigida(s)
Certified Asterisk versão 13.21-cert4
Asterisk Open Source versão 13.27.1
Asterisk Open Source versão 15.7.3
Asterisk Open Source versão 16.4.1
Prova de conceito
Sim
Descrição
Quando o envio de fax T.38 é feito no Asterisk, um reinvite T.38 pode ser enviado para um terminal para alterná-lo para T.38. Se o endpoint responder com uma resposta SDP formatada incorretamente, incluindo um fluxo T.38 UDPTL e um fluxo de áudio ou vídeo contendo apenas codecs não permitidos no peer SIP ou usuário, ocorrerá uma falha. O código incorretamente pressupõe que haverá pelo menos um codec comum quando T.38 também está na resposta do SDP.
Isso requer que o Asterisk inicie um reinvite T.38, que é feito apenas ao executar a aplicação dialplan ReceiveFax ou executar a passagem T.38, em que um endpoint remoto solicitou T.38.
Detalhes técnicos
Os gateways baseados no Asterisk-13 sofreram segfaults ocasionais, e inspecionando com o GDB seus coredumps, o autor concluiu que eles são causados por um caso muito específico em process_sdp() de chan_sip.c:
- Asterisk foi configurado com o preferred_codec_only para o peer relevante, e a lista, possivelmente restritiva, dos codecs
- o peer SIP inicia uma sessão válida através do Asterisk (chan_sip) como um B2BUA
- Asterisk emite um T.38 reINVITE (por exemplo, com o aplicativo ReceiveFAX, mesmo que não seja o nosso caso)
- o SIP UA (UAS, neste caso) responde com um SDP “quebrado” com duas m-lines, uma para um codec de áudio não incluído na lista permitida do peer SIP e outra com a image/t38
Tal SDP é quebrado porque um SIP UA não tem permissão para responder com múltiplas m-lines sempre que receber apenas uma m-line.
Créditos
Francesco Castellano
Referência(s)
AST-2019-003https://downloads.asterisk.org/pub/security/AST-2019-003.html
Broken SDP can cause a segfault in a T.38 reINVITE
https://issues.asterisk.org/jira/browse/ASTERISK-28465
crash-t38-broken-answer-with-empty-jointcaps.xml
https://issues.asterisk.org/jira/secure/attachment/58426/crash-t38-broken-answer-with-empty-jointcaps.xml
CVE-2019-13161
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-13161
CVE-2019-13161
https://nvd.nist.gov/vuln/detail/CVE-2019-13161
Se encontrou algum erro neste alerta ou deseja uma análise compreensiva, entre em contato.
Última modificação: 23 setembro 2019