{"id":"CVE-2026-128035","kind":"vulnerability","aliases":["CVE-2026-128035"],"related":[],"title":"gittuf: verification ignores later upstream policy changes, letting blocked changes pass","description":"In gittuf 0.10.0 through 0.17.0, the verification workflow does not load policy updates that are propagated from an upstream (controller) repository and recorded in the reference state log after the first entry being verified. Only the propagated policy in effect at the start of verification is applied, so later controller changes to global rules, such as threshold requirements and force-push blocks, are ignored and changes that these rules should block pass verification.","summary":"gittuf verification applies only the propagated policy in effect at the start of checking, and skips later policy updates recorded in the reference state log. As a result, changes that later global rules such as threshold requirements or force-push blocks should reject can pass verification.","severity":"medium","cvss":5.5,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["git","gittuf","package","supply-chain"],"not_affected_if":["default-config"],"how_to_check":"- Check the installed gittuf version with `gittuf version`; versions 0.10.0 through 0.17.0 are affected.\n- Check whether the repository uses propagated policy from an upstream controller repository.","fix":"- Move to a gittuf release later than `0.17.0`; the exact fixed version is unknown from the sources.","status":"open","published_at":"2026-11-13T16:18:58+00:00","first_seen_at":"2026-11-13T16:47:33+00:00","triaged_at":"2026-11-13T16:48:57+00:00","updated_at":"2026-11-13T16:48:57+00:00","category":"package","confidence":0.6,"triage":{"at":"2026-11-13T16:48:57Z","model":"claude-haiku-5-5","output":{"fix":"- Move to a gittuf release later than `0.17.0`; the exact fixed version is unknown from the sources.","reach":"unknown","title":"gittuf: verification ignores later upstream policy changes, letting blocked changes pass","impact":"medium","summary":"gittuf verification applies only the propagated policy in effect at the start of checking, and skips later policy updates recorded in the reference state log. As a result, changes that later global rules such as threshold requirements or force-push blocks should reject can pass verification.","audience":"developers","category":"package","nicknames":[],"who_cares":["gittuf","git","supply-chain"],"confidence":0.6,"fix_status":"unknown","needs_auth":"unknown","worst_case":"Unauthorized changes that global policy should block pass verification.","analyst_note":"Confirm the fixed version and the exact propagation setup from the release notes and vendor advisory.","how_to_check":"- Check the installed gittuf version with `gittuf version`; versions 0.10.0 through 0.17.0 are affected.\n- Check whether the repository uses propagated policy from an upstream controller repository.","plain_action":"","product_name":"","needs_analyst":true,"not_affected_if":["default-config"],"who_is_affected":"Teams that use gittuf to verify Git repositories whose policy is propagated from an upstream controller repository. Repositories without propagated policy from a controller are not described as affected.","user_interaction":"no","product_ecosystem":"","needs_special_setup":"yes","severity_if_unknown":"unknown"},"cost_usd":0.000729,"input_tokens":4620,"output_tokens":534,"severity_before":"medium"},"analyst_status":null,"analyst_note":null,"search":"'-128035':14A,17A '-2026':13A,16A '0.10.0':73C '0.17.0':75C 'appli':26B,117C 'block':9A,65B,133C,142C 'chain':23B 'chang':7A,10A,52B,121C,137C 'check':37B 'control':90C,120C 'cve':12A,15A 'effect':32B,110C 'entri':102C 'first':101C 'forc':63B,131C 'force-push':62B,130C 'git':18B 'gittuf':1A,19B,24B,72C 'global':55B,123C 'ignor':3A,135C 'later':4A,40B,54B,119C 'let':8A 'load':81C 'log':48B,98C 'packag':20B 'pass':11A,69B,143C 'polici':6A,30B,41B,82C,108C 'propag':29B,86C,107C 'push':64B,132C 'record':43B,93C 'refer':46B,96C 'reject':67B 'repositori':91C 'requir':60B,128C 'result':51B 'rule':56B,124C,140C 'skip':39B 'start':35B,113C 'state':47B,97C 'suppli':22B 'supply-chain':21B 'threshold':59B,127C 'updat':42B,83C 'upstream':5A,89C 'verif':2A,25B,70B,77C,115C,144C 'verifi':104C 'workflow':78C","nicknames":[],"mitigations":[],"who_affected":"Teams that use gittuf to verify Git repositories whose policy is propagated from an upstream controller repository. Repositories without propagated policy from a controller are not described as affected.","tier":"C","verified":{},"analyst_revisit_at":null,"fix_status":"unknown","audience":"developers","plain_action":null,"pkeys":[],"ptokens":[],"labels":["git","gittuf","medium","package","supplychain"],"campaign_type":null,"search_a":"'-128035':14A,17A '-2026':13A,16A 'block':9A 'chang':7A,10A 'cve':12A,15A 'gittuf':1A 'ignor':3A 'later':4A 'let':8A 'pass':11A 'polici':6A 'upstream':5A 'verif':2A","search_b":"'appli':26B 'block':65B 'chain':23B 'chang':52B 'check':37B 'effect':32B 'forc':63B 'force-push':62B 'git':18B 'gittuf':19B,24B 'global':55B 'later':40B,54B 'log':48B 'packag':20B 'pass':69B 'polici':30B,41B 'propag':29B 'push':64B 'record':43B 'refer':46B 'reject':67B 'requir':60B 'result':51B 'rule':56B 'skip':39B 'start':35B 'state':47B 'suppli':22B 'supply-chain':21B 'threshold':59B 'updat':42B 'verif':25B,70B","search_c":"'0.10.0':73C '0.17.0':75C 'appli':117C 'block':133C,142C 'chang':121C,137C 'control':90C,120C 'effect':110C 'entri':102C 'first':101C 'forc':131C 'force-push':130C 'gittuf':72C 'global':123C 'ignor':135C 'later':119C 'load':81C 'log':98C 'pass':143C 'polici':82C,108C 'propag':86C,107C 'push':132C 'record':93C 'refer':96C 'repositori':91C 'requir':128C 'rule':124C,140C 'start':113C 'state':97C 'threshold':127C 'updat':83C 'upstream':89C 'verif':77C,115C,144C 'verifi':104C 'workflow':78C","cause_entry":null,"cause_path":null,"disclosures_checked_at":null,"first_public_at":"2026-11-12T19:52:16+00:00","kev":null,"cvss_vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:N","cvss_by":"7fefd608-56a6-419f-a002-fd8543c0710a","poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-128035","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-128035","severity":null,"published_at":"2026-11-13T16:18:58+00:00","modified_at":"2026-11-13T16:18:58+00:00","first_seen_at":"2026-11-13T16:47:33+00:00","fetched_at":"2026-11-13T16:47:33+00:00","note":null}],"documents":[{"id":147647,"url":"https://github.com/gittuf/gittuf/releases/tag/v0.18.0","title":"Release notes: github.com","kind":"release","source":"nvd","publisher":"vendor","text":null,"published_at":null,"relation":"fix","confidence":null,"note":"Release notes: github.com"},{"id":147650,"url":"https://github.com/gittuf/gittuf/security/advisories/GHSA-pchw-g6rm-gxvh","title":"Vendor advisory: github.com","kind":"vendor","source":"nvd","publisher":"vendor","text":null,"published_at":"2026-11-12T19:52:16+00:00","relation":"advisory","confidence":null,"note":"Vendor advisory: github.com"}],"disclosures":[],"exploit_sources":[],"notice":"Free to read, with fair use of about 60 pages a minute. For higher limits or API access: sales@infrastack.ai"}