# CVE-2022-0847
> [!high] DirtyPipe - Escalada de Privilégio no Kernel Linux
> Vulnerabilidade no mecanismo de pipe do kernel Linux permite sobrescrever conteúdo de arquivos read-only, viabilizando escalada de privilégio para root. Afeta servidores Linux com kernel 5.8+, incluindo ambientes de contêiner e cloud.
## Visão Geral
A [[cve-2022-0847|CVE-2022-0847]], conhecida como **DirtyPipe**, é uma vulnerabilidade no mecanismo de **pipes** do kernel Linux descoberta pelo pesquisador Max Kellermann em fevereiro de 2022. A falha permite que um usuário sem privilégios sobrescreva páginas em cache de arquivos arbitrários, incluindo arquivos somente leitura de propriedade do root, viabilizando escalada de privilégio completa para root.
O nome "DirtyPipe" é uma referência à famosa vulnerabilidade "DirtyCow" (CVE-2016-5195), à qual é conceitualmente similar mas distinta técnicamente. A DirtyPipe afeta kernels Linux 5.8 e superiores, impactando uma gama significativa de servidores modernos, incluindo instâncias em nuvem AWS, GCP e Azure rodando kernels recentes.
Ambientes de contêiner (Docker, Kubernetes) rodando em kernels vulneráveis também são afetados, onde um contêiner comprometido pode utilizar esta CVE para escapar para o host. O impacto para infraestrutura cloud e servidores Linux corporativos no Brasil é direto, especialmente em organizações com ambientes DevOps modernos.
## Detalhes Técnicos
| Campo | Valor |
|-------|-------|
| Tipo | Escalada de Privilégio Local (LPE) |
| Componente | Kernel Linux - pipe_write() |
| Vetor | Local (requer usuário padrão) |
| Complexidade | Baixa |
| PoC Público | Sim (múltiplos, 1 dia após divulgação) |
### Como Funciona
O bug está em `pipe_write()` - a flag `PIPE_BUF_FLAG_CAN_MERGE` não é limpa corretamente ao alocar novos buffers de pipe. Um atacante pode:
1. Criar um pipe e preenchê-lo completamente
2. Esvaziar o pipe (mas manter a flag `CAN_MERGE`)
3. Fazer splice de um arquivo somente-leitura no pipe
4. Escrever dados no pipe - que serão mesclados na página do arquivo
Resultado: escrita em arquivo somente-leitura, incluindo `/etc/passwd` ou binários SUID.
## TTPs Associadas
| Técnica | Descrição |
|---------|-----------|
| [[t1068-exploitation-for-privilege-escalation\|T1068]] | Exploração DirtyPipe para root |
| [[t1548-001-setuid-and-setgid\|T1548.001]] | Modificação de binários SUID |
| [[t1059-004-unix-shell\|T1059.004]] | Shell root pós-exploração |
| [[t1611-escape-to-host\|T1611]] | Escape de contêiner em ambientes Docker |
## Detecção e Defesa
**Mitigações:**
- Atualizar kernel para 5.16.11, 5.15.25 ou 5.10.102+
- [[m1051-update-software\|M1051]] - Atualização urgente do kernel Linux
- Monitorar modificações em arquivos `/etc/passwd`, `/etc/shadow`, binários SUID
- [[m1038-execution-prevention\|M1038]] - Seccomp profiles para limitar syscalls em contêineres
> [!latam] Relevância para Brasil e LATAM
> Servidores Linux com kernel 5.8+ são prevalentes em infraestrutura cloud e DevOps de empresas brasileiras de tecnologia, fintechs e startups. Em ambientes Kubernetes e Docker, DirtyPipe pode permitir que um contêiner comprometido escape para o nó do cluster, comprometendo toda a infraestrutura de produção. Organizações com ciclos longos de atualização de kernel são vulneráveis.
## Referências
- [Max Kellermann - DirtyPipe Technical Write-up](https://dirtypipe.cm4all.com/)
- [NVD - CVE-2022-0847](https://nvd.nist.gov/vuln/detail/CVE-2022-0847)
- [Linux Kernel Security Advisory](https://lkml.org/lkml/2022/2/21/1021)