Divulgação do impacto de um bug de loop infinito na dependência do miniupnp no Bitcoin Core, cuja correção foi lançada em 14 de setembro de 2021 no Bitcoin Core versão v22.0.
Esta questão é considerada Baixo gravidade.
Detalhes
Miniupnp, a biblioteca UPnP usada pelo Bitcoin Core, aguardaria a descoberta enquanto recebesse dados aleatórios de um dispositivo na rede. Além disso, alocaria memória para cada nova informação do dispositivo. Um invasor na rede local pode fingir ser um dispositivo UPnP e continuar enviando respostas M-SEARCH inchadas para o nó Bitcoin Core até ficar sem memória.
Somente usuários executando com o -miniupnp
opção teria sido afetada por esse bug, pois o Miniupnp está desativado por padrão.
Atribuição
O crédito vai para Ronald Huveneers por relatar o bug de loop infinito para o projeto miniupnp, e para Michael Ford (Fanquake) pelo relatório para o projeto Bitcoin Core junto com uma exploração PoC para acionar um OOM e uma solicitação pull para eliminar a dependência (contendo a correção).
Linha do tempo
- 17/09/2020 – Relatório inicial de bug de loop infinito para miniupnp por Ronald Huveneers
- 13/10/2020 – Relatório inicial enviado para security@bitcoincore.org por Michael Ford
- 23/03/2021 – A correção foi mesclada (https://github.com/bitcoin/bitcoin/pull/20421)
- 13/09/2021 – v22.0 é lançada
- 31-07-2024 – Divulgação pública