FreeBSD: Execução Remota de Código no Kernel via Estouro de Buffer na Pilha em kgssapi.ko (CVE-2026-4747)

Detalhes da Vulnerabilidade
A vulnerabilidade existe em sys/rpc/rpcsec_gss/svc_rpcsec_gss.c dentro da função svc_rpc_gss_validate(). Um buffer de pilha de 128 bytes (rpchdr[]) é usado para reconstruir cabeçalhos RPC para verificação de assinatura GSS-API. Após escrever 32 bytes de campos fixos do cabeçalho RPC, a função copia todo o corpo da credencial RPCSEC_GSS (oa_length bytes) no espaço restante sem verificação de limites.
static bool_t svc_rpc_gss_validate(...) {
int32_t rpchdr[128 / sizeof(int32_t)]; // 128 bytes na pilha
// ...
if (oa->oa_length) {
// BUG: Sem verificação de limites em oa_length!
// Após 32 bytes de cabeçalho, restam apenas 96 bytes em rpchdr.
// Se oa_length > 96, isso transborda além de rpchdr
memcpy((caddr_t)buf, oa->oa_base, oa->oa_length);
}
}
Superfície de Ataque e Impacto
O módulo vulnerável kgssapi.ko implementa autenticação RPCSEC_GSS para o subsistema RPC do kernel do FreeBSD. O daemon do servidor NFS (nfsd) ouvindo na porta 2049/TCP processa pacotes RPC no contexto do kernel e usa este módulo quando a autenticação RPCSEC_GSS está habilitada. A exploração bem-sucedida resulta em execução remota de código no kernel com privilégios de root (shell reverso uid 0).
Versões Afetadas
- FreeBSD 13.5 (<p11)
- FreeBSD 14.3 (<p10)
- FreeBSD 14.4 (<p1)
- FreeBSD 15.0 (<p5)
A Correção
O patch para FreeBSD 14.4-RELEASE-p1 adiciona uma verificação de limites antes da cópia:
if (oa->oa_length > sizeof(rpchdr) - 8 * BYTES_PER_XDR_UNIT) {
rpc_gss_log_debug("auth length %d exceeds maximum", oa->oa_length);
client->cl_state = CLIENT_STALE;
return (FALSE);
}
Análise do Layout da Pilha
Pela desmontagem da função, o array rpchdr está em [rbp-0xc0]. O memcpy escreve em rpchdr + 32 = [rbp-0xa0]. Com um identificador de contexto de 16 bytes no corpo da credencial, o endereço de retorno cai no byte 200 do corpo da credencial, permitindo o controle do fluxo de execução.
📖 Leia a fonte completa: HN AI Agents
👀 See Also

Regras da Garra: Conjunto de Regras de Segurança de Código Aberto para Agentes OpenClaw
Um conjunto de regras JSON de código aberto com 139 regras de segurança que bloqueia comandos destrutivos, protege arquivos de credenciais e protege arquivos de instrução contra edições não autorizadas por agentes. Opera com zero dependência de LLM usando padrões regex na camada de ferramentas.

A Abordagem de Vitalik Buterin para Configuração Segura de LLM Local
Vitalik Buterin descreve sua configuração de LLM autossuficiente focada em inferência local, sandboxing e mitigação de riscos de privacidade como vazamento de dados e jailbreaks.

Três alternativas de código aberto ao litellm após o ataque à cadeia de suprimentos do PyPI
As versões 1.82.7 e 1.82.8 do litellm no PyPI foram comprometidas com malware que rouba credenciais. Três alternativas de código aberto incluem Bifrost (baseado em Go, ~50x mais rápido na latência P99), Kosong (orientado a agentes do Kimi) e Helicone (gateway de IA com análises).

Incidentes de Exclusão de Produção de Agentes de IA: O Padrão e a Solução
Incidentes de exclusão em produção causados por PocketOS, Replit e Cursor compartilham um padrão de acesso comum. Solução: agentes não recebem credenciais de produção; todas as alterações passam por CI/CD com uma barreira de pontuação de políticas.