CVE Intelligence
Desconhecida

CVE-2026-90015 — xhci: fix lost bounce buffers on TDs spanning several ring segments

In the Linux kernel, the following vulnerability has been resolved: xhci: fix lost bounce buffers on TDs spanning several ring segments When a TD reaches a link TRB with data that is not aligned to the endpoint's wMaxPacketSize, xhci_align_td() stages the unalignable tail through the bounce buffer of the ring segment holding that link TRB. xhci_unmap_td_bounce_buffer() later unmaps it and, for IN transfers, copies the data back into the URB's buffer. The enqueue path records the segment that was bounced in td->bounce_seg, under the assumption that a TD never spans more than two ring segments. That assumption does not hold: a TD large enough to span three or more segments crosses several link TRBs and can be bounced at each of them. Only the last one survives in td->bounce_seg, so every earlier bounce buffer is neither copied back nor DMA unmapped. The URB still completes with actual_length equal to the requested length and no error, so the transfer looks successful while a wMaxPacketSize sized hole in the destination buffer silently keeps its previous contents. It also leaks a DMA mapping per dropped bounce. Any sufficiently large and fragmented bulk transfer can hit this. It was found with a USB mass storage device behind xHCI backing a dm-verity target with 512 byte hash blocks, where the stale data is detected rather than silently consumed. The device enumerates as SuperSpeed, so wMaxPacketSize is 1024, while dm-bufio issues one 512 byte bio per hash block. verity_prefetch_io() makes the block layer merge hundreds of them into a single request of up to 512 scatterlist entries of 512 bytes each. At 256 TRBs per ring segment such a TD spans three segments, and every segment boundary falls on an odd multiple of 512, i.e. unaligned to wMaxPacketSize. dm-bufio then caches a hash block holding stale data and dm-verity declares the metadata block corrupted: device-mapper: verity: 8:2: metadata block 10850 is corrupted A reproducer running this under qemu is available at https://github.com/baloo/xhci-verity The bounce state (bounce_buf, bounce_dma, bounce_len, bounce_offs) already lives on the ring segment, so there is nothing extra to track. Keep recording the last bounced segment in td->bounce_seg and, on completion, walk the segments from td->start_seg up to it, unmapping every segment that still has a pending bounce. Stopping at td->bounce_seg rather than td->end_seg matters: a bounce implies the TD continues past that segment's link TRB, so bounce_seg is always strictly before end_seg, and a later TD may already have started in end_seg and been bounced there. Walking that far would copy a foreign bounce buffer into this URB and unmap it twice. It also keeps the walk correct if a TD ever wraps the whole ring so that end_seg == start_seg. [mn: Add ring->num_segs check to prevent unlikely infinite for loop.]

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

Publicada em 16/09/2026 · Atualizada em 19/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)+2

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,21%
à frente de 11% das CVEs pontuadas · 19/10/2026
Afeta
Linux
Linux
CVSS base
—
Pontuação ainda não publicada.

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 ≥ f9c589e142d04b8a19eb382162f804d17102b5ed e < c8124b28f12dbdd126118e63d0ebf8093a01fb81≥ f9c589e142d04b8a19eb382162f804d17102b5ed e < e04d5304a248e5d2a7f4faa87541644bdd320cfb≥ f9c589e142d04b8a19eb382162f804d17102b5ed e < a1629dfb011446d02905778f6df19f14c5f4f3b3≥ f9c589e142d04b8a19eb382162f804d17102b5ed e < 43239fc6dfb62c50ae1b9c0e82bac0f8cd2e285c≥ f9c589e142d04b8a19eb382162f804d17102b5ed e < 3c9a2b5a4f1183696f02ac280ced1d34afb409b1≥ f9c589e142d04b8a19eb382162f804d17102b5ed e < efaab8938fb92979be6df359f7d1a43fb7e4717d≥ f9c589e142d04b8a19eb382162f804d17102b5ed e < 7236bbd2cb7d9fc0eda896bbd34790341e2a4377≥ f9c589e142d04b8a19eb382162f804d17102b5ed e < ff44dfb03a293bf30e31f98772a1dd316a6071d1
e mais 1 versão 4.8
Vulnerável CVE Program (cve.org) e CISA ADP

EPSS ao longo do tempo FIRST

15/10/2026 → 19/10/2026 · 4 leitura(s) · máximo 0.21%

Detecção

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

  • Sem vetor ou classe de fraqueza suficientes: use os logs da aplicação afetada como ponto de partida.
logs da aplicação

Linha do tempo

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

  • 2026
  • Ficha publicada
    15/10/2026
  • Produtos afetados adicionados · linux/linux
    15/10/2026 · CVE Program (cve.org) e CISA ADP
  • 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
    16/09/2026 · Linux

Atividade das fontes

Leituras que se repetem foram contadas em vez de listadas.

  • 1× Referências adicionadas · 19/10/2026 – 19/10/2026
  • 1× Descrição oficial atualizada · 15/10/2026 – 15/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-98866 sched/cache: Introduce task_struct->sched_cache_grp to fix UAF 1 d
  • Desconhecida CVE-2026-98867 dm-pcache: bound the logical key offset from persistent memory 1 d
  • Desconhecida CVE-2026-98868 dm-pcache: reject a kset that overruns its segment 1 d
  • Desconhecida CVE-2026-98856 kprobes: Skip disarmed probes when checking optkprobe overlap 1 d
  • Desconhecida CVE-2026-98857 ipvs: bound LBLCR and LBLC cache growth 1 d
  • Desconhecida CVE-2026-98858 io_uring: fix task_work add use-after-free with SQPOLL 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 pontuação CVSS publicada por NVD, CNA, CISA ou GitHub até agora.
  • 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-90015 é "xhci: fix lost bounce buffers on TDs spanning several ring segments", de severidade Desconhecida. 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. EPSS 0.21% 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.