Bug 2552101 (CVE-2026-110522) - CVE-2026-110522 oc-mirror: oc-mirror: execution of unsigned opm binary extracted from catalog image in v1 cache rebuild
Summary: CVE-2026-110522 oc-mirror: oc-mirror: execution of unsigned opm binary extrac...
Keywords:
Status: NEW
Alias: CVE-2026-110522
Product: Security Response
Classification: Other
Component: vulnerability
Version: unspecified
Hardware: All
OS: Linux
high
high
Target Milestone: ---
Assignee: Product Security
QA Contact:
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2026-10-14 07:36 UTC by OSIDB Bzimport
Modified: 2026-10-19 11:21 UTC (History)
16 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed:
Embargoed:


Attachments (Terms of Use)

Description OSIDB Bzimport 2026-10-14 07:36:14 UTC
When rebuilding an operator catalog cache, oc-mirror v1's processCatalogRefs() (https://github.com/openshift/oc-mirror/blob/main/v1/pkg/cli/mirror/catalog_images.go#L312) function executes an opm binary extracted from a remote catalog image without any integrity verification.

The copyOPMBinary() function (https://github.com/openshift/oc-mirror/blob/main/v1/pkg/cli/mirror/catalog_images.go#L591-L640) reads the catalog image's ENTRYPOINT (L600) or CMD (L604-606) to locate the opm binary path, extracts it from the image layers via extractCatalog() (L613), and copies it to the workspace bin/ directory. In processCatalogRefs(), when withCacheRegeneration (L333) is true, this binary is set as opmCmdPath = filepath.Join(artifactDir, config.OpmBinDir, "opm") (L361) and executed directly via exec.Command(opmCmdPath, "serve", ...) (L376) on the operator's workstation. There is no signature verification, no digest check, and no integrity validation of the binary before execution.

A malicious operator catalog image can supply an arbitrary executable as its opm binary. When an administrator mirrors this catalog with --build-catalog-cache, the attacker-controlled binary is executed with the privileges of the user running oc-mirror.

This vulnerability is independent of the path traversal issue tracked as CVE-2026-101295. The CWE-22 fix (sanitizeArchivePath) does not mitigate this issue — the opm binary is extracted to a valid, sanitized path within the workspace and then executed without integrity checks.

The OPM_BINARY environment variable (L358-359), if set, causes oc-mirror to use a trusted local binary instead of the extracted one, fully mitigating this issue.

oc-mirror v2 does not execute extracted binaries and is not affected. v1 is deprecated since OCP 4.18 but still shipped and functional.


Note You need to log in before you can comment on or make changes to this bug.