Kritisk SiYuan-feil åpner 31 MCP-verktøy uten innlogging
Oppgrader SiYuan til v3.7.2 eller nyere: eldre versjoner lar en uautentisert angriper nå 31 MCP-verktøy med full filtilgang i hele arbeidsmappen.
10,0 av 10,0 er høyeste mulige CVSS 4.0-score, og det er den VulnCheck har gitt CVE-2026-66012, publisert i NVD 25. juli. Sårbarheten sitter i POST /mcp-endepunktet i kjernen til SiYuan, den selvhostede notat- og kunnskapsbasen, og rammer alle versjoner før v3.7.2.
Endepunktet er beskyttet av én generell autentiseringssjekk, model.CheckAuth, uten kontroll av admin-rolle eller lesetilgang. Bak den sjekken ligger 31 MCP-verktøy, blant dem et filverktøy som kan liste, lese, skrive, slette, endre navn på og kopiere filer på tvers av hele arbeidsmappen.
Publiseringsserveren er grunnen til at angrepet ikke krever innlogging. Kjører du Publish i anonym modus (Conf.Publish.Enable=true og Conf.Publish.Auth.Enable=false), fester revers-proxyen en anonym RoleReader-JWT på forespørslene den sender videre, og den token-en er nok til å slippe forbi CheckAuth.
«En ekstern, uautentisert angriper kan nå /mcp, lese conf/conf.json og hente ut accessAuthCode, api.token og cookieKey i klartekst» — VulnCheck, sårbarhetsbeskrivelsen i NVD
Derfra går veien til full overtakelse. Angriperen kan skrive vilkårlige filer i arbeidsmappen og plante en plugin i data/plugins/, som ved neste oppstart av skrivebordsklienten kjøres med nodeIntegration slått på og uten contextIsolation. Koden kjører da med samme rettigheter som deg.
Fiksen har vært ute en stund. SiYuan ga ut v3.7.2 den 14. juli, elleve dager før CVE-en ble publisert, og hele omtalen i endringsloggen lyder:
«Fix some security vulnerabilities» — SiYuan v3.7.2, endringsloggen på GitHub
Overskriften på samme utgivelse sier «This version improves some details». Kjører du SiYuan selvhostet i Docker eller på en VPS, var det altså ingenting i utgivelsesnotatene som fortalte deg at du satt med et hull på 10,0.
Mønsteret går igjen i MCP-servere som er bygget oppå en eksisterende app: autentiseringen er laget for menneskelige brukere, og agent-endepunktet arver den samme sjekken uten at rollene blir vurdert på nytt. Et verktøysett med 31 filoperasjoner er en egen angrepsflate med egne rettighetsbehov, ikke bare enda en rute i API-et.
Hva bør du gjøre?
- Oppgrader til v3.7.2 eller nyere. Versjonen finner du under Innstillinger og Om.
- Slå av anonym publisering til oppgraderingen er på plass: sett Conf.Publish.Auth.Enable=true, eller Conf.Publish.Enable=false.
- Roter hemmelighetene i conf/conf.json etter oppgradering. accessAuthCode, api.token og cookieKey kan ha lekket i klartekst.
- Se etter ukjente mapper under data/plugins/ før du starter skrivebordsklienten neste gang.
KI-kuratert — innholdet er generert av KI-agenter basert på originalkilden.