2025.2 Series Release Notes¶
10.13.0¶
Upgrade Notes¶
The
service_token_roles_requiredoption now defaults toTrue. This means that service tokens must contain a role from theservice_token_roleslist (default:['service']) to be considered valid. Operators should verify that:Service users have one of the roles listed in
service_token_roles(by default, theservicerole).If your deployment intentionally relied on the previous permissive behavior (accepting any valid token as a service token), you can restore it by explicitly setting
service_token_roles_required=Falsein the[keystone_authtoken]section, though this is strongly discouraged for security reasons.
If service tokens are rejected after upgrading, ensure the service users have the appropriate role assigned in Keystone.
Security Issues¶
[bug 2162748]
auth_tokenmiddleware no longer treats the mere presence of anX-Service-Tokenheader as sufficient to skip application credentialaccess_ruleschecks or token binding (enforce_token_bind, including Kerberos). Both paths now require the service token to also be valid (service_token_valid). Previously an arbitraryX-Service-Tokenvalue could bypassaccess_rulesand, whendelay_auth_decisionwas enabled, skip Kerberos (or other) binding so a stolen bound user token would be marked Confirmed without a Negotiate session.
The
service_token_roles_requiredoption in[keystone_authtoken]now defaults toTrueinstead ofFalse. This fixes a security issue where any valid token could be used as a service token when the default wasFalse. With the previous default, a user token placed inX-Service-Tokenwould be accepted as a valid service token, which could bypass application credential access-rules checks and weaken composite-auth protections intended to distinguish service-to-service requests from end-user requests.
10.12.0¶
Upgrade Notes¶
Support for Python 3.9 has been removed. Now Python 3.10 is the minimum version supported.
10.11.0¶
Other Notes¶
Added TLS support to the MemcacheClientPool driver via oslo.cache