{"id":"GHSA-989h-w3q9-3m2f","kind":"vulnerability","aliases":["GHSA-989h-w3q9-3m2f"],"related":[],"title":"Duplicate Advisory: SiYuan: Missing consistency check between packageName and repoURL/repoHash in bazaar package install allows overwriting an existing, trusted plugin","description":"## Duplicate Advisory\n\nThis advisory has been withdrawn because it is a duplicate of GHSA-rpx2-p6hp-x5gj. This link is maintained to preserve external references.\n\n## Original Description\nSiYuan versions before v3.7.4 fail to validate that packageName matches the downloaded package content in bazaar install endpoints. Attackers with same-origin access can overwrite existing trusted plugins by supplying mismatched packageName and repoURL parameters, achieving persistence across application restarts.","summary":"SiYuan, a note-taking app, does not check that the package name matches the downloaded plugin content in its bazaar install endpoints. An attacker with same-origin access can overwrite an existing trusted plugin and keep that change across restarts.","severity":"medium","cvss":6.599999904632568,"epss":null,"exploited":false,"exploited_at":null,"products":[{"name":"github.com/siyuan-note/siyuan/kernel","fixed":[],"affected":"< 3.7.4","ecosystem":"go"}],"ecosystems":["go"],"tags":["cwe-345","desktop","package","self-hosted","siyuan"],"not_affected_if":["version-3.7.4-or-later"],"how_to_check":null,"fix":"Upgrade SiYuan to v3.7.4 or later. This advisory is withdrawn as a duplicate of GHSA-rpx2-p6hp-x5gj, so check that advisory for the authoritative fix details.","status":"withdrawn","published_at":"2026-08-22T15:31:02+00:00","first_seen_at":"2026-10-23T19:11:31+00:00","triaged_at":"2026-10-23T21:46:03+00:00","updated_at":"2026-10-23T21:46:03+00:00","category":"package","confidence":0.6,"triage":{"at":"2026-10-23T21:46:03Z","model":"claude-haiku-5-5","output":{"fix":"Upgrade SiYuan to v3.7.4 or later. This advisory is withdrawn as a duplicate of GHSA-rpx2-p6hp-x5gj, so check that advisory for the authoritative fix details.","reach":"network","impact":"medium","summary":"SiYuan, a note-taking app, does not check that the package name matches the downloaded plugin content in its bazaar install endpoints. An attacker with same-origin access can overwrite an existing trusted plugin and keep that change across restarts.","category":"package","who_cares":["siyuan","self-hosted","desktop"],"confidence":0.6,"needs_auth":"yes","worst_case":"attacker overwrites trusted plugin code that persists across restarts","analyst_note":"","how_to_check":"unknown","needs_analyst":false,"not_affected_if":["version-3.7.4-or-later"],"user_interaction":"unknown","needs_special_setup":"unknown","severity_if_unknown":"medium"},"cost_usd":0.000465,"input_tokens":2947,"output_tokens":341,"severity_before":"medium"},"analyst_status":null,"analyst_note":null,"search":"'-345':35B '/siyuan-note/siyuan/kernel':33A '3m2f':25A,30A '989h':23A,28A 'access':71B,135C 'achiev':148C 'across':82B,150C 'advisori':2A,85C,87C 'allow':15A 'app':47B 'applic':151C 'attack':66B,130C 'bazaar':12A,62B,127C 'chang':81B 'check':6A,50B 'consist':5A 'content':59B,125C 'cwe':34B 'descript':111C 'desktop':36B 'download':57B,123C 'duplic':1A,84C,95C 'endpoint':64B,129C 'exist':18A,75B,138C 'extern':108C 'fail':116C 'ghsa':22A,27A,98C 'ghsa-989h-w3q9-3m2f':21A,26A 'ghsa-rpx2-p6hp-x5gj':97C 'github.com':32A 'github.com/siyuan-note/siyuan/kernel':31A 'host':40B 'instal':14A,63B,128C 'keep':79B 'link':103C 'maintain':105C 'match':55B,121C 'mismatch':143C 'miss':4A 'name':54B 'note':45B 'note-tak':44B 'origin':70B,110C,134C 'overwrit':16A,73B,137C 'p6hp':100C 'packag':13A,37B,53B,124C 'packagenam':8A,120C,144C 'paramet':147C 'persist':149C 'plugin':20A,58B,77B,140C 'preserv':107C 'refer':109C 'repourl':146C 'repourl/repohash':10A 'restart':83B,152C 'rpx2':99C 'same-origin':68B,132C 'self':39B 'self-host':38B 'siyuan':3A,41B,42B,112C 'suppli':142C 'take':46B 'trust':19A,76B,139C 'v3.7.4':115C 'valid':118C 'version':113C 'w3q9':24A,29A 'withdrawn':90C 'x5gj':101C","nicknames":[],"mitigations":[],"who_affected":null,"tier":null,"verified":{},"analyst_revisit_at":null,"first_public_at":"2026-08-22T15:31:02+00:00","kev":null,"cvss_vector":"CVSS:3.1/AV:L/AC:H/PR:L/UI:R/S:C/C:L/I:H/A:L","cvss_by":"GitHub","poc_count":0,"sources":[{"source":"ghsa","external_id":"GHSA-989h-w3q9-3m2f","url":"https://github.com/advisories/GHSA-989h-w3q9-3m2f","severity":"medium","published_at":"2026-08-22T15:31:02+00:00","modified_at":"2026-10-23T18:35:01+00:00","first_seen_at":"2026-10-23T19:11:31+00:00","fetched_at":"2026-10-23T19:11:31+00:00","note":null}],"documents":[],"notice":"Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai"}