{
  "affected": [
    {
      "ranges": [
        {
          "database_specific": {
            "extracted_events": [
              {
                "introduced": "2.0.0"
              },
              {
                "fixed": "2.12.0"
              }
            ],
            "source": "AFFECTED_FIELD"
          },
          "events": [
            {
              "introduced": "e8069af80401cfc1e90297b786bef05a929ed9a6"
            },
            {
              "fixed": "5baf71a47292d8490f0ba3d53f15224e55c48327"
            }
          ],
          "repo": "git://github.com/tauri-apps/plugins-workspace",
          "type": "GIT"
        },
        {
          "database_specific": {
            "source": "REFERENCES"
          },
          "events": [
            {
              "introduced": "0"
            },
            {
              "fixed": "690dcfd694"
            },
            {
              "fixed": "5baf71a47292d8490f0ba3d53f15224e55c48327"
            }
          ],
          "repo": "https://github.com/tauri-apps/plugins-workspace",
          "type": "GIT"
        }
      ]
    }
  ],
  "aliases": [
    "GHSA-j38x-g3m3-95fr"
  ],
  "database_specific": {
    "cna_assigner": "JFROG",
    "cwe_ids": [
      "CWE-354"
    ],
    "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/95xxx/CVE-2026-95625.json",
    "unresolved_ranges": [
      {
        "extracted_events": [
          {
            "introduced": "2.12.0"
          },
          {
            "last_affected": "*"
          }
        ],
        "source": "AFFECTED_FIELD"
      }
    ]
  },
  "details": "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.",
  "id": "CVE-2026-95625",
  "modified": "2026-09-25T03:30:53.837296112Z",
  "published": "2026-09-23T08:51:53.922Z",
  "references": [
    {
      "type": "WEB",
      "url": "https://crates.io/crates/tauri-plugin-updater"
    },
    {
      "type": "ADVISORY",
      "url": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/95xxx/CVE-2026-95625.json"
    },
    {
      "type": "ADVISORY",
      "url": "https://github.com/tauri-apps/plugins-workspace/releases/tag/updater-v2.12.0"
    },
    {
      "type": "ADVISORY",
      "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-95625"
    },
    {
      "type": "REPORT",
      "url": "https://github.com/tauri-apps/plugins-workspace/security/advisories/GHSA-j38x-g3m3-95fr"
    },
    {
      "type": "FIX",
      "url": "https://github.com/tauri-apps/plugins-workspace/commit/690dcfd694"
    },
    {
      "type": "PACKAGE",
      "url": "git://github.com/tauri-apps/plugins-workspace"
    },
    {
      "type": "PACKAGE",
      "url": "https://github.com/tauri-apps/plugins-workspace"
    }
  ],
  "schema_version": "1.9.0",
  "severity": [
    {
      "score": "CVSS:3.1/AV:N/AC:H/PR:H/UI:N/S:U/C:H/I:H/A:N",
      "type": "CVSS_V3"
    }
  ],
  "summary": "Tauri framework v2 missing updater signature version number validation can be exploited into forced downgrade"
}