Resumo executivo
O CVE-2026-31979 é uma vulnerabilidade de escalonamento de privilégios locais de alta gravidade (CVSS 8.8) no Himmelblau, um conjunto de interoperabilidade de código aberto que integra sistemas Linux com o Microsoft Azure Entra ID e o Intune.
Uma exploração bem-sucedida concede a um usuário local, sem privilégios, acesso raiz total. Isso permite que um invasor que já se estabeleceu em seu ambiente ignore os controles de segurança locais, acesse dados confidenciais (como /etc/shadow) e estabeleça acesso persistente no host.
A vulnerabilidade é uma condição de corrida de link simbólico (symlink). O sistema manipula incorretamente as operações de arquivo no diretório /tmp compartilhado, permitindo que um invasor engane um processo de privilégio elevado para modificar arquivos essenciais do sistema.
As organizações que executam o Linux no desktop ou ambientes de nuvem híbrida que usam o Himmelblau para aplicação de políticas Intune e gerenciamento de identidade do Azure estão em alto risco.
Detalhes da vulnerabilidade
O Himmelblau é um conjunto de interoperabilidade essencial usado por empresas para eliminar a disparidade entre os ecossistemas Linux e o Microsoft Azure Entra ID e o Intune. Ele permite que as organizações gerenciem frotas do Linux com os mesmos controles de identidade e política comumente aplicados a dispositivos Windows, incluindo SSO (logon único) e conformidade de dispositivos.
Antes das versões 3.1.0 e 2.3.8, uma grave falha arquitetônica foi descoberta no daemon himmelblaud-tasks. Como esse daemon deve ser executado com privilégios raiz para gerenciar tokens de autenticação em todo o sistema, qualquer ponto fraco na lógica de manipulação de arquivos introduz um risco significativo.
A vulnerabilidade, identificada como CVE-2026-31979, surge da falha do daemon em usar as proteções de symlink ao gravar arquivos de cache de credenciais do Kerberos no diretório /tmp compartilhado. Ao combinar operações de arquivo não seguras com a falta de isolamento de namespace systemd, um invasor local pode redirecionar as ações do daemon para assumir a propriedade de arquivos essenciais do sistema, elevando efetivamente os privilégios de um usuário padrão para a raiz.
Produtos afetados
O componente vulnerável é implantado amplamente em ambientes empresariais. Consulte os avisos oficiais do fornecedor para obter uma lista completa e autorizada das versões afetadas.
Classificação CWE
CWE-269: gerenciamento de privilégios inadequado
CWE-862: autorização ausente
Mapeamento do MITRE ATT&CK
Técnica |
Nome |
Tática |
|---|---|---|
T1068 |
Exploração para escalonamento de privilégios |
Escalação de privilégios |
T1548 |
Mecanismo de controle de elevação de abuso |
Escalação de privilégios |
A vulnerabilidade está enraizada em uma falha de TOCTOU (tempo de verificação para tempo de uso). Como o daemon himmelblaud-tasks não possui um namespace de execução seguro (devido à remoção do PrivateTmp), ele opera no mesmo espaço /tmp que os usuários não privilegiados.
Ao explorar a dependência do daemon em operações baseadas em caminho em vez de operações baseadas em descritor de arquivo, um invasor pode ganhar uma "corrida" para substituir um diretório legítimo por um symlink antes que o daemon aplique alterações de propriedade.
Como reproduzir a exploração em três etapas
Para explorar essa vulnerabilidade, um invasor deve ter acesso local e sem privilégios a um sistema que esteja executando uma versão vulnerável do himmelblaud-tasks. A exploração é altamente confiável em ambientes em que ocorre inscrição automatizada ou reautenticação frequente.
Etapa 1: criar a armadilha do symlink
Como um usuário sem privilégios (por exemplo, UID 1000), crie um symlink em /tmp que tenha como alvo um diretório de sistema privilegiado, como:
ln -s /etc /tmp/krb5cc_$(id -u)
Etapa 2: acionar o daemon raiz
Execute qualquer ação que inicie um fluxo de autenticação Kerberos, como um login PAM ou o uso de aad-tool.
aad-tool auth login
Etapa 3: verificar a propriedade sequestrada
O daemon chama create_ccache_dir para o caminho do invasor. Como ele não é ciente de links, ele segue o symlink e executa chown em /etc.
ls -ld /etc
# Output will show /etc is now owned by the unprivileged user.
Análise de patches
A correção para o CVE-2026-31979 é um patch que aborda a condição de corrida passando de operações de alto nível baseadas em caminho para segurança de baixo nível baseada em descritor de arquivo.
Implementação de O_NOFOLLOW. O patch atualiza write_bytes_to_file para incluir o sinalizador O_NOFOLLOW na chamada de sistema open(). O kernel agora se recusará a abrir um caminho que seja um symlink, retornando um erro ELOOP.
Alteração para lchown. O daemon originalmente dependia do chown, que resolve symlinks. O patch o substitui por lchown, garantindo que as modificações de propriedade se apliquem apenas ao próprio link, não ao alvo sensível.
Criação de diretório seguro. O patch introduz a lógica O_EXCL. O daemon agora garante que ele cria um diretório atomicamente e falha se qualquer arquivo ou symlink já existir nesse caminho.
Detecção de aplicações vulneráveis
Regra Sigma (auditoria Linux)
title: Detect Himmelblau Symlink Attack
id: 0d3d2cf5-194a-efe7-03a8-ac164aaf975b
status: experimental
description: Detects the himmelblaud-tasks daemon following a symlink to sensitive directories.
logsource:
product: linux
service: auditd
detection:
selection:
type: SYSCALL
syscall: chown
exe: /usr/sbin/himmelblaud-tasks
filter:
path: '/tmp/krb5cc_*'
condition: selection
tags:
- attack.privilege_escalation
- attack.t1068
level: high
Osquery: CVE-2026-31979: binários SUID/SGID
SELECT
f.path,
f.uid AS owner_uid,
u.username
FROM file f
JOIN users u ON f.uid = u.uid
WHERE f.path LIKE '/tmp/krb5cc_%';
Os clientes da Akamai podem aproveitar as consultas do Akamai Guardicore Segmentation Insight para identificar ativos vulneráveis e sinais de exploração em seu ambiente.
Mitigação
Se não for possível fazer o patch para a versão 3.1.0 imediatamente, reative manualmente o systemd sandboxing criando uma substituição para o serviço himmelblaud-tasks e adicionando PrivateTmp=true. Isso efetivamente quebra o vetor de ataque de symlink isolando o /tmp do daemon do /tmp do usuário.
Resumo
O CVE-2026-31979 representa uma falha crítica no limite de confiança entre usuários locais sem privilégios e daemons de sistema com privilégios elevados. Ao explorar uma condição de corrida TOCTOU no pacote Himmelblau, os invasores podem armar o diretório /tmp compartilhado para sequestrar operações de arquivo de nível raiz.
Como o Himmelblau serve como a principal ponte de identidade para a integração entre Linux e Azure, essa vulnerabilidade faz mais do que conceder acesso raiz local: ela compromete a integridade da relação do host com o Microsoft Entra ID.
As organizações devem ver essa vulnerabilidade não apenas como um bug local, mas como um possível gateway para movimentação lateral na infraestrutura integrada à nuvem.
Fique por dentro
O Akamai Security Intelligence Group continuará monitorando, notificando e criando mitigações quanto a ameaças como essas para nossos clientes e para a comunidade de segurança em geral. Para acompanhar as notícias mais recentes do Akamai Security Intelligence Group, confira nossa página inicial de pesquisa e siga nossos perfis nas redes sociais.
Tags