Pesquisadores descobriram uma grave vulnerabilidade de corrupção de memória dentro de um utilitário de registro em nuvem usado em importantes plataformas de nuvem.
O serviço, Fluent Bit, é uma ferramenta de código aberto para coletar, processar e encaminhar logs e outros tipos de dados de aplicativos. É um dos softwares mais populares por aí, com mais de 3 bilhões de downloads até 2022, e cerca de 10 milhões de implantações a cada dia que passa. É utilizado por importantes organizações como VMware, Cisco, Adobe, Walmart e LinkedIn, e quase todos os principais provedores de serviços em nuvem, incluindo AWS, Microsoft e Google Cloud.
O problema com o Fluent Bit, apelidado de “Linguistic Lumberjack” em um novo relatório da Tenable, está na forma como o servidor HTTP embutido do serviço analisa solicitações de rastreamento. Manipulado de uma forma ou de outra, pode causar negação de serviço (DoS), vazamento de dados ou execução de código remoto (RCE) em um ambiente de nuvem.
“Todos se empolgam com uma vulnerabilidade no Azure, AWS, GCP, mas ninguém realmente está olhando para as tecnologias que compõem todos esses principais serviços em nuvem – peças comuns e essenciais de software que agora afetam todos os principais provedores de nuvem”, diz Jimi Sebree, engenheiro de pesquisa sênior da Tenable. “É preciso procurar por bombas de segurança de aplicativos e por componentes dos serviços, não apenas pelos serviços em si”.
O efeito Linguistic Lumberjack
Os pesquisadores da Tenable inicialmente investigavam um problema de segurança completamente separado em um serviço de nuvem não divulgado quando perceberam algo inesperado. De onde estavam, parecia que conseguiam acessar uma ampla gama de métricas internas e pontos de log do provedor de serviços em nuvem (CSP). Entre esses estavam instâncias do Fluent Bit.
Esse vazamento de dados inter-inquilino veio de endpoints na interface de programação de aplicativos (API) de monitoramento do Fluent Bit, projetada para permitir que os usuários consultem e monitorem seus dados internos. Depois de alguns testes, porém, um pouco de vazamento de dados acabou sendo apenas a introdução a um problema mais profundo.
Para um endpoint específico – /api/v1/traces – os tipos de dados passados como nomes de entrada não eram validados corretamente antes de serem analisados pelo programa. Assim, passando valores não string, um atacante poderia causar todos os tipos de problemas de corrupção de memória no Fluent Bit. Os pesquisadores tentaram uma variedade de valores de inteiros positivos e negativos, em particular, para causar com sucesso erros nos quais o serviço falharia e vazaria dados potencialmente sensíveis.
Os atacantes também poderiam potencialmente usar o mesmo truque para obter capacidades de RCE em um ambiente específico. No entanto, a Tenable observou que desenvolver tal exploit exigiria um bom esforço, sendo personalizado para o sistema operacional e arquitetura específicos do alvo.
O que fazer a respeito
O bug existe nas versões do Fluent Bit 2.0.7 a 3.0.3. Ele está sendo rastreado sob o CVE-2024-4323, e vários sites o classificaram com pontuações CVSS “críticas” acima de 9,5 em 10. Depois de relatado em 30 de abril, os mantenedores do Fluent Bit atualizaram o serviço para validar corretamente os tipos de dados no campo de entrada problemático. A correção foi aplicada ao branch principal do projeto no GitHub em 15 de maio.
Organizações com o Fluent Bit implantado em sua própria infraestrutura e ambientes são aconselhadas a atualizar o mais rapidamente possível. Alternativamente, a Tenable sugere que os administradores revisem quaisquer configurações relevantes para a API de monitoramento do Fluent Bit para garantir que apenas usuários e serviços autorizados possam consultá-la – ou até mesmo nenhum usuário ou serviço.