{"id":"CVE-2026-92092","kind":"vulnerability","aliases":["CVE-2026-92092"],"related":[],"title":"openshift-ansible: installer downloads unverified scripts, enabling code execution with cluster privileges","description":"A flaw was found in openshift-ansible. The installer container's `run` script downloads and executes remote inventory and dynamic scripts without integrity verification. A remote attacker, by performing a Man-in-the-Middle (MITM) attack or compromising the HTTP server providing these scripts, could substitute an arbitrary executable. This malicious executable would then run with the installer's user ID (UID) and full cluster-provisioning privileges, leading to arbitrary code execution.","summary":"The openshift-ansible installer container's run script downloads inventory and dynamic scripts over HTTP without integrity checks. An attacker who can intercept that traffic or control the HTTP server can substitute an executable that runs with the installer's privileges and cluster-provisioning rights.","severity":"high","cvss":7.4,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["ansible","infrastructure","installer","kubernetes","openshift","openshift-ansible","self-hosted"],"not_affected_if":["https-verified-inventory","isolated-network","local-inventory-only"],"how_to_check":"Check whether the installer container is run with INVENTORY_URL or DYNAMIC_SCRIPT_URL set (env, wrapper scripts, CI config). If neither is set and you supply local inventory files, the remote fetch is not triggered. Affected version ranges: not published by Red Hat.","fix":null,"status":"open","published_at":"2026-10-29T20:17:36+00:00","first_seen_at":"2026-10-29T20:26:51+00:00","triaged_at":"2026-10-29T20:28:06+00:00","updated_at":"2026-10-29T20:29:14+00:00","category":"infrastructure","confidence":0.8,"triage":{"at":"2026-10-29T20:28:06Z","model":"claude-haiku-5-5","output":{"fix":"unknown","reach":"network","title":"openshift-ansible: installer downloads unverified scripts, enabling code execution with cluster privileges","impact":"high","summary":"The openshift-ansible installer container's run script downloads inventory and dynamic scripts over HTTP without integrity checks. An attacker who can intercept that traffic or control the HTTP server can substitute an executable that runs with the installer's privileges and cluster-provisioning rights.","audience":"businesses","category":"infrastructure","nicknames":[],"who_cares":["openshift","openshift-ansible","kubernetes","ansible"],"confidence":0.6,"fix_status":"unknown","needs_auth":"unknown","worst_case":"Attacker runs arbitrary code with installer privileges and full cluster provisioning rights.","analyst_note":"Check the NVD entry and the openshift-ansible project for affected version ranges and a fixed release; sources here give none.","how_to_check":"- Check whether the installer container's `run` script fetches inventory or dynamic scripts over HTTP or HTTPS from a remote host\n- Confirm the installer runs from a network path an attacker could intercept or write to\n- Affected version ranges: unknown","plain_action":"","needs_analyst":true,"not_affected_if":["local-inventory-only"],"who_is_affected":"Teams that run the openshift-ansible installer container to provision OpenShift clusters and that fetch its inventory or dynamic scripts remotely. Exposure depends on the network path and on who controls the HTTP server serving those scripts. Teams that use only local or verified inventory files can likely skip it, but the sources do not confirm this.","user_interaction":"unknown","needs_special_setup":"unknown","severity_if_unknown":"high"},"cost_usd":0.000719,"input_tokens":4156,"output_tokens":606,"severity_before":"high"},"analyst_status":"done","analyst_note":"Check the NVD entry and the openshift-ansible project for affected version ranges and a fixed release; sources here give none.","search":"'-2026':15A,18A '-92092':16A,19A 'ansibl':3A,20B,27B,34B,85C 'arbitrari':127C,150C 'attack':51B,105C,115C 'check':49B 'cluster':12A,75B,145C 'cluster-provis':74B,144C 'code':9A,151C 'compromis':117C 'contain':36B,88C 'control':58B 'could':124C 'cve':14A,17A 'download':5A,40B,92C 'dynam':43B,98C 'enabl':8A 'execut':10A,65B,94C,128C,131C,152C 'flaw':79C 'found':81C 'full':143C 'host':30B 'http':46B,60B,119C 'id':140C 'infrastructur':21B 'instal':4A,22B,35B,70B,87C,137C 'integr':48B,101C 'intercept':54B 'inventori':41B,96C 'kubernet':23B 'lead':148C 'malici':130C 'man':110C 'man-in-the-middl':109C 'middl':113C 'mitm':114C 'openshift':2A,24B,26B,33B,84C 'openshift-ans':1A,25B,32B,83C 'perform':107C 'privileg':13A,72B,147C 'provid':121C 'provis':76B,146C 'remot':95C,104C 'right':77B 'run':38B,67B,90C,134C 'script':7A,39B,44B,91C,99C,123C 'self':29B 'self-host':28B 'server':61B,120C 'substitut':63B,125C 'traffic':56B 'uid':141C 'unverifi':6A 'user':139C 'verif':102C 'without':47B,100C 'would':132C","nicknames":[],"mitigations":[],"who_affected":"Teams that run the openshift-ansible installer container with INVENTORY_URL or DYNAMIC_SCRIPT_URL pointing to a remote server, especially over plain HTTP or an untrusted network. An attacker who can intercept the traffic or compromise that server can substitute a script that runs with the installer's privileges. Teams that supply local inventory files or run in isolated networks can skip it, per Red Hat.","tier":"B","verified":{"mitigations":{"at":"2026-10-29T20:29:14Z","by":"analyst","doc":"https://access.redhat.com/security/cve/CVE-2026-92092","run_id":1108},"how_to_check":{"at":"2026-10-29T20:29:14Z","by":"analyst","doc":"https://access.redhat.com/security/cve/CVE-2026-92092","run_id":1108},"who_affected":{"at":"2026-10-29T20:29:14Z","by":"analyst","doc":"https://access.redhat.com/security/cve/CVE-2026-92092","run_id":1108}},"analyst_revisit_at":null,"fix_status":"none","audience":"businesses","plain_action":null,"first_public_at":"2026-10-29T20:17:36+00:00","kev":null,"cvss_vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N","cvss_by":"secalert@redhat.com","poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-92092","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-92092","severity":null,"published_at":"2026-10-29T20:17:36+00:00","modified_at":"2026-10-29T20:17:36+00:00","first_seen_at":"2026-10-29T20:26:51+00:00","fetched_at":"2026-10-29T20:26:51+00:00","note":null},{"source":"analyst","external_id":"CVE-2026-92092:1108","url":null,"severity":null,"published_at":"2026-10-29T20:29:14+00:00","modified_at":"2026-10-29T20:29:14+00:00","first_seen_at":"2026-10-29T20:29:14+00:00","fetched_at":"2026-10-29T20:29:14+00:00","note":"Read Red Hat CVE page (primary). Exposure only when INVENTORY_URL or DYNAMIC_SCRIPT_URL is set; no fixed version or affected range published, so fix left unknown."}],"documents":[{"id":19231,"url":"https://access.redhat.com/security/cve/CVE-2026-92092","title":"Red Hat CVE-2026-92092","kind":"advisory","source":"analyst","publisher":null,"text":"Red Hat: Important. Risk limited to installs that configure remote inventory via INVENTORY_URL or DYNAMIC_SCRIPT_URL env vars; local inventory or isolated networks do not trigger remote retrieval. Mitigation: secure against MITM, use HTTPS to trusted server with cert verification, prefer local inventory files. Bugzilla 2515862. CWE-494. No fixed version or package listed on page.","published_at":null,"relation":"advisory","confidence":null,"note":null}],"notice":"Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai"}