CVE Intelligence
Alta

CVE-2026-98981 — namespace: unhash a dentry before detaching the mounts on it

In the Linux kernel, the following vulnerability has been resolved: namespace: unhash a dentry before detaching the mounts on it unlink(), rmdir() and rename() remove the entry from the filesystem, call detach_mounts() on the entry with the inode locked and then call d_delete() once the inode is unlocked. The thing is that between detach_mounts() and d_delete() the dentry is still hashed and positive. But after detach_mounts() nothing covers the dentry anymore. A lookup that finds this dentry in the dcache can uncover what the mounts hid. That's a problem when unlinking files or directories that are mountpoints in other mount namespaces. Everybody who had the underlying entry covered can race the detach_mount() call until d_delete() has run. The race window isn't all that small. It encompasses namespace_unlock() with a full synchronize_rcu_expedited() grace period and the inode_unlock() of the entry. In my experiments three walkers that kept trying read an overmounted file in 11938 of the 16140 unlinks that removed its mountpoint from a bind mount of the filesystem within a minute. Fun fact, d_invalidate() has the same ordering problem but gets it right. It unhashes the dentry first and detaches the mounts afterwards. Let's do the same in __detach_mounts(): - A lookup that hasn't found the dentry yet misses it in the dcache and waits for the directory lock that the caller holds until the name is gone for good. - A lockless lookup that found it already fails the mount_lock check while the dentry still counts as a mountpoint and the d_seq check once it doesn't, and retries. This fixes the lockless path. We still need to fix the reference count lookup in a follow-up patch. So d_drop() the dentry. The dentry stays positive and held but can't be found anymore. Then proceed with the detach and unlink. Reproducer: The reads were counted with the program below, three walkers for 60 s in a VM with 4 CPUs. The race window is stretched with the debug patch pasted here. fs.detach_race_walk_us sleeps in lookup_fast() once it found a mountpoint dentry and before its mounts are crossed. fs.detach_race_unlink_us sleeps in vfs_unlink() between detach_mounts() and d_delete(). // SPDX-License-Identifier: GPL-2.0 /* * unlink_covered: unlink a file that is a mountpoint in a detached copy of * its mount, against lookups that open it through that copy. * * A is a tmpfs with the file f1 (content SECRET_F) and the plain file * MARK_A. A' is an open_tree(OPEN_TREE_CLONE) copy of A with MARK_A bound * on A'/f1, held through an O_PATH fd on its root once the tree fd is * closed. Walkers open f1 through that fd while the driver unlinks A/f1, * where nothing is mounted on it. A walker may read MARK_A or get ENOENT. * A read of SECRET_F is a hit: the name was found after its mount was * gone. The lockless walks use openat2(RESOLVE_CACHED). * * usage: unlink_covered [-t seconds] [-w walkers] */ #ifndef _GNU_SOURCE #define _GNU_SOURCE #endif #include <errno.h> #include <fcntl.h> #include <pthread.h> #include <stdatomic.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <sys/mount.h> #include <sys/stat.h> #include <sys/syscall.h> #include <linux/openat2.h> #ifndef __NR_open_tree #define __NR_open_tree 428 #endif #ifndef __NR_move_mount #define __NR_move_mount 429 #endif #ifndef __NR_openat2 #define __NR_openat2 437 #endif #ifndef OPEN_TREE_CLONE #define OPEN_TREE_CLONE 1 #endif #ifndef OPEN_TREE_CLOEXEC #define OPEN_TREE_CLOEXEC O_CLOEXEC #endif #ifndef MOVE_MOUNT_F_EMPTY_PATH #define MOVE_MOUNT_F_EMPTY_PATH 0x00000004 #endif #define WORK "/tmp/uc" #define ADIR WORK "/A" static int duration = 60, nwalkers = 3; static atomic_int stop, writer_waiting; static pthread_rwlock_t cur_lock = PTHREAD_RWLOCK_INITIALIZER; static int cur_fd = -1; /* the root of A', -1 wh ---truncated---

