O objetivo `/api/icon/getDynamicIcon` é explicitamente excluído da autenticação no router do kernel do SiYuan (`router.go`, "їїї ї ї" -- não é necessário qualquer autunidade). Quando chamado com `type= 8 ` e um parâmetro de bloqueio válido `id`, este endpoint invoca `RenderDynamicIconContentTemplate`, que executa um modelo Go que inclui as funções `querySQL` e `queryBlocks`. Estas funções executam instruções SELECT arbitrárias contra o banco de dados SQLite SiYuan. Um atacante não autenticado que conhece um ID de bloco válido pode exfiltrar todo o conteúdo da nota do usuário, etiquetas, referências de ativos e atributos de bloqueio do banco de dados. ** Causa do rodo -- kernel/ api/router.go, linha 37:**. `` ``go //............................................................................................................................ 1. `getDynamicIcon` (kernel/ api/ icon.go) verifica ` type= 8 ` and chame `model.RenderDynamicIconContentTemplate(content, id)` quando `content' contém `.action{`.

2. ` RenderDynamicIconContentTemplate` (kernel/ model/ template.go: 264 ) analisa o `content` como um modelo Go. O mapa de funções do modelo inclui `querySQL` e `queryBlocks` registrados via `sql.SQLTemplateFuncs`. 3. `querySQL` chama `Query(stmt, 1024 )` (kernel/sql/block_query.go) que executa a instrução SQL contra o banco de dados SQLite contendo todas as notas do usuário. 4. O resultado SQL é renderizado no corpo de resposta SVG e retornado ao chamador não autêntico.

**Constracto:** O parâmetro bloco `id` deve ser um ID de bloco válido que existe no banco de dados. Os IDs dos blocos são 22 - caracteres de strings no formato `YYYYMMDDHHMMSS-XXXXXXX` (timestamp + 7 Caracters alfanuméricos). Os ID válidos estão incorporados em URLs de documentos compartilhados e podem ser vazados através de qualquer outro endpoint autenticado, cabeçalhos de referência ou histórico do navegador. **Testado no SiYuan v 3.6.5 (Docker, modo de serviço em rede, código de auth de acesso ativado):** ``` GET /api/ icon/getDynamicIcon?type= 8 &content=.action{querySQL+"SELECTION+id, content+FROM+blocks+LIMIT+ 5 "}&id= Host: siyuan.exemplo.com (Sem cabeçalho de autorização) ```.

Resposta (SVG com dados exfiltrados incorporados): ``` xml [ mapa[ id: 20260524010447 - jc 9 ypd 4 conteúdo: teste] mapa[id: 20260524011002 - ttaa 7 conteúdo de lu: Minha senha é SuperSecret 123 "] ``` A função do modelo `querySQL` pode consultar qualquer tabela: `blocks` (todo o conteúdo da nota e metadados), `spans` (tags), `assets' (referências de ativos), `attributos' (atributos de bloqueio), e `refs' (links de trás). ```bash TARGET=' 6806 " BLOCK_ID="KNOWN_BLOCK_ID_HERE" # De um link compartilhado ou de outra fonte.

# Lista todas as tabelas de banco de dados enrolando -s "${TARGET}/api/icon/getDynamicIcon?type= 8 & conteúdo=. ação% 7 BquerySQL+% 22 SELECCIONE+nome+FROM+sqlite_master+WHERE+tipo% 3 D% 27 tabela% 27% 22% 7 D&id=${BLOCK_ID}" # Exibe o conteúdo de todas as notas do curl -s "${TARGET}/api/icon/getDynamicIcon?type= 8 & conteúdo=. ação% 7 BquerySQL+% 22 SELECTION+id% 2 Ctipo% 2 Ccontent+FROM+bloques+LIMIT+ 100% 22% 7 D&id=${BLOCK_ ID}" ``` ** Roteiro PoC:** `/home/mrrobot/GoogleDrive/vuln-research/siyuan/scripts/poc_getDynamicIcon_sqli.sh`. Qualquer instância SiYuan reencontrada na rede (o Docker implementa padrão para ` 0.0.0.0: 6806 `) é vulnerável a completar a exfiltração de conteúdo de notas sem autenticação, desde que o atacante possa obter um ID de bloco válido. Os IDs de blocos são vazados em URLs de documentos compartilhados, imagens incorporadas referindo IDs de blocos e histórico do navegador. Num cenário de implantação em rede (por exemplo, um SiYuan auto- hospedado acessível a partir da internet), todas as notas pessoais, etiquetas e metadados estão expostos a atacantes não autenticados.

Esta vulnerabilidade é distinta dos problemas de injeção SQL previamente relatados (GHSA-j 7 wh- x 834 - p 3 r 7 ) que visava a API de pesquisa. O objetivo `getDynamicIcon` nunca foi destinado a executar consultas SQL, mas ganhou essa capacidade através da função de modelo `querySQL` registrada para o renderizador de modelo de ícones. Registro de aconselhamento: GHSA-gcm 7 - 57 gf- 953 c. Identificadores relacionados: CVE- 2026 - 54068.

Tempo: GitHub Advisory Database publicou este registro em 2026 - 07 - 10 T 19: 26: 00.000 Z e lista a sua última modificação como 2026 - 07 - 10 T 19: 26: 00.000 Z. Gravidade: MODERAR. Dados de pontuação publicados: CVSS_V 3: CVSS: 3.1 /AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N.

Informações sobre software e versão afetadas: Go package github.com/siyuan-note/siyuan/kernel — ECOSISTEM: introduzido 0, corrigido 0.0.0 - 20260628153353 - 2 d 5 d 72223 df 4. Classificação e evidência: identificadores de fraqueza CWE- 306. O registro contém 3 suporte de referências nestes tipos: WEB, AVISO, EMBALAGAMENTO.