Vulnerabilidades críticas no SQLite3 (CVE-2026-11822 e CVE-2026-11824) afetam sistemas SUSE. Aprenda a verificar, corrigir com scripts automatizados e implementar mitigações alternativas. Guia completo para administradores.
O Que Aconteceu?
Detalhe Técnico das Vulnerabilidades
sqlite3 --version
Verifique o pacote instalado no SUSE
zypper info sqlite3 | grep Version
rpm -q sqlite3
A vulnerabilidade só é explorável se a extensão FTS5 estiver ativa. Para verificar:
sqlite3 :memory: "SELECT * FROM sqlite_master WHERE type='table' AND sql LIKE '%fts5%';"
Se nenhum resultado for retornado, FTS5 não está em uso — mas atualizar ainda é fortemente recomendado, pois outros aplicativos podem ativá-lo dinamicamente.
Verifique a assinatura do pacote (opcional, mas recomendado)
rpm -K sqlite3-*.rpm
Script de Automação para Aplicar a Correção
Salve o script abaixo como fix-sqlite3.sh e execute com privilégios de root:
#!/bin/bash # fix-sqlite3.sh - Script para atualizar SQLite3 no SUSE # Compatível com SUSE Linux Enterprise e openSUSE set -e echo "=== SCRIPT DE CORREÇÃO SQLITE3 ===" echo "Data: $(date)" echo "" # Verifica se está rodando como root if [ "$EUID" -ne 0 ]; then echo "ERRO: Este script precisa ser executado como root (sudo)" exit 1 fi # Obtém a versão atual CURRENT_VERSION=$(sqlite3 --version 2>/dev/null | head -1 || echo "não instalado") echo "Versão atual do SQLite3: $CURRENT_VERSION" # Verifica se já está na versão corrigida if [[ "$CURRENT_VERSION" == "3.53.2"* ]] || [[ "$CURRENT_VERSION" == "3.54"* ]] || [[ "$CURRENT_VERSION" > "3.53.2" ]]; then echo "✅ SQLite3 já está na versão corrigida (>= 3.53.2). Nada a fazer." exit 0 fi echo "⚠️ Sistema VULNERÁVEL. Iniciando atualização..." # Atualiza os repositórios echo "Atualizando repositórios..." zypper refresh # Aplica o patch de segurança específico echo "Aplicando patch de segurança SUSE-SU-2026:22134-1..." zypper patch --cve=CVE-2026-11822 --cve=CVE-2026-11824 # Alternativa: atualizar todo o pacote sqlite3 # zypper update sqlite3 # Verifica a nova versão NEW_VERSION=$(sqlite3 --version 2>/dev/null | head -1) echo "" echo "=== VERIFICAÇÃO PÓS-ATUALIZAÇÃO ===" echo "Nova versão do SQLite3: $NEW_VERSION" if [[ "$NEW_VERSION" == "3.53.2"* ]] || [[ "$NEW_VERSION" > "3.53.2" ]]; then echo "✅ CORREÇÃO APLICADA COM SUCESSO!" else echo "❌ ATENÇÃO: A versão parece não ter sido atualizada corretamente." echo " Execute manualmente: zypper update sqlite3" fi # Reinicia serviços que dependem do SQLite (personalize conforme necessário) echo "" echo "Serviços que podem precisar de reinicialização:" systemctl list-units --all | grep -i sqlite || echo " (Nenhum serviço SQLite encontrado)" echo "" echo "=== SCRIPT CONCLUÍDO ==="
Como executar:
chmod +x fix-sqlite3.sh sudo ./fix-sqlite3.sh
Para SUSE Linux Enterprise Server (SLES) com assinatura
SUSEConnect --product sle-module-server-applications/15.4/x86_64 zypper refresh zypper install --from SLE-Module-Server-Applications sqlite3
1. Baixe o pacote atualizado em uma máquina com acesso:
https://download.suse.com/
2. Transfira o arquivo .rpm para o servidor.
3. Instale localmente:
rpm -Uvh sqlite3-*.rpm
📗 Recomendação de Leitura
Segurança em servidores Linux: Ataque e Defesa (anúncio) -> https://amzn.to/4aDuulu
Se você prefere estudar em português e quer aprender a "pensar como um hacker" para se antecipar a invasões, essa é a pedida! O livro ensina a usar as ferramentas prediletas dos invasores (como Nmap e Netcat) a seu favor, blindando seus sistemas.
Eu ganho uma comissão quando você faz uma compra.
Se você não pode reiniciar serviços ou aplicar a atualização imediatamente, estas medidas reduzem significativamente o risco:
Desative a extensão FTS5 (se não for essencial)
Compile ou recompile o SQLite sem suporte a FTS5:
# Configure o SQLite sem FTS5 ./configure --disable-fts5 make make install
Atenção: Isso quebrará aplicações que dependem de buscas full-text via FTS5.
Restrinja acesso a bancos de dados não confiáveis
Configure AppArmor (SUSE) para limitar quais processos podem acessar arquivos .db:
# /etc/apparmor.d/usr.bin.mysql (exemplo para MySQL/MariaDB)
/usr/sbin/mysqld {
# ... regras existentes ...
deny /path/to/untrusted/*.db rw,
}
Recarregue o AppArmor:
aa-complain /etc/apparmor.d/usr.sbin.mysqld # ou systemctl restart apparmor
Use iptables para limitar acesso à aplicação
Se a aplicação que usa SQLite é acessível via rede, restrinja o acesso:
# Bloqueia acesso externo à porta da aplicação (exemplo: porta 8080) iptables -A INPUT -p tcp --dport 8080 -s 192.168.1.0/24 -j ACCEPT iptables -A INPUT -p tcp --dport 8080 -j DROP
Valide entradas de usuário antes do processamento FTS5
Em aplicações que usam consultas FTS5, sanitize rigorosamente as entradas:
# Exemplo em Python import sqlite3 def safe_fts5_search(conn, user_input): # NUNCA interpole diretamente: conn.execute(f"SELECT * FROM table WHERE col MATCH '{user_input}'") # Use placeholders ou escape conn.execute("SELECT * FROM table WHERE col MATCH ?", (user_input,))
Monitore logs em busca de exploração
# Detecta tentativas de exploração via padrões suspeitos tail -f /var/log/messages | grep -i "sqlite\|fts5\|corruption"
SQLite é a biblioteca SQL mais utilizada no mundo — está em bilhões de dispositivos, desde smartphones Android/iOS até navegadores, sistemas embarcados e servidores Linux.
Uma vulnerabilidade no FTS5 pode ser explorada por qualquer aplicação que processe bancos de dados SQLite fornecidos por terceiros, tornando a correção urgente para qualquer ambiente que aceite dados externos.
Conclusão
As vulnerabilidades CVE-2026-11822 e CVE-2026-11824 no SQLite3 representam um risco real para qualquer sistema SUSE que utilize a extensão FTS5. A correção é simples:
1. Atualize para SQLite 3.53.2 usando o script fornecido ou o comando zypper patch
2. Se não puder atualizar, desative FTS5 ou restrinja acesso a bancos não confiáveis
3. Mantenha-se informado sobre novas vulnerabilidades — a segurança é um processo contínuo
A atualização leva minutos e pode evitar um incidente grave. Não adie.

Nenhum comentário:
Postar um comentário