Descrição oficial em inglês (tradução ainda não revisada).

Publicada em 23/10/2026 · Atualizada em 30/10/2026 · Fontes: NIST National Vulnerability Database, CVE Program (cve.org) e CISA ADP, GitHub Security Advisories · CNA: Linux

Quem explora e qual a prioridade

Nota de 0 a 100 que combina exploração confirmada, uso por ransomware e grupos APT, exploits públicos, EPSS e severidade.

Nenhum sinal de exploração nas fontes consultadas até agora.
Como a nota foi calculada
  • EPSS 0.2% (probabilidade de exploração em 30 dias)+1
  • Severidade técnica (high)+6

A nota ordena a fila de correção; não substitui o contexto dos seus ativos (exposição à internet, criticidade, compensações).

Triagem

Está sendo explorada, qual a probabilidade de exploração, o que afeta e qual a severidade segundo as fontes.

Exploração
Não confirmada
Fora da CISA KEV — ausência de registro, não prova de que não é explorada.
EPSS FIRST
0,16%
à frente de 6% das CVEs pontuadas · 30/10/2026
Afeta
Linux
Linux
CVSS base
8.8
Alta · 3 fonte(s)

Remediação

Correções e mitigações documentadas pelas fontes — com link para o aviso original.

Nenhuma correção documentada pelas fontes consultadas. Isso não significa que não exista: verifique o aviso do fabricante.

Primeiras 24 horas

Ordenado a partir dos próprios campos do registro — exposição primeiro, porque não se corrige o que não se encontrou. Ponto de partida, gerado por regras.

  1. Identifique ativos expostos que executam as combinações de fabricante/produto/versão afetadas (Linux Linux).
  2. Nenhuma correção documentada nas fontes: reduza a exposição e monitore o aviso do fabricante.
  3. Procure nos logs disponíveis sinais de tentativa de exploração, erros e anomalias de autenticação.

Escopo afetado

Fabricante, produto e versões como as fontes os descrevem.

FabricanteProdutoVersõesStatusFonte
Linux Linux ≥ 8ed936b5671bfb33d89bc60bdcc7cf0470ba52fe e < db90eecbde319527aa9480c039d32a0f5fe80574≥ 8ed936b5671bfb33d89bc60bdcc7cf0470ba52fe e < 8d71bfc9b3fc15d7103e82ea9dc5057541866e46≥ 8ed936b5671bfb33d89bc60bdcc7cf0470ba52fe e < d29cd99db3db74cf3447be74d25740981789d461≥ 8ed936b5671bfb33d89bc60bdcc7cf0470ba52fe e < 8300de4aa5d09061bfcf2af5b52c0cdba3873185≥ 8ed936b5671bfb33d89bc60bdcc7cf0470ba52fe e < 528b383dc35d1e5caf64ddf5d35f983ae543b0d0versão 3.18≥ 8ed936b5671bfb33d89bc60bdcc7cf0470ba52fe e < b3fa3811ffffa130586c4ff8f7299b7fc69216d5≥ 8ed936b5671bfb33d89bc60bdcc7cf0470ba52fe e < 97cc290c57ea04337fd33912d780367add41525c
e mais 1 ≥ 8ed936b5671bfb33d89bc60bdcc7cf0470ba52fe e < bb917ec497f6099c6cb9375596e085a5f6b52ff2
Vulnerável CVE Program (cve.org) e CISA ADP

Características do ataque

O vetor CVSS decodificado. Descreve o ataque, não a sua exposição a ele.

Vetor de ataque
Local
Complexidade
Baixa
Privilégios exigidos
Baixos
Interação do usuário
Nenhuma
Escopo
Alterado
Confidencialidade
Alto
Integridade
Alto
Disponibilidade
Alto

Todas as pontuações coletadas

As fontes pontuam de forma independente e podem discordar; cada linha diz quem pontuou e em qual versão.

