{"id":"GHSA-pmwq-pjrm-6p5r","aliases":["GO-2026-5547"],"status":"published","title":"in-toto-golang and in-toto-python have inconsistent negation behavior","description":"### Impact\n_What kind of vulnerability is it? Who is impacted?_\n\nin-toto-golang and in-toto-python both support glob patterns in artifact rules to indicate the artifacts that a rule applies to. Both support negations in character classes to indicate what should *not* be matched, but they used different operators to indicate the negation. in-toto-python uses `!` while in-toto-golang used `^`. A layout authored with the expectations of one implementation can therefore exhibit different behavior in the other implementation.\n\nThis impacts users in a specific set of circumstances where two different implementations are used to verify the same layout + attestation bundle at different stages of the same pipeline. As a rule of thumb, we advise using a single implementation across all aspects of a pipeline, from layout creation to pipeline execution and verification to prevent this class of bugs.\n\n### Patches\n_Has the problem been patched? What versions should users upgrade to?_\n\nin-toto-golang has been updated to use `!` instead of `^` to indicate negation. See https://github.com/in-toto/in-toto-golang/pull/462. This is part of v0.11.0.","severity":{"version":"3.1","score":4.1,"vector":"CVSS:3.1/AV:L/AC:H/PR:H/UI:N/S:U/C:N/I:H/A:N","level":"medium","from":"ghsa"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-168"],"published":"2026-05-08T22:24:19Z","modified":"2026-09-10T03:51:06Z","fixes":[{"ecosystem":"Go","package":"github.com/in-toto/in-toto-golang","fixed_in":["0.11.0"],"sources":["ghsa","osv"]}],"affected":[{"source":"ghsa","ecosystem":"Go","package":"github.com/in-toto/in-toto-golang","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0.11.0"}]}]},{"source":"osv","ecosystem":"Go","package":"github.com/in-toto/in-toto-golang","ranges":[{"type":"SEMVER","events":[{"introduced":"0"},{"fixed":"0.11.0"}]}]},{"source":"osv","ecosystem":"Go","package":"github.com/in-toto/in-toto-golang","ranges":[{"type":"SEMVER","events":[{"introduced":"0"},{"fixed":"0.11.0"}]}]}],"references":[{"url":"https://github.com/in-toto/in-toto-golang/security/advisories/GHSA-pmwq-pjrm-6p5r","tags":["web","advisory"]},{"url":"https://github.com/in-toto/in-toto-golang/pull/462","tags":["web","fix"]},{"url":"https://github.com/in-toto/in-toto-golang/commit/36d782ffb2ca3adbffcdce1fd971c23319dd4469","tags":["web","fix"]},{"url":"https://github.com/advisories/GHSA-pmwq-pjrm-6p5r"},{"url":"https://github.com/in-toto/in-toto-golang","tags":["package"]}],"sources":{"ghsa":[{"id":"GHSA-pmwq-pjrm-6p5r","title":"in-toto-golang and in-toto-python have inconsistent negation behavior","description":"### Impact\n_What kind of vulnerability is it? Who is impacted?_\n\nin-toto-golang and in-toto-python both support glob patterns in artifact rules to indicate the artifacts that a rule applies to. Both support negations in character classes to indicate what should *not* be matched, but they used different operators to indicate the negation. in-toto-python uses `!` while in-toto-golang used `^`. A layout authored with the expectations of one implementation can therefore exhibit different behavior in the other implementation.\n\nThis impacts users in a specific set of circumstances where two different implementations are used to verify the same layout + attestation bundle at different stages of the same pipeline. As a rule of thumb, we advise using a single implementation across all aspects of a pipeline, from layout creation to pipeline execution and verification to prevent this class of bugs.\n\n### Patches\n_Has the problem been patched? What versions should users upgrade to?_\n\nin-toto-golang has been updated to use `!` instead of `^` to indicate negation. See https://github.com/in-toto/in-toto-golang/pull/462. This is part of v0.11.0.","status":"published","published":"2026-05-08T22:24:19Z","modified":"2026-05-08T22:24:19Z","cvss":[{"version":"3.1","score":4.1,"vector":"CVSS:3.1/AV:L/AC:H/PR:H/UI:N/S:U/C:N/I:H/A:N","level":"medium"}],"cwes":["CWE-168"],"updated_at":"2026-11-02T14:40:05.816188Z"}],"osv":[{"id":"GHSA-pmwq-pjrm-6p5r","title":"in-toto-golang and in-toto-python have inconsistent negation behavior","description":"### Impact\n_What kind of vulnerability is it? Who is impacted?_\n\nin-toto-golang and in-toto-python both support glob patterns in artifact rules to indicate the artifacts that a rule applies to. Both support negations in character classes to indicate what should *not* be matched, but they used different operators to indicate the negation. in-toto-python uses `!` while in-toto-golang used `^`. A layout authored with the expectations of one implementation can therefore exhibit different behavior in the other implementation.\n\nThis impacts users in a specific set of circumstances where two different implementations are used to verify the same layout + attestation bundle at different stages of the same pipeline. As a rule of thumb, we advise using a single implementation across all aspects of a pipeline, from layout creation to pipeline execution and verification to prevent this class of bugs.\n\n### Patches\n_Has the problem been patched? What versions should users upgrade to?_\n\nin-toto-golang has been updated to use `!` instead of `^` to indicate negation. See https://github.com/in-toto/in-toto-golang/pull/462. This is part of v0.11.0.","status":"published","published":"2026-05-08T22:24:19Z","modified":"2026-09-10T03:51:06.602952009Z","cvss":[{"version":"3.1","score":4.1,"vector":"CVSS:3.1/AV:L/AC:H/PR:H/UI:N/S:U/C:N/I:H/A:N","level":"medium"}],"cwes":["CWE-168"],"updated_at":"2026-11-02T15:46:53.244788Z"},{"id":"GO-2026-5547","title":"in-toto-golang and in-toto-python have inconsistent negation behavior in github.com/in-toto/in-toto-golang","description":"in-toto-golang and in-toto-python have inconsistent negation behavior in github.com/in-toto/in-toto-golang","status":"published","published":"2026-06-25T22:34:34Z","modified":"2026-06-28T13:59:25.940393639Z","updated_at":"2026-11-02T15:47:02.556545Z"}]}}
