Lançadas versões corrigidas da distribuição OpenWrt e , nas quais foi corrigida (CVE-2020-7982) no gerenciador de pacotes , permitindo a realização de um ataque MITM e a substituição do conteúdo do pacote baixado do repositório. Devido a um erro na verificação das somas de verificação, o atacante pode criar condições nas quais as somas SHA-256 presentes no índice de pacotes assinado digitalmente serão ignoradas, permitindo contornar os mecanismos de verificação da integridade dos recursos ipk baixados.
O problema se manifesta desde fevereiro de 2017, após de um código para ignorar os espaços iniciais que precedem a soma de verificação. Devido a um erro ao ignorar os espaços, o ponteiro na posição da string não se deslocava, e o ciclo de decodificação da sequência hexadecimal SHA-256 retornava imediatamente e fornecia uma soma de verificação de comprimento zero.
Como o gerenciador de pacotes opkg no OpenWrt é executado com privilégios de root, em caso de ataque MITM, o invasor tem a capacidade de modificar silenciosamente o pacote ipk baixado do repositório durante a execução do comando ‘opkg install’ pelo usuário e executar seu código com privilégios de root através da adição de seus próprios scripts manipuladores ao pacote, que são chamados durante a instalação. Para explorar a vulnerabilidade, o atacante também deve substituir o índice de pacotes correto e assinado (por exemplo, o fornecido por downloads.openwrt.org). O tamanho do pacote modificado deve corresponder ao tamanho original especificado no índice.
Em situações onde é necessário evitar a atualização completa do firmware, é possível atualizar apenas o gerenciador de pacotes opkg, executando os seguintes comandos:
cd /tmp
opkg update
opkg download opkg
zcat ./opkg-lists/openwrt_base | grep -A10 ‘Package: opkg’ | grep SHA256sum
sha256sum ./opkg_2020-01-25-c09fe209-1_*.ipk
Em seguida, deve-se comparar as somas de verificação apresentadas e, se coincidirem, executar:
opkg install ./opkg_2020-01-25-c09fe209-1_*.ipk
Nas novas versões, também foi corrigida mais uma na biblioteca , que pode levar a uma sobrecarga de buffer ao processar na função dados binários serializados especificamente formatados ou dados no formato JSON. A biblioteca é utilizada em componentes da distribuição, como netifd, procd, ubus, rpcd e uhttpd, assim como no pacote (Attended sysUpgrade CLI). O estouro de buffer ocorre ao transmitir atributos numéricos grandes com tipo "double" em blocos blob. Para verificar a vulnerabilidade do sistema, execute o comando:
$ ubus call luci getFeatures \
'{ "banik": 00192200197600198000198100200400.1922 }'
Além de eliminar vulnerabilidades e corrigir erros acumulados na versão OpenWrt 19.07.1, a versão do núcleo Linux foi atualizada (de 4.14.162 para 4.14.167), problemas de desempenho ao usar frequências de 5GHz foram resolvidos, e a compatibilidade com dispositivos Ubiquiti Rocket M Titanium, Netgear WN2500RP v1,
Zyxel NSA325, Netgear WNR3500 V2, Archer C6 v2, Ubiquiti EdgeRouter-X, Archer C20 v4, Archer C50 v4, Archer MR200, TL-WA801ND v5, HiWiFi HC5962, Xiaomi Mi Router 3 Pro e Netgear R6350.
Fonte: opennet.ru
