{"id":"CVE-2026-6966","summary":"Signature Threshold Bypass in awslabs/tough Delegated Roles","details":"Improper verification of cryptographic signature uniqueness in delegated role validation in awslabs/tough before tough-v0.22.0 allows remote authenticated users to bypass the TUF signature threshold requirement by duplicating a valid signature, causing the client to accept forged delegated role metadata.\n\nWe recommend you upgrade to tough-v0.22.0 / tuftool-v0.15.0.","aliases":["GHSA-8m7c-8m39-rv4x"],"modified":"2026-08-12T03:51:28.213734542Z","published":"2026-04-24T19:38:24.907Z","related":["CGA-f4rw-4pgf-xfrg"],"database_specific":{"cwe_ids":["CWE-347"],"osv_generated_from":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/6xxx/CVE-2026-6966.json","cna_assigner":"AMZN"},"references":[{"type":"ADVISORY","url":"https://aws.amazon.com/security/security-bulletins/2026-019-aws/"},{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/6xxx/CVE-2026-6966.json"},{"type":"ADVISORY","url":"https://github.com/awslabs/tough/security/advisories/GHSA-8m7c-8m39-rv4x"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-6966"},{"type":"FIX","url":"https://crates.io/crates/tough/0.22.0"},{"type":"FIX","url":"https://crates.io/crates/tuftool/0.15.0"},{"type":"FIX","url":"https://github.com/awslabs/tough/releases/tag/tough-v0.22.0"},{"type":"FIX","url":"https://github.com/awslabs/tough/releases/tag/tuftool-v0.15.0"}],"affected":[{"ranges":[{"type":"GIT","repo":"https://github.com/awslabs/tough","events":[{"introduced":"0"},{"fixed":"606dc87a8456c8f6e24c4a85e12b280cf2c9ca00"}],"database_specific":{"source":["DESCRIPTION","CPE_RANGE","REFERENCES"],"cpe":["cpe:2.3:a:amazon:tough:*:*:*:*:*:rust:*:*","cpe:2.3:a:amazon:tuftool:*:*:*:*:*:rust:*:*"],"extracted_events":[{"introduced":"0"},{"fixed":"tough-v0.22.0"},{"fixed":"0.22.0"},{"fixed":"0.15.0"}]}}],"versions":["tuftool-v0.14.0","tough-v0.21.0","tough-ssm-v0.16.0","tough-kms-v0.13.0","tuftool-v0.13.0","tough-v0.20.0","tough-ssm-v0.15.0","tough-kms-v0.12.0","tuftool-v0.12.0","tough-v0.19.0","tough-ssm-v0.14.0","tough-kms-v0.11.0","olpc-cjson-v0.1.4","tuftool-v0.11.1","tuftool-v0.11.0","tough-v0.18.0","tough-ssm-v0.13.0","tough-kms-v0.10.0","tough-v0.17.1","tuftool-v0.10.3","tough-v0.17.0","tough-ssm-v0.12.0","tough-kms-v0.9.0","tuftool-v0.10.2","tough-v0.16.0","tough-ssm-v0.11.0","tough-kms-v0.8.0","tuftool-v0.10.1","tough-v0.15.0","tough-ssm-v0.10.0","tough-kms-v0.7.0","tuftool-v0.10.0","tough-v0.14.0","tough-ssm-v0.9.0","tough-kms-v0.6.0","tuftool-v0.9.0","tough-v0.13.0","tough-ssm-v0.8.0","tough-kms-v0.5.0","olpc-cjson-v0.1.3","tuftool-v0.8.2","tough-v0.12.5","tough-ssm-v0.7.2","tough-kms-v0.4.2","olpc-cjson-v0.1.2","tuftool-v0.8.1","tough-v0.12.4","tough-ssm-v0.7.1","tough-kms-v0.4.1","tuftool-v0.8.0","tough-v0.12.3","tough-ssm-v0.7.0","tough-kms-v0.4.0","tuftool-v0.7.2","tough-v0.12.2","tough-ssm-v0.6.6","tough-kms-v0.3.6","tuftool-v0.7.0","tough-v0.12.0","tough-ssm-v0.6.4","tough-kms-v0.3.4","tuftool-v0.6.4","tough-v0.11.3","tough-ssm-v0.6.3","tough-kms-v0.3.3","tuftool-v0.6.3","tough-v0.11.2","tough-ssm-v0.6.2","tough-kms-v0.3.2","tuftool-v0.6.2","tough-v0.11.1","tough-ssm-v0.6.1","tough-kms-v0.3.1","olpc-cjson-v0.1.1","tough-kms-v0.1.1","tuftool-v0.5.0","tough-v0.9.0","tough-ssm-v0.4.0","tough-kms-v0.1.0","tuftool-v0.4.1","tough-v0.8.0","tough-ssm-v0.3.0","tough-v0.7.0","tough-ssm-v0.2.0","tuftool-v0.4.0","tough-ssm-v0.1.0","tough-v0.6.0","tough-v0.5.0","tuftool-v0.3.0","tough-v0.4.0","tuftool-v0.2.0","tough-v0.3.0","tuftool-v0.1.1","tough-v0.2.0","tuftool-v0.1.0","tough-v0.1.0","olpc-cjson-v0.1.0"],"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-6966.json"}}],"schema_version":"1.9.0","severity":[{"type":"CVSS_V4","score":"CVSS:4.0/AV:N/AC:H/AT:P/PR:L/UI:N/VC:N/VI:H/VA:N/SC:N/SI:H/SA:N"}]}