Quatro exploits de root local no kernel, e o Java 27
A semana teve um fio só, e ele é sobre a distância entre ter acesso a uma máquina e poder tudo nela. Na sexta um pesquisador publicou código funcional para quatro falhas do kernel Linux que levam usuário local comum a root. No mesmo dia a CISA pôs no catálogo de exploração ativa uma quinta falha de kernel, essa de 2025. E dois dias antes tinha entrado no mesmo catálogo um plugin de backup do cPanel, também por escalada local, também já explorado.
Do outro lado do mesmo fio, três plataformas publicaram na mesma semana maneiras de diminuir o que uma credencial consegue fazer. O npm ganhou token que só encaminha versão para revisão, sem publicar. O GitHub Actions levou a disponibilidade geral o controle de quem dispara workflow e por qual evento. O Redis fechou um furo em que permissão de ACL revogada continuava valendo dentro de uma transação já enfileirada. Reparar nos três juntos muda a leitura: não é coincidência de calendário, é a indústria apertando o mesmo parafuso porque ele estava solto.
Fora esse fio, a semana rendeu duas coisas que não são segurança. O Java 27 chegou em 15 de setembro e mudou dois padrões debaixo de quem atualizar. E a Cloudflare separou "não treine com meu conteúdo" de "não me indexe", que até agora eram o mesmo botão. Oito itens. Três desenvolvidos.
Destaques
Quatro exploits de root local no kernel, publicados com código que funciona
Em 18 de setembro o pesquisador Asim Manizada publicou o relato técnico de quatro falhas de escalada local no kernel Linux, com exploit funcional para cada uma. São elas: DirtyAH6 (CVE-2026-80844, no cabeçalho de autenticação do IPsec sobre IPv6), TUNderflow (CVE-2026-81000, nos dispositivos TUN/TAP), PPPoEject (CVE-2026-68121, no PPPoE) e DiagSpill (CVE-2026-74469, no diagnóstico de socket SCTP). Todas são erro de memória em código de rede, e segundo o autor as mais velhas têm duas décadas. A comunicação aos times de segurança do kernel foi em meados de julho, e a publicação esperou as distribuições soltarem correção, como registrou a cobertura do The Hacker News.
As primeiras versões estáveis com as quatro corrigidas são 5.10.270, 5.15.221,
6.1.188, 6.6.157, 6.12.109, 6.18.50 e 7.2.4. Atenção a isso: a sua distribuição
numera de outro jeito. Debian, Ubuntu, Red Hat e SUSE portam correção para a
linha que empacotam e mantêm o número antigo, então comparar uname -r com essa
lista não responde nada. O que responde é o aviso de segurança da distribuição.
Tem um detalhe que decide quanto isso é problema seu, e ele é fácil de passar
batido. Três das quatro precisam de namespace de usuário sem privilégio. A
quarta, DiagSpill, não precisa. Se a sua receita de endurecimento desliga
unprivileged_userns_clone, e muita receita desliga, você está coberto em três
casos de quatro. Isso é bom e não é o suficiente.
O autor também é honesto sobre o limite: os exploits estão ajustados a builds específicos e derrubam a máquina quando erram, o que atrapalha uso em escala. Não vi relato de ataque real com nenhum dos quatro.
O que muda na prática é o peso que você dá a escalada local no modelo de ameaça. Se a sua conta é "para explorar isso o atacante já precisa ter shell aqui dentro", pare e conte quantas coisas hoje já rodam código de terceiro na sua máquina: runner de CI executando pull request, container de cliente em host compartilhado, worker que processa arquivo enviado por usuário, qualquer hospedagem multi-inquilino. Em todas, "já ter shell" não é o fim do ataque, é o começo. E não é teoria: na terça, 16 de setembro, a CISA pôs no catálogo de exploração ativa a CVE-2026-87886, escalada local por permissão de arquivo no plugin de backup da Acronis para cPanel e Plesk, com a própria Acronis dizendo que houve exploração em ataques limitados e direcionados. A correção é a build 1.9.3.1021 do plugin de cPanel e a 1.8.11.638 da extensão de Plesk. Na quinta entrou também a CVE-2025-39682, no kernel, pelo mesmo motivo: alguém está usando.
Java 27 chegou, e dois padrões mudaram debaixo de quem atualizar
O JDK 27 ficou disponível em 15 de setembro, com nove JEPs: quatro finais, quatro em prévia e um em incubação. Não é LTS. Pela cadência de seis meses, a Oracle atualiza o 27 até março de 2027, quando o 28 assume. Quem está em 25 e vive de LTS pode pular esse sem culpa, mas vale ler o que entrou, porque duas das quatro finais são mudança de padrão, e mudança de padrão acontece sem você pedir.
A primeira é a JEP 523, que torna o G1 o coletor padrão em todos os ambientes, e não só em servidor. O texto do próprio JEP conta o que existia antes: desde o JDK 9 o G1 é padrão em servidor, mas em ambiente restrito, máquina de uma CPU ou com menos de 1792 MB de memória física, a JVM escolhia o Serial, que tinha vantagem de vazão e de pegada ali. A motivação diz que o G1 hoje substitui o Serial em toda situação em que o Serial seria escolhido.
Repare em quem isso pega. A JVM lê limite de cgroup, então o corte de 1792 MB não é sobre a máquina física: é sobre o container. Se você roda serviço Java em container com 1 GB ou 1,5 GB de limite, e muita gente roda, esse processo estava usando Serial e vai passar a usar G1 na atualização. Não estou dizendo que fica pior, o JEP argumenta o contrário. Estou dizendo que muda, e que perfil de pausa e de uso de memória em container pequeno é exatamente o lugar onde surpresa aparece em produção e não em teste de carga com máquina folgada.
A segunda é a JEP 534, cabeçalho de objeto compacto por padrão, que corta o cabeçalho de 96 para 64 bits em arquitetura de 64 bits. Para aplicação com muito objeto pequeno, isso é heap a menos de graça. É a mudança que eu deixaria ligada e mediria.
Das outras, a JEP 527 traz troca de chave híbrida pós-quântica no TLS 1.3, que é o tipo de coisa que você quer que esteja pronta antes de precisar. E a JEP 533 deixa a concorrência estruturada na sétima prévia. Sétima. Não é crítica: é o aviso de que a API ainda vai mexer, e de que escrever código de produção em cima dela ainda custa retrabalho.
A Cloudflare separou "não treine com meu conteúdo" de "não me indexe"
Em 15 de setembro a Cloudflare passou a valer uma configuração nova de crawler de IA. O problema que ela resolve é real e eu já esbarrei nele: o mesmo robô que lê a sua página para o índice de busca lê para treinar modelo. Recusar um era recusar os dois.
A saída da Cloudflare foi classificar comportamento de robô em três categorias, busca, treino e agente, e criar a figura do operador "responsável", que é quem cumpre quatro exigências: oferecer recusa de treino por robots.txt ou padrão equivalente, oferecer recusa de resumo de IA, dar visibilidade por URL do que foi usado em treino, e garantir que recusar treino não afeta o resultado de busca tradicional. Apple, Google e Microsoft foram designadas assim para os robôs de uso misto. Amazon, Anthropic, Meta e OpenAI entram por outro caminho, porque já operam robô de busca e robô de treino separados.
As opções agora são quatro: permitir, que é o padrão, recusar treino, bloquear em página com anúncio, e bloquear. E aqui está a armadilha da semana, com todas as letras no anúncio: bloquear e bloquear em página com anúncio passaram a valer para todos os robôs de treino, inclusive os de uso misto. Ou seja, quem deixa "bloquear" marcado está bloqueando Googlebot e Bingbot. Quem tinha o antigo "Block AI" foi migrado para "recusar treino", não para bloqueio total, então na prática ninguém saiu do índice sozinho. Mas se você for mexer nessa tela agora achando que "bloquear" é o mais seguro, é o contrário: é a opção que tira você da busca.
O que muda na prática para quem opera site: essa decisão deixou de ser binária e virou escolha de negócio. Site que vive de tráfego de busca e não ganha nada com treino tem uma opção que antes não existia. E vale entender a diferença de natureza entre as duas ferramentas, porque elas não são substitutas. O robots.txt é pedido educado, quem respeita respeita porque quer. A regra na borda é execução: o robô leva bloqueio antes de chegar na sua origem. Eu mantenho os dois neste site, e os dois dizem a mesma coisa de propósito, porque declaração que se contradiz é pior que declaração nenhuma.
Em nota
- npm ganhou token que encaminha versão sem publicar. O
changelog de 18 de setembro
descreve o token granular com permissão "leitura e escrita (só encaminhar)":
ele roda
npm stage publishe continua podendo mover dist-tag e depreciar versão, mas não publica versão nova direto. É opt-in e não mexe em token existente. O prazo importa mais que o recurso: o npm quer remover publicação direta por token que contorna 2FA em janeiro de 2027. Se você publica pacote por CI e não migrou para publicação confiável, esse token é o caminho do meio. Exige CLI 11.15.0 e Node 22.14.0. - Redis 8.10.2 fecha desvio de ACL dentro de transação. A
versão de 17 de setembro
é de segurança. O caso principal: comando enfileirado em MULTI enquanto um
padrão de chave estava liberado continuava lendo e escrevendo aquelas chaves
mesmo depois de o operador revogar o padrão, porque a reconferência no EXEC
olhava o EXEC e não as chaves de cada comando da fila. Agora avalia comando a
comando. Junto vieram uma opção
cluster-bus-port-protected-mode, porque o barramento de cluster não tem autenticação própria sem TLS, e três correções de queda por dado malformado, em Time Series, em consulta KNN e em Vector Sets. Quem usa ACL para separar inquilino num Redis compartilhado deveria tratar essa como prioritária. - GitHub Actions: controle de quem dispara workflow, e
ubuntu-latestvai mudar. As proteções de execução de workflow chegaram a disponibilidade geral em 17 de setembro, com regra por arquivo de workflow, painel de avaliação e API REST. A data que interessa é 2 de novembro de 2026: o GitHub vai ligar sozinho uma regra padrão que desabilitapull_request_targetem repositório público sem política de evento, primeiro em modo de avaliação. É o evento que roda com segredo do repositório em cima de código de fork, historicamente a rota mais cara de errar. No mesmo dia saiu também que o Ubuntu 26.04 está disponível e queubuntu-latestmigra de 24.04 para 26.04 entre 19 de outubro e 19 de novembro, com ferramenta removida e versão trocada pelo caminho. Testar agora contraubuntu-26.04custa um commit; descobrir em novembro custa uma manhã. - Um 10,0 no Azure AI Foundry que você não tem como corrigir. A Microsoft publicou em 17 de setembro a CVE-2026-85889, nota 10,0, falta de autenticação em função crítica do Azure AI Foundry, que deixava atacante sem credencial nenhuma elevar privilégio pela rede. Foi reportada por Rémy Marot, e segundo a cobertura do The Hacker News a Microsoft diz que já está mitigada do lado dela e que não há ação do cliente, nem evidência de exploração. O aviso está no guia de atualização da Microsoft. Registro porque a categoria cresce: plataforma gerenciada de IA tem CVE nota máxima que aparece e desaparece sem você fazer nada. Boa notícia operacional, má notícia de auditoria, porque a sua trilha de correção não tem linha nenhuma sobre isso e o auditor vai perguntar.
- Banco Central mudou o regulamento do Pix. A Resolução BCB 587, de 18 de setembro, cria a marcação de suspeita de fraude em CPF e CNPJ no DICT, com validade de até cinco anos, obrigação de avisar o marcado, canal de contestação e resposta em sete dias, e rejeição de transação envolvendo conta marcada. Isso vale desde a publicação. Duas outras partes têm data: a cobrança híbrida, boleto e QR Code de Pix no mesmo documento, entra em 1º de fevereiro de 2027, com devolução em 24 horas pela instituição recebedora se pagarem pelos dois caminhos; e o Pix Automático em conta-salário, em 1º de julho de 2027. Quem mantém integração de cobrança tem um ano para tratar pagamento duplicado como caso normal de fluxo, e não como exceção que alguém resolve no suporte.
O que eu faria com isso esta semana
- Ver o aviso de kernel da sua distribuição, não o número do upstream. Se você tem host compartilhado, runner de CI que roda código de pull request ou container de cliente, essa atualização passa na frente do resto da fila. E se a sua receita de endurecimento desliga namespace de usuário sem privilégio, lembre que isso cobre três das quatro falhas, não as quatro.
- Atualizar o plugin da Acronis hoje, se você usa cPanel ou Plesk. Esse não é risco teórico como o do kernel: entrou no catálogo da CISA porque já houve ataque direcionado. Build 1.9.3.1021 no cPanel, 1.8.11.638 no Plesk.
- Abrir os workflows públicos e procurar
pull_request_target. Em 2 de novembro o GitHub liga a regra padrão, e é melhor descobrir agora, em modo de avaliação, o que ela quebra. Aproveite a mesma passada para fixarubuntu-24.04onde o build for sensível, ou testar emubuntu-26.04antes da migração de outubro. - Se for atualizar para o Java 27, medir container pequeno antes. O coletor padrão mudou para quem roda com menos de 1792 MB, que é metade dos containers Java que eu vejo. Meça pausa e memória no limite real do container, não na sua máquina. Mesma passada serve para ligar o cabeçalho compacto e ver quanto de heap sobra.
Radar é a newsletter semanal deste blog: o que aconteceu na semana em tecnologia, com comentário sobre o que muda para quem constrói e opera software.
- Linux
- Java
- Cloudflare
- segurança
- npm