{"id":"CVE-2026-63121","kind":"vulnerability","aliases":["CVE-2026-63121"],"related":[],"title":"Kubewarden trusted-repos policy: mixed-case registry hostnames bypass reject lists","description":"Kubewarden policies is a collection of WebAssembly policies for securing and governing Kubernetes clusters. For versions provisionally classified as affected before 2.1.2, `trusted-repos-policy` compares an image's `registry` hostname against `reject lists` and `allow lists` case-sensitively even though `registry` DNS names are case-insensitive. An image with an uppercase or mixed-case `registry` hostname can miss a rejection rule for the equivalent lowercase host, so the admission policy accepts a resource whose container runtime pulls the same prohibited image. Only reject-list configurations have this bypass: allow-list configurations fail closed by over-denying differently cased hostnames. The security consequences depend on the configured rejection policy and deployment environment. This issue is fixed in version 2.1.2.","summary":"The trusted-repos-policy in Kubewarden policies compares image registry hostnames case-sensitively, though DNS names are case-insensitive. An image with an uppercase or mixed-case registry hostname can slip past a reject-list rule, so a prohibited image gets admitted to the cluster.","severity":"medium","cvss":6.3,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["admission-control","kubernetes","kubewarden","package"],"not_affected_if":["allow-list-only","policy-not-deployed"],"how_to_check":"- Check whether the cluster runs the Kubewarden trusted-repos-policy with a reject list, for example in the `ClusterAdmissionPolicy` objects.\n- Check the installed policy version against `2.1.2`.","fix":"- Upgrade the Kubewarden policies to `2.1.2` or later.","status":"open","published_at":"2026-10-30T22:16:58+00:00","first_seen_at":"2026-10-30T22:25:56+00:00","triaged_at":"2026-10-30T22:27:16+00:00","updated_at":"2026-10-30T22:27:16+00:00","category":"package","confidence":0.8,"triage":{"at":"2026-10-30T22:27:16Z","model":"claude-haiku-5-5","output":{"fix":"- Upgrade the Kubewarden policies to `2.1.2` or later.","reach":"internet","title":"Kubewarden trusted-repos policy: mixed-case registry hostnames bypass reject lists","impact":"medium","summary":"The trusted-repos-policy in Kubewarden policies compares image registry hostnames case-sensitively, though DNS names are case-insensitive. An image with an uppercase or mixed-case registry hostname can slip past a reject-list rule, so a prohibited image gets admitted to the cluster.","audience":"businesses","category":"package","nicknames":[],"who_cares":["kubernetes","kubewarden","admission-control"],"confidence":0.8,"fix_status":"available","needs_auth":"unknown","worst_case":"prohibited container image is admitted and runs in the cluster","analyst_note":"","how_to_check":"- Check whether the cluster runs the Kubewarden trusted-repos-policy with a reject list, for example in the `ClusterAdmissionPolicy` objects.\n- Check the installed policy version against `2.1.2`.","plain_action":"","needs_analyst":false,"not_affected_if":["allow-list-only","policy-not-deployed"],"who_is_affected":"Teams running Kubernetes clusters with the Kubewarden trusted-repos-policy configured with reject lists are exposed; allow-list-only configurations fail closed and are not bypassed. The bypass depends on the configured rejection policy and deployment environment. Teams not using this policy, or using only allow lists, can skip it.","user_interaction":"no","needs_special_setup":"yes","severity_if_unknown":"medium"},"cost_usd":0.000715,"input_tokens":4292,"output_tokens":571,"severity_before":"medium"},"analyst_status":null,"analyst_note":null,"search":"'-2026':15A,18A '-63121':16A,19A '2.1.2':97C,201C 'accept':151C 'admiss':21B,149C 'admission-control':20B 'admit':72B 'affect':95C 'allow':112C,171C 'allow-list':170C 'bypass':11A,169C 'case':8A,39B,46B,56B,115C,124C,134C,181C 'case-insensit':45B,123C 'case-sensit':38B,114C 'classifi':93C 'close':175C 'cluster':75B,89C 'collect':80C 'compar':34B,102C 'configur':166C,173C,189C 'consequ':185C 'contain':155C 'control':22B 'cve':14A,17A 'deni':179C 'depend':186C 'deploy':193C 'differ':180C 'dns':42B,120C 'environ':194C 'equival':144C 'even':117C 'fail':174C 'fix':198C 'get':71B 'govern':87C 'host':146C 'hostnam':10A,37B,58B,107C,136C,182C 'imag':35B,49B,70B,104C,127C,161C 'insensit':47B,125C 'issu':196C 'kubernet':23B,88C 'kubewarden':1A,24B,32B,76C 'list':13A,65B,110C,113C,165C,172C 'lowercas':145C 'miss':138C 'mix':7A,55B,133C 'mixed-cas':6A,54B,132C 'name':43B,121C 'over-deni':177C 'packag':25B 'past':61B 'polici':5A,30B,33B,77C,83C,101C,150C,191C 'prohibit':69B,160C 'provision':92C 'pull':157C 'registri':9A,36B,57B,106C,119C,135C 'reject':12A,64B,109C,140C,164C,190C 'reject-list':63B,163C 'repo':4A,29B,100C 'resourc':153C 'rule':66B,141C 'runtim':156C 'secur':85C,184C 'sensit':40B,116C 'slip':60B 'though':41B,118C 'trust':3A,28B,99C 'trusted-repo':2A 'trusted-repos-polici':27B,98C 'uppercas':52B,130C 'version':91C,200C 'webassembl':82C 'whose':154C","nicknames":[],"mitigations":[],"who_affected":"Teams running Kubernetes clusters with the Kubewarden trusted-repos-policy configured with reject lists are exposed; allow-list-only configurations fail closed and are not bypassed. The bypass depends on the configured rejection policy and deployment environment. Teams not using this policy, or using only allow lists, can skip it.","tier":"C","verified":{},"analyst_revisit_at":null,"fix_status":"available","audience":"businesses","plain_action":null,"first_public_at":"2026-10-30T22:16:58+00:00","kev":null,"cvss_vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:L","cvss_by":"security-advisories@github.com","poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-63121","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-63121","severity":null,"published_at":"2026-10-30T22:16:58+00:00","modified_at":"2026-10-30T22:16:58+00:00","first_seen_at":"2026-10-30T22:25:56+00:00","fetched_at":"2026-10-30T22:25:56+00:00","note":null}],"documents":[],"notice":"Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai"}