Omni: Operator can traverse image-factory API paths via unsanitized `talos_version` in CreateSchematic
cve-program · CVE-2026-45723
PublishedOmni manages Kubernetes on bare metal, virtual machines, or in a cloud. Prior to 1.6.6 and 1.7.3, managementServer.CreateSchematic in internal/backend/grpc/schematics.go passes the caller-controlled TalosVersion field to imageFactoryClient.OverlaysVersions without validating it as a version. An authenticated Operator can submit traversal segments in TalosVersion, and url.URL.JoinPath normalizes them into unintended paths on the configured image-factory host. Omni then issues HTTP GET requests to those paths and reflects error-body content, enabling same-host endpoint probing and possible disclosure of internal diagnostics while preventing redirection to another host or write requests. This issue is fixed in versions 1.6.6 and 1.7.3.
Read the publisher's advisoryeuvd · EUVD-2026-82402
PublishedOmni manages Kubernetes on bare metal, virtual machines, or in a cloud. Prior to 1.6.6 and 1.7.3, managementServer.CreateSchematic in internal/backend/grpc/schematics.go passes the caller-controlled TalosVersion field to imageFactoryClient.OverlaysVersions without validating it as a version. An authenticated Operator can submit traversal segments in TalosVersion, and url.URL.JoinPath normalizes them into unintended paths on the configured image-factory host. Omni then issues HTTP GET requests to those paths and reflects error-body content, enabling same-host endpoint probing and possible disclosure of internal diagnostics while preventing redirection to another host or write requests. This issue is fixed in versions 1.6.6 and 1.7.3.
Read the publisher's advisorynvd · CVE-2026-45723
PublishedOmni manages Kubernetes on bare metal, virtual machines, or in a cloud. Prior to 1.6.6 and 1.7.3, managementServer.CreateSchematic in internal/backend/grpc/schematics.go passes the caller-controlled TalosVersion field to imageFactoryClient.OverlaysVersions without validating it as a version. An authenticated Operator can submit traversal segments in TalosVersion, and url.URL.JoinPath normalizes them into unintended paths on the configured image-factory host. Omni then issues HTTP GET requests to those paths and reflects error-body content, enabling same-host endpoint probing and possible disclosure of internal diagnostics while preventing redirection to another host or write requests. This issue is fixed in versions 1.6.6 and 1.7.3.
Read the publisher's advisoryosv · GHSA-c66c-vq6w-fvh5
Published## Summary `managementServer.CreateSchematic` (`internal/backend/grpc/schematics.go`) passes the caller-controlled `TalosVersion` field directly to `imageFactoryClient.OverlaysVersions`, which embeds it verbatim into a `fmt.Sprintf("/version/%s/overlays/official", talosVersion)` path template. `url.URL.JoinPath` resolves any `../` sequences in that path, allowing an authenticated Operator to rewrite the URL path and force Omni to issue HTTP GET requests to unintended paths on the configured image-factory server. Error body content from those unintended endpoints is returned to the caller. ## Severity - **Attack Vector:** Network: exploited via the gRPC `CreateSchematic` API endpoint. - **Attack Complexity:** Low: once the attacker holds an Operator credential and has identified a media ID with an overlay, exploitation is a single API call. - **Privileges Required:** High: `role.Operator` is required, which has administrative capabilities on Omni. - **User Interaction:** None. - **Scope:** Unchanged: the traversal is constrained to the configured image-factory host; the attacker cannot redirect Omni to an arbitrary external server. - **Confidentiality Impact:** Low: error body content from unintended image-factory endpoints is reflected back to the operator, potentially leaking server-internal information. - **Integrity Impact:** None: only HTTP GET requests are issued; no write operations are performed. - **Availability Impact:** None. ## Impact - **Same-host path traversal**: An authenticated Operator can force Omni to issue GET requests to arbitrary URL paths on the configured image-factory server, bypassing the intended versioned overlay API structure. - **Error-body disclosure**: HTTP error responses from unintended image-factory endpoints are reflected back to the operator, potentially leaking server-internal diagnostics or sensitive path content. - **Internal network probing**: In deployments using a private image-factory instance on an internal network, the attacker can probe endpoint existence and partial responses through error-text differences. - **Depth control**: By varying the number of `../` prefixes in `talosVersion`, the attacker can reach any path hierarchy on the image-factory host. ## Credit This vulnerability was discovered and reported by [bugbunny.ai](https://bugbunny.ai).
Read the publisher's advisoryosv · GO-2026-5316
PublishedOmni: Operator can traverse image-factory API paths via unsanitized `talos_version` in CreateSchematic in github.com/siderolabs/omni
Read the publisher's advisoryAffected versions, risk and source history
Related advisories and sources
Publishers link these advisories through the identifiers shown below. A shared identifier or date alone does not tell you whether your software is affected or whether the advisories describe the same cause.
CVE-2026-45723 · CVE overview and exploitation status
cve-program · CVE-2026-45723
- https://github.com/siderolabs/omni/security/advisories/GHSA-c66c-vq6w-fvh5
- https://github.com/siderolabs/omni/pull/2817
- https://github.com/siderolabs/omni/commit/13c3f289789842e1fd954d98babb34b94eea1192
- https://github.com/siderolabs/omni/commit/3e69e80802624bf322f16aa499d5eafca16d0025
- https://github.com/siderolabs/omni/commit/9426c2cabccaa1d442bc8ebf28c16cae2d7c6ff7
- https://github.com/siderolabs/omni/releases/tag/v1.6.6
- https://github.com/siderolabs/omni/releases/tag/v1.7.3
euvd · EUVD-2026-82402
- https://github.com/siderolabs/omni/security/advisories/GHSA-c66c-vq6w-fvh5
- https://github.com/siderolabs/omni/pull/2817
- https://github.com/siderolabs/omni/commit/13c3f289789842e1fd954d98babb34b94eea1192
- https://github.com/siderolabs/omni/commit/3e69e80802624bf322f16aa499d5eafca16d0025
- https://github.com/siderolabs/omni/commit/9426c2cabccaa1d442bc8ebf28c16cae2d7c6ff7
- https://github.com/siderolabs/omni/releases/tag/v1.6.6
- https://github.com/siderolabs/omni/releases/tag/v1.7.3
nvd · CVE-2026-45723
- https://github.com/siderolabs/omni/commit/13c3f289789842e1fd954d98babb34b94eea1192
- https://github.com/siderolabs/omni/commit/3e69e80802624bf322f16aa499d5eafca16d0025
- https://github.com/siderolabs/omni/commit/9426c2cabccaa1d442bc8ebf28c16cae2d7c6ff7
- https://github.com/siderolabs/omni/pull/2817
- https://github.com/siderolabs/omni/releases/tag/v1.6.6
- https://github.com/siderolabs/omni/releases/tag/v1.7.3
- https://github.com/siderolabs/omni/security/advisories/GHSA-c66c-vq6w-fvh5
osv · GHSA-c66c-vq6w-fvh5
- https://github.com/siderolabs/omni/security/advisories/GHSA-c66c-vq6w-fvh5
- https://github.com/siderolabs/omni
- https://github.com/siderolabs/omni/releases/tag/v1.6.6
- https://github.com/siderolabs/omni/releases/tag/v1.7.3
osv · GO-2026-5316
Related changes
Linked by CVE identifierNo related changes are available here.