FERRAMENTAS LINUX: RLSA-2026:34155 – rrdtool Security Update no Rocky Linux 8

domingo, 5 de julho de 2026

RLSA-2026:34155 – rrdtool Security Update no Rocky Linux 8

 


 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:

bash
$ rpm -q rrdtool
rrdtool-1.7.0-16.el8.x86_64
bash
$ 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:

bash
$ sudo dnf update rrdtool

Saída esperada (trecho):

text
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:

bash
$ 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:

bash
$ 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:

bash
$ rpm -q rrdtool
rrdtool-1.7.0-17.el8_10.x86_64

bash
$ 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:

bash
$ 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:

bash
$ 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:

bash
$ sudo systemctl restart rrdcached

Verifique o log para garantir que não houve falhas:

bash
$ 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:

bash
$ 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:

bash
$ for i in {1..10}; do
    rrdtool update test.rrd N:$((RANDOM % 100))
    sleep 1
  done

Gere um gráfico para validação visual:

bash
$ 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:

yaml
- 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.


Segurança em Servidores Linux Ataque e Defesa: (anúncio) ->  https://link.amazon/B0bDk5BZ7

Eu ganho uma comissão quando você faz uma compra.


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:

text
$ 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:

  1. bash
    $ sudo journalctl -u rrdcached -n 50 --no-pager

2. Confirme se o diretório de cache existe e tem permissões adequadas:

  1. bash
    $ ls -la /var/lib/rrdcached/

3.Tente iniciar o daemon em modo foreground para depuração:

  1. bash
    $ sudo rrdcached -l /var/lib/rrdcached/rrdcached.sock -b /var/lib/rrdcached -F

4. Corrija permissões ou caminhos conforme necessário e reinicie:

  1. bash
    $ 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:

bash
$ 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:

bash
$ 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