
# Playbook Ansible para deteção e remediação do CVE-2026-31431 (Copy Fail) - vulnerabilidade de escalonamento local de privilégios no kernel Linux
Cópia Falha Deteção e Remediação
Uma suíte de role e playbook Ansible para detectar e remediar a CVE-2026-31431 (Copy Fail), uma vulnerabilidade crítica de escalonamento de privilégios local no módulo algif_aead do kernel Linux.
🔗 GitHub: https://github.com/parmstro/cfDr
O nome cfDr é um trocadilho com "Copy Fail Doctor" - seu remédio confiável para a CVE-2026-31431.
CVE-2026-31431 (CVSS 7.8) é uma falha lógica na interface de socket AEAD do kernel Linux (AF_ALG) descoberta em 2026. A vulnerabilidade permite que qualquer usuário local sem privilégios escale privilégios para root em segundos.
algif_aead (interface criptográfica AF_ALG)Versões do Kernel: Linux kernel >= 4.10 (lançado em 2017)
Distribuições Afetadas:
Nota: Qualquer distribuição Linux com kernel 4.10 ou mais recente é potencialmente vulnerável.
Esta vulnerabilidade é particularmente perigosa porque:
Uma vez que um atacante tenha qualquer forma de acesso local (SSH, web shell, escape de contêiner, etc.), ele pode:
Enquanto aguarda patches de kernel fornecidos pelos fornecedores, várias estratégias de mitigação estão disponíveis. cfDr implementa todas elas, com recomendações inteligentes baseadas na configuração do seu sistema.
Nem todas as remediações são iguais. Aqui está o que você precisa saber:
| Método | Root Pode Ignorar? | Cobertura | Suporte Enterprise Linux |
|---|---|---|---|
| Blacklist de Módulo | ✅ Sim (via insmod) | Impede carregamento via modprobe | Todas as versões |
| Política SELinux | ❌ NÃO (camada LSM) | Apenas domínios configurados | Todas as versões (padrão) |
| systemd seccomp | ❌ NÃO (filtro de syscall) | Apenas serviços configurados | Todas as versões |
| eBPF LSM | ❌ NÃO (camada LSM) | Em todo o sistema (se configurado) | RHEL 9+, Fedora 34+ |
Recomendação padrão do cfDr: Flag 3 (Blacklist de Módulo + SELinux)
Isso fornece duas camadas de proteção independentes:``` ┌─────────────────────────────────────────────────┐ │ Layer 1: Module Blacklist │ │ • Prevents modprobe algif_aead │ │ • Persists across reboots │ │ • CAN be bypassed by malicious root (insmod) │ ├─────────────────────────────────────────────────┤ │ Layer 2: SELinux Policy │ │ • Blocks AF_ALG socket() at syscall level │ │ • Works even if module is loaded │ │ • CANNOT be bypassed from userspace │ │ • Covers user_t, unconfined_t (majority cases) │ └─────────────────────────────────────────────────┘
Result: If either layer fails, the other still protects
### Por Que a Lista Negra de Módulos Sozinha Não É Suficiente
Um atacante determinado com acesso root pode contornar a lista negra de módulos:```bash
# Module blacklist DOES NOT prevent:
insmod /lib/modules/$(uname -r)/kernel/crypto/algif_aead.ko.xz
No entanto, isto é aceitável porque:
Para proteção completa e não contornável, você precisa de:
Lista negra de módulos + pelo menos um dos seguintes:
cfDr usa flags bitwise para ativar múltiplas mitigações:
| Valor da Flag | Mitigações Ativadas | Caso de Uso |
|---|---|---|
| 1 | Apenas lista negra de módulos | Proteção mínima, sistemas sem SELinux |
| 2 | Apenas SELinux | Ambientes somente com SELinux |
| 3 | Lista negra de módulos + SELinux | PADRÃO RECOMENDADO |
| 5 | Lista negra de módulos + seccomp | Não-SELinux com endurecimento de serviços |
| 7 | Lista negra de módulos + SELinux + seccomp | Proteção aprimorada |
| 15 | Todas as mitigações | Proteção máxima (apenas RHEL 9+) |
Calcular flags: 1 (lista negra) + 2 (SELinux) + 4 (seccomp) + 8 (eBPF) = soma
Proteção SELinux:
user_t, unconfined_t, httpd_t, postgresql_t, mysqld_tuser_t e unconfined_t cobrem a grande maioria dos cenários de ataqueProteção seccomp do systemd:
httpd, nginx, postgresql, mariadb, redis, memcachedProteção eBPF LSM:
O cfDr realiza uma avaliação abrangente em múltiplas dimensões:
uname -r
- Determina se a versão do kernel >= 4.10 (intervalo vulnerável)
- Identifica a versão do kernel e a distribuição
#### 2. Verificação de Disponibilidade do Módulo```bash
modinfo algif_aead
algif_aead existe no kernellsmod | grep algif_aead
- Determina se o módulo está atualmente carregado
- **Crítico**: Módulo carregado = ativamente explorável
#### 4. Detecção Ativa de Socket```bash
lsof -U | grep AF_ALG
Lista Negra de Módulos:```bash grep -E "blacklist algif_aead|install algif_aead" /etc/modprobe.d/*.conf
**Política SELinux**:```bash
semodule -l | grep cve_2026_31431_af_alg_deny
systemd seccomp:```bash systemctl show | grep RestrictAddressFamilies
#### 6. Determinação de Status Categórico
O cfDr categoriza cada host em um destes estados:
| Status | Condição | Ação Necessária |
|--------|-----------|-----------------|
| **VULNERÁVEL - Módulo carregado** | Kernel >= 4.10, módulo existe E carregado | **IMEDIATA** - Explorável ativamente |
| **VULNERÁVEL - Módulo existe** | Kernel >= 4.10, módulo existe, não carregado | **ALTA** - Pode ser carregado e explorado |
| **MITIGADO - Módulo na lista negra** | Lista negra detectada | **BAIXA** - Monitorar, aplicar camadas adicionais |
| **PROTEGIDO - Defesa em profundidade** | Lista negra + SELinux/seccomp/eBPF | **NENHUMA** - Totalmente protegido |
| **NÃO VULNERÁVEL - Kernel antigo** | Kernel < 4.10 | **NENHUMA** - Anterior à vulnerabilidade |
| **NÃO VULNERÁVEL - Sem módulo** | Módulo algif_aead não presente no kernel | **NENHUMA** - Módulo não disponível |
### Saída da Avaliação
Cada host recebe:
1. **Saída no console**: Breve status de uma linha
2. **Arquivo detalhado**: `/root/cve-2026-31431-assessment-<hostname>.txt`
3. **Relatório JSON**: `/tmp/cve-2026-31431-<hostname>.json`
Exemplo de saída breve:```
webserver1.example.com: VULNERABLE - Module exists and can be loaded
dbserver2.example.com: PROTECTED - Defense-in-depth (Module Blacklist + SELinux)
appserver3.example.com: NOT VULNERABLE - Module not available
O cfDr é construído como uma role moderna do Ansible com múltiplos pontos de entrada de playbook:``` cfDr/ ├── roles/ │ └── cve_2026_31431/ # Main role │ ├── tasks/ │ │ ├── main.yml # Role orchestration │ │ ├── assessment.yml # Vulnerability detection │ │ ├── remediation_module_blacklist.yml │ │ ├── remediation_selinux.yml │ │ ├── remediation_seccomp.yml │ │ ├── remediation_ebpf.yml │ │ ├── reporting.yml # Status reporting │ │ └── inventory_update.yml # Inventory generation │ ├── templates/ # Config file templates │ ├── defaults/ # Default variables │ └── handlers/ # Service restarts, etc. ├── quickstart.yml # Simplest usage ├── sample_playbook.yml # Multiple examples └── cve_2026_31431_playbook.yml # Full-featured playbook
### Fluxo de Execução
#### Modo de Avaliação (padrão)```
1. Pre-flight checks
↓
2. Gather system facts
↓
3. Detect kernel version
↓
4. Check module availability
↓
5. Check current load status
↓
6. Check existing mitigations
↓
7. Determine vulnerability status
↓
8. Flag vulnerable hosts
↓
9. Generate reports
↓
10. Create summary
↓
11. [Optional] Generate inventory
apply_remediation=true)```1-8. [Same as Assessment Mode] ↓ 9. Apply Module Blacklist (if flag 1) • Unload module if loaded • Create blacklist config • Update initramfs/initrd • Verify blacklist works ↓ 10. Apply SELinux Policy (if flag 2) • Install policy packages • Compile policy module • Install policy • Verify policy active ↓ 11. Apply systemd seccomp (if flag 4) • Create drop-in files • Reload systemd • Restart services • Verify filters active ↓ 12. Apply eBPF LSM (if flag 8) • Compile eBPF program • Load into kernel • Verify program attached ↓ 13. Re-assess protection status ↓ 14. Generate reports ↓ 15. Create summary
### Detalhes da Remediação
#### Lista Negra de Módulos (Flag 1)
**O que faz**:
1. Descarrega o módulo `algif_aead` se estiver carregado no momento (`rmmod algif_aead`)
2. Cria `/etc/modprobe.d/blacklist-algif_aead-cve-2026-31431.conf`: ```
blacklist algif_aead
install algif_aead /bin/true
update-initramfs -udracut -fmodprobeProteção: Imediata, sem necessidade de reinicialização Persistência: Sobrevive a reinicializações e atualizações do kernel
O que faz:
policycoreutilspolicycoreutils-python-utilsselinux-policy-develcheckpolicysemodule -i cve_2026_31431_af_alg_deny.ppDomínios protegidos (padrão):
user_t - Processos de usuários comunsunconfined_t - Processos não confinadoshttpd_t - Servidor web Apachepostgresql_t - Banco de dados PostgreSQLmysqld_t - Banco de dados MySQL/MariaDBProteção: Bloqueia na camada LSM, não pode ser contornada Persistência: A política sobrevive a reinicializações
O que faz:
/etc/systemd/system/<service>.service.d/90-cve-2026-31431-block-af-alg.confRestrictAddressFamilies=~AF_ALGServiços protegidos (padrão):
httpd, nginx - Servidores webpostgresql, mariadb - Bancos de dadosredis, memcached - Servidores de cacheProteção: Bloqueia a criação de sockets no nível de chamadas de sistema por serviço Persistência: Sobrevive a reinicializações e atualizações de serviços
O que faz:
Requisitos:
CONFIG_BPF_LSM=yProteção: Política dinâmica e programável em todo o sistema Persistência: Requer serviço do sistema para recarregar na inicialização
O cfDr pode gerar arquivos de inventário prontos para uso contendo apenas hosts vulneráveis:
Arquivos gerados:``` inventory_output/ ├── vulnerable_hosts.yml # YAML inventory ├── vulnerable_hosts.ini # INI inventory ├── group_vars_vulnerable_hosts.yml # Group variables └── host_vars/ ├── host1.yml # Per-host details └── host2.yml
**O que está incluído**:
- Resultados da avaliação de vulnerabilidades
- Flags de mitigação recomendadas (calculadas por host)
- Detalhes do sistema (versão do kernel, status do SELinux)
- Configurações de remediação prontas para aplicar
**Recomendações inteligentes**:
- Flag 3 (Blacklist de Módulos + SELinux) se o SELinux estiver habilitado
- Flag 1 (somente Blacklist de Módulos) se o SELinux não estiver disponível
- Personalizável por host via `host_vars` gerados
---
## Impacto na Criptografia do Sistema
### Descoberta Crítica: A Criptografia Padrão do RHEL NÃO é Afetada
**Nível de Confiança**: ⭐⭐⭐⭐⭐ **ALTO** - Consulte o [Relatório de Validação IPsec/XFRM](https://github.com/parmstro/cfdr/blob/HEAD/docs/IPSEC_VALIDATION.md) para uma análise abrangente
**Boas notícias para implantações Enterprise Linux:** Com base em fontes autorizadas, incluindo [CERT-EU](https://cert.europa.eu/publications/security-advisories/2026-005/), [CloudLinux](https://blog.cloudlinux.com/cve-2026-31431-copy-fail-mitigation-and-patches) e [HPCsec](https://www.hpcsec.com/2026/04/30/advisory-cve-2026-31431-copy-fail-local-privilege-escalation-via-af-alg-algif_aead/), **as mitigações do cfDr têm impacto mínimo ou zero** na criptografia e nos serviços padrão do sistema RHEL.
### O Que NÃO é Afetado
Os seguintes sistemas criptográficos críticos do RHEL **não usam AF_ALG** e não são afetados pelas nossas remediações:
#### Serviços Principais do Sistema
| Serviço/Componente | Função | Status |
|------------------|----------|--------|
| **dm-crypt / LUKS** | Criptografia de disco completo | ✅ Não afetado |
| **IPsec / XFRM** | VPN e rede criptografada | ✅ Não afetado ([validado](https://github.com/parmstro/cfdr/blob/HEAD/docs/IPSEC_VALIDATION.md)) |
| **kTLS** | Implementação TLS do kernel | ✅ Não afetado |
| **SSH** | Conexões de shell seguro | ✅ Não afetado |
#### Bibliotecas Criptográficas
| Biblioteca | Uso | Status |
|---------|-------|--------|
| **OpenSSL** (padrão) | SSL/TLS, certificados, criptografia geral | ✅ Não afetado |
| **GnuTLS** (padrão) | Implementação TLS | ✅ Não afetado |
| **NSS** | Mozilla Network Security Services | ✅ Não afetado |
| **Keyring do kernel** | Gerenciamento de chaves do kernel | ✅ Não afetado |
#### Infraestrutura Crítica
- ✅ **SSL/TLS** - Toda a criptografia de servidores web não é afetada
- ✅ **HTTPS** - Tráfego web seguro não é afetado
- ✅ **Criptografia de e-mail** (S/MIME, PGP) - Não afetada
- ✅ **Operações de certificados** - Não afetadas
- ✅ **Criptografia de banco de dados** - Não afetada
- ✅ **Criptografia de backup** - Não afetada
### Por Que os Serviços Padrão Não Usam AF_ALG
Conforme documentado na [Documentação de Criptografia do Kernel Linux](https://www.kernel.org/doc/html/v4.11/crypto/userspace-if.html), **AF_ALG é uma interface de socket de userspace** para a criptografia do kernel introduzida no Linux 2.6.38. No entanto, a maioria dos serviços do sistema RHEL usa a API de criptografia do kernel **diretamente**, em vez de passar pela camada de socket AF_ALG.
De acordo com o [advisory de segurança do CERT-EU](https://cert.europa.eu/publications/security-advisories/2026-005/):
> "As compilações padrão de dm-crypt / LUKS, kTLS, IPsec, SSH e OpenSSL / GnuTLS não dependem de AF_ALG e não são afetadas pelas limitações do AF_ALG."
A arquitetura é a seguinte:```
┌─────────────────────────────────────────────┐
│ Userspace Applications │
├─────────────────────────────────────────────┤
│ Standard Crypto Libraries │
│ (OpenSSL, GnuTLS, NSS) │
│ │ │
│ └─────> In-Kernel Crypto API ──────────┐ │
│ (Direct access) │ │
├──────────────────────────────────────────┼──┤
│ AF_ALG Socket Interface (RARELY USED) │ │
│ │ │ │
│ └─────> In-Kernel Crypto API ──────────┘ │
├─────────────────────────────────────────────┤
│ Kernel Crypto Subsystem │
│ (AES, SHA, AEAD algorithms) │
└─────────────────────────────────────────────┘
Standard services bypass AF_ALG entirely
De acordo com a análise da R-fx Networks:
"Para a maioria dos ambientes HPC, isso não quebrará nada – AF_ALG é uma porta de entrada em userspace para a criptografia do kernel que quase ninguém realmente usa."
Apenas essas configurações extremamente raras podem ser afetadas:
NÃO é padrão no RHEL. O engine afalg deve ser explicitamente configurado:```bash
openssl engine afalg
**Caso de uso:** Offload de aceleração criptográfica por hardware
**Prevalência:** Extremamente raro em implantações padrão
**Impacto:** A aplicação recorre à criptografia por software
#### 2. Aplicações Personalizadas Usando libkcapi
**Programação direta de sockets AF_ALG** usando bibliotecas especializadas.
**Caso de uso:** Ferramentas de segurança especializadas ou aplicações criptográficas personalizadas
**Prevalência:** Quase inexistente em ambientes empresariais padrão
**Impacto:** Específico da aplicação, exigiria modificação de código
#### 3. Ferramentas de Offload Criptográfico por Hardware
**Ferramentas especializadas** que usam AF_ALG para aceleração por hardware.
**Caso de uso:** Computação de alto desempenho, aceleradores criptográficos por hardware
**Prevalência:** Apenas em ambientes especializados de alta segurança ou HPC
**Impacto:** Recorre à criptografia por software
### Posição Oficial da Red Hat
De acordo com o [Red Hat Bugzilla #2460538](https://bugzilla.redhat.com/show_bug.cgi?id=2460538):
- **CVE:** CVE-2026-31431
- **Severidade:** Alta (CVSS 7.8)
- **Status:** Corrigido no kernel 6.19.12+
- **Correção:** Reverte a otimização in-place de 2017 (commit 72548b093ee3)
- **Impacto:** "Não há benefício em operar in-place no algif_aead, pois a origem e o destino vêm de mapeamentos diferentes"
### Avaliação de Impacto por Sinalizador de Mitigação
| Sinalizador | Mitigações | Impacto em Serviços Padrão |
|------|------------|----------------------------|
| 1 | Blacklist de Módulo | ✅ Impacto zero - AF_ALG não é usado |
| 2 | Política SELinux | ✅ Impacto zero - Bloqueia syscall não utilizada |
| **3** | **Blacklist + SELinux** | ✅ **Impacto zero - RECOMENDADO** |
| 5 | Blacklist + seccomp | ✅ Impacto zero - Seguro por serviço |
| 7 | Blacklist + SELinux + seccomp | ✅ Impacto zero - Defesa em profundidade |
| 15 | Todas as mitigações | ✅ Impacto zero - Proteção máxima |
### Verificação Após a Remediação
Após aplicar as mitigações do cfDr, verifique se os serviços críticos continuam operando:```bash
# Test SSH connectivity
ssh localhost echo "SSH working"
# Test HTTPS (if web server running)
curl -k https://localhost
# Test LUKS encryption (if using encrypted volumes)
cryptsetup status /dev/mapper/luks-volume
# Test IPsec (if VPN configured)
ipsec status
# Test system services
systemctl status sshd
systemctl status httpd
systemctl status postgresql
# Check for any service failures
systemctl --failed
Resultado esperado: Todos os serviços continuam funcionando normalmente.
Diversas organizações autorizadas de segurança confirmam nossa avaliação:
CERT-EU (30 de abril de 2026):
"dm-crypt / LUKS, kTLS, IPsec, SSH e builds padrão de OpenSSL / GnuTLS não dependem de AF_ALG"
Sysdig (29 de abril de 2026):
Documenta que operações criptográficas padrão usam APIs no kernel, não sockets AF_ALG
R-fx Networks (2 de maio de 2026):
"Cargas de trabalho de hospedagem não usam AF_ALG legitimamente, tornando seguro desabilitá-lo como mitigação sem impactar serviços de produção"
HPCsec (30 de abril de 2026):
"Para a maioria dos ambientes HPC, isso não quebrará nada – AF_ALG é uma porta de entrada no espaço do usuário para a criptografia do kernel que quase nada realmente usa"
Para Ambientes Padrão RHEL/CentOS/Fedora:
Matriz de Decisão:
| Seu Ambiente | Recomendação | Motivo |
|---|---|---|
| Servidores RHEL padrão | Implante a Flag 3 agora | Zero impacto, proteção imediata |
| RHEL com criptografia personalizada | Audite o uso de AF_ALG primeiro | Extremamente improvável, mas verifique |
| Sistemas de desenvolvimento | Implante a Flag 3 agora | Igual à produção |
| Ambientes de alta segurança | Implante a Flag 7 ou 15 | Defesa em profundidade máxima |
As correções do cfDr são seguras para todas as implantações RHEL padrão. O módulo algif_aead e a interface de socket AF_ALG não são usados por nenhuma criptografia crítica do sistema em sistemas Enterprise Linux.
O que isso significa:
O único risco teórico é para aplicações personalizadas explicitamente programadas para usar sockets AF_ALG - um cenário tão raro que múltiplas organizações de segurança confirmaram independentemente que é seguro bloquear AF_ALG em ambientes empresariais.
Este fluxo de trabalho equilibra rigor com segurança operacional:
ansible-playbook -i inventory quickstart.yml
**O que acontece**:
- Todos os hosts são avaliados
- Nenhuma alteração é feita
- Relatórios são gerados
**Revisão**:
- Verifique `/root/cve-2026-31431-assessment-<hostname>.txt` em cada host
- Revise a saída do resumo
- Identifique hosts vulneráveis
**Saída esperada**:```
CVE-2026-31431 Summary Report
==========================================
Total hosts scanned: 50
Vulnerable hosts: 12
VULNERABLE HOSTS REQUIRING REMEDIATION:
web1.example.com, web2.example.com, db1.example.com, ...
DEFAULT RECOMMENDED MITIGATION: Flag 3
- Module Blacklist (1) + SELinux (2) = Defense-in-depth
- Module Blacklist alone can be bypassed by root (via insmod)
- SELinux blocks syscall even if blacklist is bypassed
- Covers user_t/unconfined_t (vast majority of scenarios)
ansible-playbook -i inventory quickstart.yml -e generate_inventory=true -e inventory_output_dir=./vulnerable_hosts
**O que acontece**:
- Hosts vulneráveis identificados
- Flags de mitigação recomendadas calculadas por host
- Arquivos de inventário gerados
**Revisão**:```bash
# Check generated inventory
cat vulnerable_hosts/vulnerable_hosts.yml
# Review per-host recommendations
ls vulnerable_hosts/host_vars/
ansible-playbook -i vulnerable_hosts/vulnerable_hosts.yml cve_2026_31431_playbook.yml
-e apply_remediation=true
--limit 'dev*:test*'
**O que acontece**:
- Mitigações aplicadas apenas aos hosts de teste/dev
- Serviços reiniciados (para seccomp)
- Verificação realizada
**Verificar**:```bash
# Re-scan test hosts
ansible-playbook -i vulnerable_hosts/vulnerable_hosts.yml quickstart.yml --limit 'dev*:test*'
# Check for "PROTECTED - Defense-in-depth" status
Aplicações de teste:
ansible-playbook -i vulnerable_hosts/vulnerable_hosts.yml cve_2026_31431_playbook.yml
-e apply_remediation=true
--limit 'web*'
ansible-playbook -i vulnerable_hosts/vulnerable_hosts.yml cve_2026_31431_playbook.yml
-e apply_remediation=true
--limit 'app*'
ansible-playbook -i vulnerable_hosts/vulnerable_hosts.yml cve_2026_31431_playbook.yml
-e apply_remediation=true
--limit 'db*'
**O que acontece**:
- Cada camada é corrigida separadamente
- Os serviços são reiniciados uma camada de cada vez
- Permite validação em etapas
**Monitorar entre as etapas**:
- Verificar a disponibilidade do serviço
- Revisar os logs do aplicativo
- Confirmar a experiência do usuário
#### Etapa 5: Verificação e Documentação```bash
# Final assessment of all hosts
ansible-playbook -i inventory quickstart.yml
Documento:
Total hosts scanned: 50 Vulnerable hosts: 0
All hosts protected with defense-in-depth mitigations
### Fluxo de Trabalho de Resposta a Emergências
Para sistemas **ativamente explorados** ou **ameaças imediatas**:```bash
# Immediate assessment and remediation
ansible-playbook -i inventory quickstart.yml -e apply_remediation=true -e mitigation_flags=3
# Re-verify all hosts
ansible-playbook -i inventory quickstart.yml
Use esta abordagem quando:
Atenção: Isso aplica mitigações a TODOS os hosts vulneráveis simultaneamente. Monitore de perto.
Para conformidade contínua e detecção de novos sistemas:```bash
0 2 * * 0 ansible-playbook -i inventory quickstart.yml -e generate_inventory=true
**Integrar com**:
- Banco de dados de gerenciamento de configuração (CMDB)
- Gerenciamento de informações e eventos de segurança (SIEM)
- Sistemas de chamados para rastreamento de remediação
### Fluxo de Mitigação Personalizado
Para **requisitos específicos** além da Flag 3:```bash
# Use enhanced protection (Flag 7: Blacklist + SELinux + seccomp)
ansible-playbook -i inventory quickstart.yml \
-e apply_remediation=true \
-e mitigation_flags=7
# Or customize per-host via inventory
# Edit generated host_vars/*.yml files to set custom flags
vim vulnerable_hosts/host_vars/web1.example.com.yml
# Change: recommended_mitigation_flags: 7
# Apply customized settings
ansible-playbook -i vulnerable_hosts/vulnerable_hosts.yml cve_2026_31431_playbook.yml \
-e apply_remediation=true
Após a remediação, verifique a proteção:```bash
sudo lsmod | grep algif_aead
sudo modprobe algif_aead
cat /etc/modprobe.d/blacklist-algif_aead-cve-2026-31431.conf
sudo semodule -l | grep cve_2026_31431
systemctl show httpd | grep RestrictAddressFamilies
---
## Início Rápido
Para utilizadores que pretendem começar imediatamente:
### Utilização Mais Simples```bash
# Clone repository
git clone https://github.com/parmstro/cfDr.git
cd cfDr
# Step 1: Assess all hosts
ansible-playbook -i inventory quickstart.yml
# Step 2: Apply recommended mitigations to vulnerable hosts
ansible-playbook -i inventory quickstart.yml --limit vulnerable_hosts -e apply_remediation=true
ansible-playbook -i /path/to/your/inventory quickstart.yml
ansible-playbook -i /path/to/your/inventory quickstart.yml
--limit vulnerable_hosts
-e apply_remediation=true
### Gerando Inventário de Vulnerabilidades```bash
# Scan and create inventory of vulnerable hosts
ansible-playbook -i inventory quickstart.yml -e generate_inventory=true
# Review generated files
ls inventory_output/
# Apply mitigations using generated inventory
ansible-playbook -i inventory_output/vulnerable_hosts.yml cve_2026_31431_playbook.yml \
-e apply_remediation=true
Substitua as mitigações padrão por execução de playbook:```bash
ansible-playbook quickstart.yml -e apply_remediation=true -e mitigation_flags=1
ansible-playbook quickstart.yml -e apply_remediation=true -e mitigation_flags=2
ansible-playbook quickstart.yml -e apply_remediation=true -e mitigation_flags=3
ansible-playbook quickstart.yml -e apply_remediation=true -e mitigation_flags=7
ansible-playbook quickstart.yml -e apply_remediation=true -e mitigation_flags=15
### Personalizando Domínios SELinux
Edite `roles/cve_2026_31431/defaults/main.yml`:```yaml
# Add additional domains to protect
selinux_denied_domains:
- user_t
- unconfined_t
- httpd_t
- postgresql_t
- mysqld_t
- custom_app_t # Your custom domain
- another_service_t
Edite roles/cve_2026_31431/defaults/main.yml:```yaml
seccomp_protected_services:
### Diretório de Saída de Inventário Personalizado```bash
# Specify custom output location
ansible-playbook quickstart.yml \
-e generate_inventory=true \
-e inventory_output_dir=/path/to/output
O sample_playbook.yml contém vários exemplos:```yaml
### Requisitos
- **Ansible**: 2.9 ou superior (2.15+ recomendado)
- **Acesso privilegiado**: sudo/root nos hosts de destino
- **Python**: 2.7 ou 3.5+ nos hosts de destino
- **SO suportado**: Red Hat Enterprise Linux, CentOS, Fedora (Debian/Ubuntu com suporte limitado)
---
## Recursos Adicionais
### Informações e Análise de CVE
**Fontes Oficiais**:
- [NVD - CVE-2026-31431](https://nvd.nist.gov/vuln/detail/CVE-2026-31431)
- [Entrada CVE da MITRE](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2026-31431)
**Pesquisa e Análise de Segurança**:
- [Sysdig - Análise da CVE-2026-31431](https://www.sysdig.com/blog/cve-2026-31431-copy-fail-linux-kernel-flaw-lets-local-users-gain-root-in-seconds)
- [The Hacker News - Vulnerabilidade Copy Fail](https://thehackernews.com/2026/04/new-linux-copy-fail-vulnerability.html)
- [Aviso de Segurança CERT-EU](https://cert.europa.eu/publications/security-advisories/2026-005/)
- [Help Net Security - Detalhes do Copy Fail](https://www.helpnetsecurity.com/2026/04/30/copyfail-linux-lpe-vulnerability-cve-2026-31431/)
### Projetos de Mitigação Relacionados
Contribuições da comunidade para a mitigação da CVE-2026-31431:
- **[block-copyfail](https://github.com/atgreen/block-copyfail)** - Implementação eBPF LSM por Anthony Green
- Mitigação abrangente baseada em eBPF
- Proteção em todo o sistema para kernels modernos
- Fonte para a implementação eBPF do cfDr
- **[Blastwall](https://gprocunier.github.io/blastwall/demo.html)** - Estrutura de políticas SELinux por Greg Procunier
- Gerenciamento avançado de políticas SELinux
- Estrutura de proteção multi-CVE
- Fonte para a implementação SELinux do cfDr
### Recursos Específicos da Red Hat
**Artigos da Base de Conhecimento**:
- [Portal do Cliente Red Hat - CVE-2026-31431](https://access.redhat.com/security/cve/cve-2026-31431)
- [Dados de Segurança Red Hat - Produtos Afetados](https://access.redhat.com/security/data/metrics/)
**Guias de Mitigação**:
- [SELinux para Enterprise Linux - Guia do Usuário](https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/9/html/using_selinux/)
- [Recursos de Segurança do systemd](https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/9/html/managing_systems_using_the_rhel_9_web_console/securing-systemd-services_system-management-using-the-rhel-9-web-console)
### Documentação
**Documentação Estendida do cfDr**:
- [Guia de Mitigações para Enterprise Linux](https://github.com/parmstro/cfdr/blob/HEAD/enterprise-linux-mitigations.md) - Comparação abrangente de todos os métodos de mitigação
- [Guia de Mitigação SELinux](https://github.com/parmstro/cfdr/blob/HEAD/selinux-mitigation.md) - Implementação detalhada de políticas SELinux
- [Guia de Mitigação seccomp](https://github.com/parmstro/cfdr/blob/HEAD/seccomp-mitigation.md) - Implementação de filtro seccomp do systemd
- [Guia de Mitigação eBPF LSM](https://github.com/parmstro/cfdr/blob/HEAD/ebpf-lsm-mitigation.md) - Implementação de programa eBPF LSM
- [docs/CONTRIBUTORS.md](https://github.com/parmstro/cfdr/blob/HEAD/CONTRIBUTORS.md) - Diretrizes de contribuição e créditos
**Documentação do Ansible**:
- [Guia do Usuário do Ansible](https://docs.ansible.com/ansible/latest/user_guide/)
- [Melhores Práticas do Ansible](https://docs.ansible.com/ansible/latest/user_guide/playbooks_best_practices.html)
---
## Monitoramento de Patches
### Red Hat Enterprise Linux
**Fonte Primária**: Portal do Cliente Red Hat
- **Avisos de Segurança**: https://access.redhat.com/security/security-updates/
- **Avisos de Errata**: https://access.redhat.com/errata/
- **Rastreador de CVE**: https://access.redhat.com/security/cve/cve-2026-31431
**Métodos de Notificação**:
1. **Alertas por E-mail** (Recomendado):
- Faça login no Portal do Cliente Red Hat
- Navegue até: Configurações da Conta → Notificações
- Ative: "Avisos de Segurança" e "Errata de Produtos"
- Selecione: as versões do RHEL que você gerencia
2. **Feeds RSS**:
- Segurança RHEL 7: https://access.redhat.com/blogs/766093/feed
- Segurança RHEL 8: https://access.redhat.com/blogs/1683903/feed
- Segurança RHEL 9: https://access.redhat.com/blogs/5480361/feed
- Toda a Segurança: https://access.redhat.com/security/data/oval/com.redhat.rhsa-all.xml
3. **Acesso via API**: ```bash
# Check for kernel security updates
curl -H "Accept: application/json" \
"https://access.redhat.com/labs/securitydataapi/cve/CVE-2026-31431.json"
Monitorização Automatizada: ```bash
sudo yum install yum-plugin-security
sudo yum updateinfo list security
sudo yum updateinfo list security kernel
O que procurar:
Exemplo de Formato de Aviso:``` RHSA-2026:XXXX - Important: kernel security update Severity: Important CVEs: CVE-2026-31431 Affected Products: RHEL 7, 8, 9
### CentOS / Rocky Linux / AlmaLinux
**CentOS Stream**:
- **Anúncios**: https://lists.centos.org/pipermail/centos-announce/
- **Lista de Segurança**: https://lists.centos.org/mailman/listinfo/centos-security-announce
**Rocky Linux**:
- **Rastreador de Segurança**: https://errata.rockylinux.org/
- **Anúncios**: https://rockylinux.org/news/
**AlmaLinux**:
- **Errata**: https://errata.almalinux.org/
- **Segurança**: https://wiki.almalinux.org/security/
### Fedora
**Fonte Primária**: Projeto Fedora
- **Sistema de Atualizações**: https://bodhi.fedoraproject.org/
- **Lista de Segurança**: https://lists.fedoraproject.org/archives/list/[email protected]/
**Métodos de Notificação**:```bash
# Subscribe to security announcements
# Visit: https://lists.fedoraproject.org/admin/lists/security-announce.lists.fedoraproject.org/
# Check for updates
sudo dnf check-update kernel
# View available security updates
sudo dnf updateinfo list security
Fonte Primária: Avisos de Segurança do Ubuntu
Métodos de Notificação:```bash
sudo apt update sudo apt list --upgradable | grep security
sudo apt install ubuntu-security-tools usn list --cve CVE-2026-31431
### Debian
**Fonte Primária**: Debian Security Tracker
- **Security Tracker**: https://security-tracker.debian.org/tracker/CVE-2026-31431
- **Security Announcements**: https://www.debian.org/security/
**Métodos de Notificação**:```bash
# Subscribe to Debian Security Announcements
# Visit: https://lists.debian.org/debian-security-announce/
# Check for security updates
sudo apt update
sudo apt list --upgradable
Fonte Primária: SUSE Security
Métodos de Notificação:```bash
sudo zypper list-patches --category security
sudo zypper info --cve CVE-2026-31431
### Kernel Upstream
**Lista de Discussão do Kernel Linux**:
- **Arquivos do LKML**: https://lkml.org/
- **Lista de Segurança**: https://www.kernel.org/category/releases.html
**Repositório Git**:```bash
# Monitor kernel git for patches
git clone https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
# Search for CVE-2026-31431 patches
git log --all --grep="CVE-2026-31431"
Crie um script de monitorização para o seu ambiente:```bash #!/bin/bash
DISTRO=$(grep ^ID= /etc/os-release | cut -d= -f2 | tr -d '"')
case $DISTRO in rhel|centos|rocky|alma) yum updateinfo list security kernel 2>/dev/null | grep -i CVE-2026-31431 ;; fedora) dnf updateinfo list security kernel 2>/dev/null | grep -i CVE-2026-31431 ;; ubuntu|debian) apt-get update -qq apt-cache show linux-image-$(uname -r) | grep CVE-2026-31431 ;; sles|opensuse*) zypper info --cve CVE-2026-31431 kernel-default ;; esac
curl -s "https://access.redhat.com/labs/securitydataapi/cve/CVE-2026-31431.json" |
jq -r '.affected_release[] | select(.package | startswith("kernel")) |
"(.product_name): (.advisory) - (.package)"'
**Agendar com cron**:```bash
# Check daily for patches
0 6 * * * /usr/local/bin/check-cve-2026-31431-patch.sh | mail -s "CVE-2026-31431 Patch Check" [email protected]
Verifique a disponibilidade do patch: ```bash
sudo yum check-update kernel # RHEL/CentOS/Fedora sudo apt update && apt list --upgradable linux-image-* # Ubuntu/Debian
Rever as notas de versão:
Testar em ambiente não produtivo: ```bash
sudo yum update kernel # RHEL/CentOS/Fedora sudo apt upgrade linux-image-* # Ubuntu/Debian sudo reboot
Verificar a eficácia do patch: ```bash
uname -r
ansible-playbook -i inventory quickstart.yml
Planear a implementação em produção:
Remover mitigações temporárias (opcional): ```bash
sudo rm /etc/modprobe.d/blacklist-algif_aead-cve-2026-31431.conf sudo semodule -r cve_2026_31431_af_alg_deny # SELinux policy
Recomendações: Mesmo após o patch do kernel, considere manter mitigações de defesa em profundidade como proteção contra vulnerabilidades futuras.
Encontrou um bug ou tem uma solicitação de recurso?
Aceitamos contribuições! Consulte docs/CONTRIBUTORS.md para:
O cfDr é construído sobre a experiência coletiva de profissionais de segurança:
Consulte docs/CONTRIBUTORS.md para detalhes completos de contribuição.
Este projeto é fornecido sob a Licença MIT para fins de avaliação de vulnerabilidades e remediação.
Consulte LICENSE para obter detalhes.
IMPORTANTE: Esta ferramenta fornece mitigações temporárias enquanto aguarda patches de kernel fornecidos pelo fornecedor. Essas mitigações reduzem significativamente o risco, mas podem não fornecer proteção completa em todos os cenários.
O cfDr é fornecido "no estado em que se encontra" sem garantia. Sempre:
Os contribuidores e mantenedores do cfDr não são responsáveis por qualquer dano ou perda de dados resultante do uso desta ferramenta.
Última Atualização: 2026-05-02T23:30:00Z