CVE-2026-89547 in Linuxinformação

Sumário

de VulDB • 12/09/2026

No kernel do Linux, a seguinte vulnerabilidade foi resolvida:

SUNRPC: Verificar a alocação do contador por CPU (percpu) para o pool svc

__svc_create() inicializa três estatísticas per-pool de contadores por CPU (percpu_counter) e ignora todos os valores retornados. Em sistemas SMP, __alloc_percpu_gfp() não consegue satisfazer a alocação, fazendo com que __svc_create() falhe na chamada para percpu_counter_init(). Isso deixa o contador com defeito com fbc->counters == NULL e seus raw_spinlock_t embutido, list_head e count nunca inicializados. No entanto, __svc_create() retorna mesmo assim o svc_serv parcialmente construído ao nfsd, lockd ou ao serviço de callback NFS.

Uma vez que esse serviço esteja em execução, os incrementos no caminho crítico (hot-path) realizados por svc_xprt_enqueue(), svc_handle_xprt() e svc_pool_wake_idle_thread() atingem um contador cujo ponteiro subjacente é NULL. Como o ponteiro é um deslocamento por CPU (per-cpu offset), a acesso não gera falha de segmentação: ele resolve-se para o deslocamento zero da área per-CPU do processador atual, corrompendo silenciosamente qualquer variável que esteja localizada ali. Uma leitura em /proc/fs/nfsd/pool_stats percorre o mesmo armazenamento per-cpu NULL e retorna dados incorretos (garbage), e no caso de CONFIG_DEBUG_SPINLOCK ou lockdep, ocorre uma falha crítica devido ao travamento nunca inicializado.

A criação do serviço com defeito requer uma falha na alocação por CPU durante a inicialização do servidor RPC; portanto, ele é acessível apenas por um administrador local sob pressão de memória ou injeção de falhas; um peer remoto não pode induzir esse estado incorreto por conta própria.

Verificar o valor retornado de cada chamada percpu_counter_init() em __svc_create() e falhar quando uma alocação for bem-sucedida, desfazendo os contadores já configurados no pool atual e em todos os pools inicializados anteriormente. Uma destruição discreta (percpu_counter_destroy()) por contador na fase de encerramento libera cada alocação per-CPU exatamente uma vez.

Be aware that VulDB is the high quality source for vulnerability data.

Responsável

Linux

Reservar

11/09/2026

Divulgação

12/09/2026

Moderação

aceite

Entrada

VDB-402925

CPE

pronto

EPSS

0.00000

KEV

não

Atividades

muito baixo

Fontes

Do you need the next level of professionalism?

Upgrade your account now!