NotaVersãoSeveridadeExplor.ImpactoPontuado por
8.8 CVSS 3.1 Alta 2.0 6.0 416baaa9-dc9f-4396-8d5f-8c081fb06d67 via NIST National Vulnerability Database
8.8 CVSS 3.1 Alta — — GitHub, Inc. via GitHub Security Advisories
8.8 CVSS 3.1 Alta — — Linux via CVE Program (cve.org) e CISA ADP
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H (nota exibida no topo: 416baaa9-dc9f-4396-8d5f-8c081fb06d67)

EPSS ao longo do tempo FIRST

24/10/2026 → 30/10/2026 · 7 leitura(s) · máximo 0.21%

Detecção

Derivado do vetor CVSS e da classe da fraqueza. Pontos de partida, não regras testadas.

  • Vetor local/físico: concentre-se em telemetria de endpoint (EDR) dos hosts afetados.
telemetria de endpoint (EDR)

Linha do tempo

O que aconteceu com esta CVE, do mais recente ao mais antigo.

  • 2026
  • Produtos afetados adicionados · linux/linux
    30/10/2026 · CVE Program (cve.org) e CISA ADP
  • CVSS alterado · 8.8
    24/10/2026 · NIST National Vulnerability Database
  • Ficha publicada
    23/10/2026
  • Produtos afetados adicionados · linux/linux
    23/10/2026 · CVE Program (cve.org) e CISA ADP
  • Status na fonte alterado · → Received
    23/10/2026 · NIST National Vulnerability Database
  • Registro criado nesta base
    23/10/2026 · Alertas do Telegram
  • CVE publicada
    23/10/2026 · Linux

Atividade das fontes

Leituras que se repetem foram contadas em vez de listadas.

  • 3× Referências adicionadas · 23/10/2026 – 30/10/2026
  • 1× Descrição oficial atualizada · 23/10/2026 – 23/10/2026

Referências

10 no registro

Em outras páginas do site

Linux
todas as CVEs deste fabricante

CVEs relacionadas (mesmos produtos)

  • Desconhecida CVE-2026-99216 Drivers: hv: Don't reset VMBus connection state on error/exit paths 3 d
  • Desconhecida CVE-2026-99215 power: supply: core: prevent unregistering a power supply while a callback runs 3 d
  • Desconhecida CVE-2026-99207 scsi: target: Disable interrupts while holding delayed_cmd_lock 3 d
  • Desconhecida CVE-2026-99208 drm/xe/oa: Zero OA buffer at allocation 3 d
  • Desconhecida CVE-2026-99209 drm/xe: skip eviction of a BO with no resource 3 d
  • Desconhecida CVE-2026-99210 accel/rocket: clear rdev on device init failure 3 d

Não consta em nenhuma fonte consultada

Listado em vez de deixado em branco: um campo vazio e um não medido parecem iguais na tela, e só um deles é motivo para procurar em outro lugar.

  • Nenhuma versão corrigida, patch ou mitigação documentada.
  • Sem avaliação SSVC da CISA.
  • Sem classificação CWE.
  • Nenhum IOC confirmado (IPs, domínios, hashes ou artefatos de malware) fornecido.
  • Nenhum inventário de ativos, controle compensatório ou evidência de implantação de patch da sua organização.
  • Nenhuma captura de tráfego de exploração, amostra de log ou caso de incidente.

Respondido a partir deste registro

Texto montado apenas com os campos acima — sem afirmações adicionais.

O que os defensores devem saber primeiro?

CVE-2026-98981 é "namespace: unhash a dentry before detaching the mounts on it", de severidade Alta. Afeta Linux (Linux); as versões estão na tabela de escopo. Não está na CISA KEV, o que não exclui exploração. CVSS 8.8 descreve a severidade técnica. EPSS 0.16% estima a probabilidade de exploração em 30 dias; nenhum dos dois substitui o contexto dos seus ativos. Verifique primeiro se ativos expostos ou críticos executam as versões afetadas, aplique as correções ou mitigações do fabricante e preserve logs para análise.

Comentários

Discussão técnica moderada. Leia as regras da comunidade.

Nenhum comentário ainda.

Entre ou crie uma conta para comentar e sugerir correções.