UNKNOWNCVE-2026-34585

SiYuan Desktop: XSS armazenado em conteúdo .sy.zip importado leva à execução arbitrária de comandos

Plataforma

go

Componente

github.com/siyuan-note/siyuan/kernel

Corrigido em

0.0.0-20260329142331-918d1bd9f967

### Resumo Uma vulnerabilidade permite que valores de atributos de bloco criados ignorem o escape de atributos do lado do servidor quando uma entidade HTML é misturada com caracteres especiais brutos. Um invasor pode incorporar um valor IAL malicioso dentro de um documento `.sy`, empacotá-lo como um `.sy.zip` e fazer com que a vítima o importe através do fluxo de trabalho normal `Importar -> SiYuan .sy.zip`. Uma vez que a nota é aberta, o atributo malicioso sai de seu contexto HTML original e injeta um manipulador de eventos, resultando em XSS armazenado (Stored XSS). No cliente desktop Electron, este XSS atinge a execução remota de código porque o JavaScript injetado é executado com acesso às APIs Node/Electron. ### Detalhes O problema é causado por uma regressão lógica em `escapeNodeAttributeValues` em `kernel/filesys/tree.go`. Anteriormente, a lógica de escape convertia `node.KramdownIAL` com `parse.IAL2Map(...)` antes de decidir se um valor precisava de escape. Essa conversão desfazia o escape de entidades existentes primeiro, então valores mistos como: ``` &" onmouseenter="alert('IAL-XSS') ``` eram reconhecidos como inseguros e escapados corretamente. A lógica foi alterada para inspecionar os valores brutos de `KramdownIAL` diretamente. A nova implementação `needsEscapeForValue` retorna `false` assim que vê

Como corrigir

Nenhum patch oficial disponível. Procure alternativas ou monitore atualizações.

Monitore suas dependências automaticamente

Receba alertas quando novas vulnerabilidades afetarem seus projetos.

Começar grátis