Atualize rrdtool no Rocky Linux 8 para corrigir falha de estouro de pilha no rrdcached. Guia técnico com comandos, verificação pós-atualização e boas práticas para ambientes de monitoramento.
O RLSA-2026:34155 é um advisory de segurança de severidade Moderate para o pacote rrdtool no Rocky Linux 8. A vulnerabilidade corrigida reside no componente rrdcached — o daemon de cache do RRDtool — e consiste em um estouro de pilha (stack-based buffer overflow) que pode ser explorado por um atacante local com acesso ao socket UNIX do daemon.
Em termos práticos, um invasor com permissão para escrever no socket do rrdcached pode enviar uma requisição CREATE com tamanho excessivo, causando negação de serviço (crash do daemon) ou, em cenários mais graves, execução arbitrária de código.
Este guia aborda o processo de atualização, verificação de integridade e validação operacional do rrdtool após a aplicação do patch, com foco em ambientes de monitoramento que dependem do RRDtool para coleta e visualização de métricas (Cacti, Zabbix, soluções personalizadas com rrdtool e python3-rrdtool)
⚠️ Importante: A atualização afeta exclusivamente o Rocky Linux 8. Pacotes para outras versões ou distribuições não são contemplados por este advisory.
Passo a Passo
1. Identificação da Versão Atual
Antes de qualquer alteração, documente a versão instalada:
$ rpm -q rrdtool rrdtool-1.7.0-16.el8.x86_64
$ rrdtool --version RRDtool 1.7.0 (Copyright 1997-2020 by Tobias Oetiker)
A versão corrigida é 1.7.0-17.el8_10. O sufixo _10 indica que o pacote foi reconstruído para o repositório el8_10 (Rocky Linux 8.10).
Por que isso importa? Saber a versão atual permite planejar o reboot de serviços dependentes e validar se a atualização foi aplicada corretamente.
Atualização do Pacote rrdtool
A atualização pode ser realizada com o dnf:
$ sudo dnf update rrdtool
Saída esperada (trecho):
Dependencies resolved. ================================================================================ Package Architecture Version Repository Size ================================================================================ Upgrading: rrdtool x86_64 1.7.0-17.el8_10 baseos 1.4 M rrdtool-devel x86_64 1.7.0-17.el8_10 baseos 177 k python3-rrdtool x86_64 1.7.0-17.el8_10 baseos 114 k Transaction Summary ================================================================================ Upgrade 3 Packages Total download size: 1.7 M Is this ok [y/N]: y
Para uma atualização silenciosa em ambientes automatizados:
$ sudo dnf update -y rrdtool
Por que usar dnf update e não dnf upgrade ? O update atualiza apenas os pacotes especificados, enquanto upgrade atualiza todo o sistema. Em ambientes de produção, é recomendável ser cirúrgico para evitar surpresas.
Atualização de Dependências e Pacotes Adicionais
O advisory lista diversos RPMs atualizados, incluindo:
Se você utiliza bindings para Tcl ou Python, atualize-os juntamente com o pacote principal:
$ sudo dnf update rrdtool rrdtool-devel python3-rrdtool rrdtool-tcl
Por que isso é relevante? A vulnerabilidade está no rrdcached, que pode ser invocado tanto pela CLI quanto por bindings. Atualizar apenas o binário principal sem os bindings pode deixar o ambiente inconsistente.
Verificação Pós-Atualização
Após a atualização, confirme a nova versão:
$ rpm -q rrdtool rrdtool-1.7.0-17.el8_10.x86_64
$ rrdtool --version RRDtool 1.7.0 (Copyright 1997-2020 by Tobias Oetiker)
A versão major permanece 1.7.0 — o que é esperado para um patch release. A mudança está no release number (-17.el8_10).
Verifique também a integridade dos binários:
$ rpm -V rrdtool
Se não houver saída, todos os arquivos estão íntegros. Qualquer saída indica modificações não esperadas.
Reinicialização do rrdcached (se aplicável)
Se o rrdcached estiver em execução, ele precisa ser reiniciado para carregar a nova versão:
$ systemctl status rrdcached ● rrdcached.service - LSB: Start rrdcached Loaded: loaded (/etc/rc.d/init.d/rrdcached; generated) Active: active (running) since ...
Reinicie o serviço:
$ sudo systemctl restart rrdcached
Verifique o log para garantir que não houve falhas:
$ sudo journalctl -u rrdcached -n 20 --no-pager
Por que reiniciar ? O rrdcached é um daemon que permanece em memória. Mesmo que o binário em disco seja substituído, o processo em execução ainda utiliza a versão antiga. Uma reinicialização é obrigatória para que o patch seja efetivo.
Validação Funcional do Ambiente de Monitoramento
Após a atualização, teste a criação e consulta de um RRD para garantir que a funcionalidade básica não foi comprometida:
$ rrdtool create test.rrd --start now-10m --step 60 \ DS:test:GAUGE:120:0:100 \ RRA:AVERAGE:0.5:1:10
Atualize com dados de exemplo:
$ for i in {1..10}; do rrdtool update test.rrd N:$((RANDOM % 100)) sleep 1 done
Gere um gráfico para validação visual:
$ rrdtool graph test.png --start now-10m --end now \ DEF:val=test.rrd:test:AVERAGE \ LINE1:val#FF0000:"Test"
Se o gráfico for gerado sem erros e o arquivo test.png for criado, o ambiente está funcional.
Automação com Ansible (Boas Práticas)
Em ambientes empresariais, a atualização deve ser orquestrada e monitorada. Exemplo de playbook Ansible:
- name: Apply rrdtool security update hosts: monitoring_servers become: yes tasks: - name: Update rrdtool package dnf: name: rrdtool state: latest register: result - name: Restart rrdcached if updated systemd: name: rrdcached state: restarted when: result.changed - name: Verify rrdtool version command: rpm -q rrdtool register: version_output changed_when: false - name: Log version debug: msg: "rrdtool version: {{ version_output.stdout }}"
Por que automatizar? A consistência entre ambientes (dev, staging, produção) reduz o risco de desalinhamento de versões e garante que todos os nós recebam o patch no mesmo ciclo.
📘 Indicação de Leitura
Esse livro é um guia prático e abrangente sobre a segurança do sistema operacional Linux como um todo. O livro ensina a pensar como um atacante para fortalecer a defesa do servidor, abordando tópicos fundamentais como:
- Ferramentas de rede: Nmap, Netcat, knockd.
- Monitoramento: de arquivos e sistemas de arquivos.
- Defesas: contra malware e ataques DDoS.
- Descoberta de vulnerabilidades: como invasores encontram pontos fracos.
Troubleshooting
Problema Comum: "Failed to start rrdcached.service"
Cenário: Após a atualização e reinicialização do rrdcached, o serviço falha ao iniciar.
Sintoma:
$ sudo systemctl status rrdcached ● rrdcached.service - LSB: Start rrdcached Loaded: loaded (/etc/rc.d/init.d/rrdcached; generated) Active: failed (Result: exit-code)
Causa provável: O arquivo de configuração do rrdcached (/etc/rrdcached.conf ou variáveis de ambiente) pode fazer referência a caminhos ou permissões que mudaram com a atualização.
Solução:
1. Verifique os logs detalhados:
$ sudo journalctl -u rrdcached -n 50 --no-pager
2. Confirme se o diretório de cache existe e tem permissões adequadas:
$ ls -la /var/lib/rrdcached/
3.Tente iniciar o daemon em modo foreground para depuração:
$ sudo rrdcached -l /var/lib/rrdcached/rrdcached.sock -b /var/lib/rrdcached -F
4. Corrija permissões ou caminhos conforme necessário e reinicie:
$ sudo systemctl start rrdcached
Armadilha Comum (e Como Evitá-la)
Iniciantes frequentemente executam dnf update -y rrdtool e esquecem de reiniciar o rrdcached.
O resultado ? O binário em disco está atualizado, mas o daemon em execução continua vulnerável. A verificação com rpm -q mostra a versão correta, dando uma falsa sensação de segurança.
Solução: Sempre inclua a reinicialização do rrdcached no procedimento:
$ sudo dnf update -y rrdtool && sudo systemctl restart rrdcached
Em ambientes com múltiplos serviços dependentes (ex: Cacti com spine/poller), considere um janela de manutenção e reinicie todos os serviços que utilizam a biblioteca rrdtool:
$ sudo systemctl restart httpd # se usar Cacti via web $ sudo systemctl restart cacti-poller
Conclusão
O RLSA-2026:34155 corrige uma vulnerabilidade de estouro de pilha no rrdcached que pode comprometer a disponibilidade e a segurança de sistemas de monitoramento baseados em RRDtool. A atualização para rrdtool-1.7.0-17.el8_10 é direta, mas exige atenção especial à reinicialização do daemon e à validação funcional do ambiente.
Checklist pós-atualização:
- rpm -q rrdtool → versão 1.7.0-17.el8_10
- systemctl status rrdcached → active (running)
- Teste de criação/consulta de RRD → sucesso
- Logs do sistema sem erros relacionados ao rrdtool
- Serviços dependentes (Cacti, Zabbix, etc.) operacionais
A atualização é recomendada para todos os sistemas Rocky Linux 8 que utilizam rrdtool, especialmente aqueles expostos a usuários locais com acesso ao socket do rrdcached.

Nenhum comentário:
Postar um comentário