{"id":"CVE-2026-95625","aliases":["EUVD-2026-85170","GHSA-j38x-g3m3-95fr","GHSA-p8c6-29q6-cqw7","UBUNTU-CVE-2026-95625"],"status":"published","title":"Tauri framework v2 missing updater signature version number validation can be exploited into forced downgrade","description":"The Tauri updater plugin verifies update binaries using minisign signatures, but the signature covers only the raw binary bytes. The update manifest -- which contains the version number, download URL, and signature -- is fetched over TLS but is never itself signed or authenticated. Because the only anti-rollback check compares the manifest's version field against the current version, and that field is unsigned, an attacker who can serve a crafted manifest can force installation of any older signed release without possessing the developer's private key.","severity":{"version":"3.1","score":5.9,"vector":"CVSS:3.1/AV:N/AC:H/PR:H/UI:N/S:U/C:H/I:H/A:N","level":"medium","assessor":"cna","from":"cve"},"epss":{"day":"2026-11-12","score":0.00156,"percentile":0.04858,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":false},"cwes":["CWE-354"],"published":"2026-09-23T08:51:53Z","modified":"2026-10-28T02:31:12Z","affected":[{"source":"osv","ecosystem":"Ubuntu:24.04:LTS","package":"minisign","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["0.11-1"]},{"source":"osv","ecosystem":"Ubuntu:26.10","package":"minisign","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["0.12-1build1","0.12-1build2"]},{"source":"osv","ecosystem":"Ubuntu:26.04:LTS","package":"minisign","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["0.12-1","0.12-1build1"]}],"products":[{"vendor":"tauri","product":"tauri-plugin-updater"}],"references":[{"url":"https://github.com/tauri-apps/plugins-workspace/security/advisories/GHSA-j38x-g3m3-95fr","tags":["issue-tracking","report"]},{"url":"https://github.com/tauri-apps/plugins-workspace","tags":["product","package","report"]},{"url":"https://github.com/tauri-apps/plugins-workspace/commit/690dcfd694","tags":["patch","fix","report"]},{"url":"https://github.com/tauri-apps/plugins-workspace/releases/tag/updater-v2.12.0","tags":["release-notes","advisory","report"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-95625","tags":["advisory"]},{"url":"https://github.com/advisories/GHSA-p8c6-29q6-cqw7"},{"url":"https://crates.io/crates/tauri-plugin-updater","tags":["web"]},{"url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/95xxx/CVE-2026-95625.json","tags":["advisory"]},{"url":"git://github.com/tauri-apps/plugins-workspace","tags":["package"]},{"url":"https://ubuntu.com/security/CVE-2026-95625","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-95625","tags":["report"]}],"sources":{"cve":[{"id":"CVE-2026-95625","title":"Tauri framework v2 missing updater signature version number validation can be exploited into forced downgrade","description":"The Tauri updater plugin verifies update binaries using minisign signatures, but the signature covers only the raw binary bytes. The update manifest -- which contains the version number, download URL, and signature -- is fetched over TLS but is never itself signed or authenticated. Because the only anti-rollback check compares the manifest's version field against the current version, and that field is unsigned, an attacker who can serve a crafted manifest can force installation of any older signed release without possessing the developer's private key.","status":"published","published":"2026-09-23T08:51:53.922Z","modified":"2026-09-23T14:10:35.332Z","cvss":[{"version":"3.1","score":5.9,"vector":"CVSS:3.1/AV:N/AC:H/PR:H/UI:N/S:U/C:H/I:H/A:N","level":"medium","assessor":"cna"}],"cwes":["CWE-354"],"updated_at":"2026-11-02T14:20:05.505362Z"}],"euvd":[{"id":"EUVD-2026-85170","description":"The Tauri updater plugin verifies update binaries using minisign signatures, but the signature covers only the raw binary bytes. The update manifest -- which contains the version number, download URL, and signature -- is fetched over TLS but is never itself signed or authenticated. Because the only anti-rollback check compares the manifest's version field against the current version, and that field is unsigned, an attacker who can serve a crafted manifest can force installation of any older signed release without possessing the developer's private key.","status":"published","published":"2026-09-23T08:51:53Z","modified":"2026-09-23T14:10:35Z","cvss":[{"version":"3.1","score":5.9,"vector":"CVSS:3.1/AV:N/AC:H/PR:H/UI:N/S:U/C:H/I:H/A:N","level":"medium"}],"updated_at":"2026-11-02T17:28:00.949397Z"}],"ghsa":[{"id":"GHSA-p8c6-29q6-cqw7","title":"The Tauri updater plugin verifies update binaries using minisign signatures, but the signature...","description":"The Tauri updater plugin verifies update binaries using minisign signatures, but the signature covers only the raw binary bytes. The update manifest -- which contains the version number, download URL, and signature -- is fetched over TLS but is never itself signed or authenticated. Because the only anti-rollback check compares the manifest's version field against the current version, and that field is unsigned, an attacker who can serve a crafted manifest can force installation of any older signed release without possessing the developer's private key.","status":"published","published":"2026-09-23T09:30:31Z","modified":"2026-09-23T09:30:37Z","cvss":[{"version":"3.1","score":5.9,"vector":"CVSS:3.1/AV:N/AC:H/PR:H/UI:N/S:U/C:H/I:H/A:N","level":"medium"}],"cwes":["CWE-354"],"updated_at":"2026-11-02T15:12:19.869437Z"}],"nvd":[{"id":"CVE-2026-95625","description":"The Tauri updater plugin verifies update binaries using minisign signatures, but the signature covers only the raw binary bytes. The update manifest -- which contains the version number, download URL, and signature -- is fetched over TLS but is never itself signed or authenticated. Because the only anti-rollback check compares the manifest's version field against the current version, and that field is unsigned, an attacker who can serve a crafted manifest can force installation of any older signed release without possessing the developer's private key.","status":"published","published":"2026-09-23T09:17:09.393Z","modified":"2026-09-23T19:42:02.35Z","cvss":[{"version":"3.1","score":5.9,"vector":"CVSS:3.1/AV:N/AC:H/PR:H/UI:N/S:U/C:H/I:H/A:N","level":"medium","assessor":"secondary"}],"cwes":["CWE-354"],"updated_at":"2026-11-02T14:12:50.703874Z"}],"osv":[{"id":"CVE-2026-95625","title":"Tauri framework v2 missing updater signature version number validation can be exploited into forced downgrade","description":"The Tauri updater plugin verifies update binaries using minisign signatures, but the signature covers only the raw binary bytes. The update manifest -- which contains the version number, download URL, and signature -- is fetched over TLS but is never itself signed or authenticated. Because the only anti-rollback check compares the manifest's version field against the current version, and that field is unsigned, an attacker who can serve a crafted manifest can force installation of any older signed release without possessing the developer's private key.","status":"published","published":"2026-09-23T08:51:53.922Z","modified":"2026-10-28T02:31:12.845823794Z","cvss":[{"version":"3.1","score":5.9,"vector":"CVSS:3.1/AV:N/AC:H/PR:H/UI:N/S:U/C:H/I:H/A:N","level":"medium"}],"cwes":["CWE-354"],"updated_at":"2026-11-02T15:45:20.931171Z"},{"id":"UBUNTU-CVE-2026-95625","description":"The Tauri updater plugin verifies update binaries using minisign signatures, but the signature covers only the raw binary bytes. The update manifest -- which contains the version number, download URL, and signature -- is fetched over TLS but is never itself signed or authenticated. Because the only anti-rollback check compares the manifest's version field against the current version, and that field is unsigned, an attacker who can serve a crafted manifest can force installation of any older signed release without possessing the developer's private key.","status":"published","published":"2026-09-23T09:17:00Z","modified":"2026-10-17T13:01:19.628259962Z","cvss":[{"version":"3.1","score":5.9,"vector":"CVSS:3.1/AV:N/AC:H/PR:H/UI:N/S:U/C:H/I:H/A:N","level":"medium"}],"updated_at":"2026-11-02T16:57:44.071534Z"}]}}
