Current Series Release Notes¶
16.0.0.0rc1-59¶
New Features¶
New base policy rules have been added:
project_manager_or_admin,project_member_or_service,service_api, andproject_manager_api.
The non-standard
role:administratoralias has been removed from theadmin_apibase rule, aligning Cyborg with the Keystone bootstrap role set used by Nova and other services.
Accelerator request (ARQ) policies have been migrated to
DocumentedRuleDefaultwith persona-based defaults as part of the OpenStack TC’s Consistent and Secure RBAC community goal. New personas for ARQ endpoints:reader – read-only access to ARQs within the caller’s project.
member and service – ARQ write operations (create, delete, update), supporting both Nova’s current token-forwarding and future service-credential presentation.
admin – full access to all ARQ operations via implied roles.
Device policies have been migrated to
DocumentedRuleDefaultwith persona-based defaults. New personas for device endpoints:manager – read access to device inventory (list, show) for capacity planning and troubleshooting.
admin – full access including device disable and enable.
Deployable policies have been migrated to
DocumentedRuleDefaultwith persona-based defaults. New personas for deployable endpoints:manager – read access to deployable inventory (list, show).
admin – full access including FPGA programming.
Upgrade Notes¶
A new
cyborg-dbsync online_data_migrationssubcommand backfills theproject_idcolumn on existing accelerator requests (ARQs). Expected operator order:Upgrade the
cyborg-dbsyncpackage (and related shared code) socyborg-dbsync upgradecan apply pending schema migrations.Run
cyborg-dbsync online_data_migrationsto backfillproject_idon existing ARQ rows using Nova instance data.Upgrade Cyborg services, starting with conductor and API, then agents.
The cyborg-conductor service also heals remaining NULL
project_idvalues on startup as a safety net.Nova
GET /servers/{id}calls for this migration pass microversion2.82explicitly so thetenant_idfield shape used for backfill stays consistent.
The
authorize_wsgihelper no longer accepts theneed_targetargument. It now always builds the policy target from the request context’sproject_idanduser_id. Out-of-tree API controllers that pass a third argument toauthorize_wsgimust remove it.
Nova must be configured with
[service_user] send_service_user_token = truefor Cyborg to accept bound-ARQ operations (bind, unbind, delete). This is the same requirement as for Cinder volume attachments since OSSA-2023-003.Cyborg now defaults
[keystone_authtoken] service_token_roles_requiredtotrueso that keystonemiddleware validates the service token roles. Operators who have not already set this should ensure the service user has theservicerole in Keystone.
Cyborg API policies now declare
scope_types=['project']and reject Keystone system-scoped tokens via oslo.policy scope enforcement. Use project-scoped tokens for Cyborg APIs; prefer custom policy rules if you need different access behavior.
Cyborg no longer supports disabling policy scope enforcement. oslo.policy always enforces
scope_typeswhen they are defined on policy rules. Cyborg APIs continue to declare project scope, so callers must use project-scoped tokens instead of system-scoped tokens. Operators should audit any callers that relied on system-scoped tokens orenforce_scope=Falseand migrate them to project-scoped tokens before upgrading.
The
[glance] debugoption has been removed. This option has not been actually used.
The broken image signature verification feature and its associated configuration options have been removed. As noted in bug 2144308, the signature verification code has not worked since it was introduced in the Stein release (2018). The implementation referenced components from Nova (
self.show()method andobjects.ImageMeta) that were never implemented in Cyborg. Given that no one has reported this feature working in that time, it is simply removed.The following configuration options in the
[glance]section have been removed:verify_glance_signaturesdefault_trusted_certificate_idsenable_certificate_validation
If image signature verification is needed in the future, it will be re-implemented as a new feature with proper test coverage, key manager integration, and documentation.
The
[keystone]group has been removed from the config files. This group has not been actually used.
Cyborg now overrides
enforce_new_defaultstoFalsein its default configuration. During the transition window, both legacy and new authorization paths are accepted. Operators may opt in to the new persona-based defaults by setting[oslo_policy] enforce_new_defaults = Trueincyborg.conf.The transition timeline is:
2026.2 – new defaults available,
enforce_new_defaultsdefaults toFalse. Operators may opt in early.2027.1 – the override will be removed and new defaults will be enforced by default. Operators not yet ready can set
enforce_new_defaults = Falseexplicitly.2027.2 – the deprecated legacy rules and bridges will be removed.
The
managerandserviceroles must exist in Keystone (both available by default since 2023.2 (Bobcat)). Theservicerole must be assigned to Nova’s service account for the service-token gate to function.
Operators relying on the non-standard
administratorrole for Cyborg admin access must either assign the standardadminrole or provide custom policy overrides before deploying this change.
Deprecation Notes¶
The legacy ARQ, device, and deployable policy defaults formerly defined in
cyborg/common/policy.pyhave been replaced byDocumentedRuleDefaultentries incyborg/policies/. Backward compatibility is preserved through deprecated-rule bridges until 2027.2, when the bridges will be removed.
Security Issues¶
This issue is assigned CVE-2026-40214.
Fixed a cross-tenant access control vulnerability in accelerator request (ARQ) management. The
project_idfield was never populated on ARQ records, which meant non-admin users could list, view, and delete ARQs belonging to other projects. This could lead to information disclosure (leaking instance UUIDs across tenants) and denial of service (deleting another tenant’s ARQ prevents their instance from restarting).ARQs are now scoped to the requesting project. Non-admin users can only see and manage their own project’s ARQs.
Additionally, binding, unbinding, and deleting bound ARQs now require a service token. Only Nova, identified by a valid service token with the
servicerole, may set or clear theinstance_uuidon an ARQ or delete a bound ARQ. This prevents users from directly manipulating ARQs that Nova is managing, following the same pattern as the Cinder OSSA-2023-003 fix.
This issue is assigned CVE-2026-40213.
Replaced permissive
rule:allowdefaults withrule:admin_apion device, deployable, and attribute API policies so authenticated low-privilege users cannot read or change hardware topology and management data without the admin role. System-scoped tokens are not supported by Cyborg. Deployments that relied on the old defaults must grantadminor define custom policy rules for these APIs.
Bug Fixes¶
Restored support for the standard
OpenStack-API-Versionheader format that includes the service type prefix (OpenStack-API-Version: accelerator 2.1), as specified by the API-WG microversion guideline. A previous change inadvertently removed parsing of the service type prefix, causing clients that follow the standard (including keystoneauth and openstacksdk) to always fall back to the minimum API version. Both the prefixed and bare version formats are now accepted; a deprecation warning is logged when the service type prefix is omitted.
The PCI driver now includes the standard
OWNER_CYBORGtrait in the trait list reported for PCI devices, consistent with the existing NVIDIA GPU driver behaviour. This trait is a standard os-traits marker (os_traits.OWNER_CYBORG) that signals the resource provider is managed by Cyborg and is stored in both the Cyborgattributestable and reported to Placement as a resource provider trait. It has no effect on Nova VM scheduling unless a device profile explicitly requires it.OWNER_CYBORGis now also defined as a named constant incyborg.common.constantsto prevent typos and improve consistency across all drivers.