PT-2026-50684 · Grav · Grav

CVE-2026-55890

·

Publicado

2026-06-18

·

Atualizado

2026-07-10

CVSS v3.1

4.8

Média

VetorAV:N/AC:L/PR:H/UI:R/S:C/C:L/I:L/A:N
Nome do Software Vulnerável e Versões Afetadas Grav versões 1.7.52 até 2.0
Descrição Uma correção incompleta para um problema de Cross-Site Scripting (XSS) armazenado permite que usuários com permissões admin.pages injetem CSS não sanitizado no atributo style de imagens por meio de ações de mídia Markdown. Embora o método attribute() tenha sido corrigido para negar atributos perigosos, a função irmã style() permanece acessível através do mesmo pipeline de ação de excerto Markdown e escreve strings controladas pelo editor diretamente na tag <img> renderizada, sem sanitização.
Isso permite que um invasor execute um payload de CSS armazenado que afeta usuários com privilégios mais altos, como administradores ou super-administradores, quando eles visualizam a página afetada. Os impactos potenciais incluem:
  • Sobreposições de phishing que cobrem a interface do administrador.
  • Redesenho de UI ou clickjacking, sequestrando cliques em botões.
  • Exfiltração de dados usando seletores CSS contra campos de formulário.
  • Negação de serviço persistente da interface do administrador.
O problema ocorre porque a função style() não valida a entrada e o método Security::detectXssFromArray() no AdminController::savePage() não detecta o payload baseado em Markdown.
Recomendações Para as versões 1.7.52 até 2.0, aplique um portão de validação à função style() usando uma lista de negação para rejeitar propriedades CSS perigosas, como position:, @import, url(, expression(, -moz-binding, behavior:, z-index:, fixed e absolute. Como medida paliativa temporária, restrinja o uso do parâmetro ?style= na sintaxe de imagem Markdown para minimizar o risco de exploração.

Exploit

Correção

XSS

Encontrou algum problema na descrição? Tem algo a acrescentar? Fique à vontade para nos escrever 👾

Enumeração de Fraquezas

Identificadores relacionados

CVE-2026-55890
GHSA-PMF8-G7C8-7V54

Produtos afetados

Grav