PT-2026-50684 · Grav · Grav
CVE-2026-55890
·
Publicado
2026-06-18
·
Atualizado
2026-07-10
CVSS v3.1
4.8
Média
| Vetor | AV: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
Produtos afetados
Grav