CVE Intelligence
Alta

CVE-2026-89493 — ocfs2: validate rl_used against rl_count in refcount block validator

In the Linux kernel, the following vulnerability has been resolved: ocfs2: validate rl_used against rl_count in refcount block validator ocfs2_find_refcount_rec_in_rl() walks the on-disk refcount record array with: for (; i < le16_to_cpu(rb->rf_records.rl_used); i++) { rec = &rb->rf_records.rl_recs[i]; ... rl_recs[] lives in a single metadata block (4096 bytes on the common configuration), so its real capacity is fixed by ocfs2_refcount_recs_per_rb(sb) (247 records for a 4K block with the 16-byte ocfs2_refcount_rec). rl_used and rl_count are both read directly off disk by ocfs2_validate_refcount_block() and are never checked against that capacity, nor against each other, before any refcount/reflink/CoW operation walks the array. A crafted (or corrupted) refcount block with rl_used == 0xffff makes the loop above walk far past the end of the block, dereferencing rl_recs[i] for i up to 65534. The resulting index is then handed to the sibling ocfs2_insert_refcount_rec(), whose insert-shift does: if (index < le16_to_cpu(rf_list->rl_used)) memmove(&rf_list->rl_recs[index + 1], &rf_list->rl_recs[index], (le16_to_cpu(rf_list->rl_used) - index) * sizeof(struct ocfs2_refcount_rec)); i.e. a memmove() of up to (0xffff - index) * 16 bytes (~1 MiB) from an offset already past the block. This is reachable from an ordinary reflink (FICLONE) against a crafted/corrupted ocfs2 image: attaching an extent whose cpos sorts past every real record in the leaf forces the lookup to run off the end instead of returning early on a match. The attacker model is local: CAP_SYS_ADMIN mounting a crafted or corrupted ocfs2 image, or a raw write to the block device backing an already-mounted ocfs2 filesystem. ocfs2_validate_refcount_block() already validates the block's ECC, signature, rf_blkno and rf_fs_generation, but never rl_count/rl_used against the block's actual on-disk capacity. This is the same class of gap that ocfs2_validate_extent_block() (fs/ocfs2/alloc.c) already closes for the sibling extent-list header, which checks both the record capacity and the "used" bound before any code walks h_list.l_recs[]: if (le16_to_cpu(eb->h_list.l_count) != ocfs2_extent_recs_per_eb(sb)) { rc = ocfs2_error(...); goto bail; } if (le16_to_cpu(eb->h_list.l_next_free_rec) > le16_to_cpu(eb->h_list.l_count)) { rc = ocfs2_error(...); goto bail; } Add the equivalent pair of checks to ocfs2_validate_refcount_block(): reject a refcount block whose rl_count does not match the fixed per-block capacity returned by ocfs2_refcount_recs_per_rb(), and reject rl_used > rl_count. Both checks are skipped when OCFS2_REFCOUNT_TREE_FL is set, because in that case the same union bytes hold an ocfs2_extent_list (rf_list), not the refcount record list (rf_records) -- that layout is already validated separately by ocfs2_validate_extent_block() when the referenced extent block is read. This mirrors the existing "!(rb->rf_flags & OCFS2_REFCOUNT_TREE_FL)" guard used elsewhere in this file (e.g. ocfs2_get_refcount_rec()) to decide whether rf_records or rf_list is the live member of the union. With this in place, a forged rl_used/rl_count is caught at block validation time (ocfs2_error()), consistent with every other corruption check in this function, instead of driving an out-of-bounds read in ocfs2_find_refcount_rec_in_rl() and a subsequent out-of-bounds memmove() in ocfs2_insert_refcount_rec(). Verified against a crafted image on a v6.19 KASAN (KASAN_GENERIC) build: replaying the same reflink (FICLONE) reliably hit a KASAN report in __ocfs2_increase_refcount()/ocfs2_insert_refcount_rec() before this patch, and triggers no report once ocfs2_validate_refcount_block() rejects the forged rl_used/rl_count.

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

Publicada em 11/09/2026 · Atualizada em 15/10/2026 · Fontes: NIST National Vulnerability Database, CVE Program (cve.org) e CISA ADP · 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.7% (probabilidade de exploração em 30 dias)+8
  • 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,65%
à frente de 50% das CVEs pontuadas · 15/10/2026
Afeta
Linux
Linux
CVSS base
8.8
Alta · 2 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 ≥ f2c870e3b12e38da6d9b5b17c4c8ae56a0ed68e4 e < f882e9e32d017a6569b2996c63ba3864717788e6≥ f2c870e3b12e38da6d9b5b17c4c8ae56a0ed68e4 e < 5593b63028cb43a6cda75a65ce1db95f00ea6857≥ f2c870e3b12e38da6d9b5b17c4c8ae56a0ed68e4 e < c8b02f4ee91e757b3fff556c7168b24b7ae55132≥ f2c870e3b12e38da6d9b5b17c4c8ae56a0ed68e4 e < 97584e93fc49a2d59252ac60467e9279f11b1b5b≥ f2c870e3b12e38da6d9b5b17c4c8ae56a0ed68e4 e < af56e90cb546cb0c47bef059335365283f61d6a4≥ f2c870e3b12e38da6d9b5b17c4c8ae56a0ed68e4 e < 0761d2c9494424469a0d30a9da3496ca010b0b2d≥ f2c870e3b12e38da6d9b5b17c4c8ae56a0ed68e4 e < 04ead708e13ddcb9c39319cbe02a18cef99cb823≥ f2c870e3b12e38da6d9b5b17c4c8ae56a0ed68e4 e < 4ca62df6bc0708947b48da3f6a712ecb8e73929c
e mais 1 versão 2.6.32
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
Rede
Complexidade
Baixa
Privilégios exigidos
Baixos
Interação do usuário
Nenhuma
Escopo
Inalterado
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.8 5.9 416baaa9-dc9f-4396-8d5f-8c081fb06d67 via NIST National Vulnerability Database
8.8 CVSS 3.1 Alta — — Linux via CVE Program (cve.org) e CISA ADP
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H (nota exibida no topo: 416baaa9-dc9f-4396-8d5f-8c081fb06d67)

Detecção

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

  • Priorize telemetria de borda para o componente exposto na rede (proxy, WAF, IDS/IPS).
logs web/proxy/WAFIDS/IPS de rede

Linha do tempo

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

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

Atividade das fontes

Leituras que se repetem foram contadas em vez de listadas.

  • 1× Descrição oficial atualizada · 15/10/2026 – 15/10/2026

Referências

8 no registro

Em outras páginas do site

Linux
todas as CVEs deste fabricante

CVEs relacionadas (mesmos produtos)

  • Crítica CVE-2026-99999 ipv4: validate checksum_start before completing checksum 16 h
  • Desconhecida CVE-2026-98432 ipv4: free inet_opt and ireq_opt after an RCU grace period 16 h
  • Desconhecida CVE-2026-98431 RDMA/uverbs: Fix mmap_lock/disassociation_lock circular dependency 1 d
  • Desconhecida CVE-2026-98430 RDMA/efa: Keep admin queues alive while IRQ is registered 1 d
  • Desconhecida CVE-2026-98429 RDMA/efa: Keep EQ resources alive while IRQ is registered 1 d
  • Desconhecida CVE-2026-98428 ALSA: usb: 6fire: Avoid embedded URBs 1 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-89493 é "ocfs2: validate rl_used against rl_count in refcount block validator", 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.65% 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.