-
Notifications
You must be signed in to change notification settings - Fork 25.8k
Operator privileges do not work properly in a mixed version cluster #79354
Copy link
Copy link
Closed
Labels
:Security/AuthorizationRoles, Privileges, DLS/FLS, RBAC/ABACRoles, Privileges, DLS/FLS, RBAC/ABAC>bugTeam:SecurityMeta label for security teamMeta label for security team
Description
The operator privilege feature works by settng a special header in authenticating user's threadContext. This header is not preserved in a mixed version cluster when the request must be rerouted from a local node to a remote node of different version:
Lines 104 to 107 in 6895511
| // re-write the authentication since we want the authentication version to match the version of the connection | |
| securityContext.executeAfterRewritingAuthentication(original -> sendWithUser(connection, action, request, options, | |
| new ContextRestoreResponseHandler<>(threadPool.getThreadContext().wrapRestorable(original), handler), sender), | |
| minVersion); |
When sending request across nodes of different version, only the authentication object of the original request is preserved and other security related information is dropped. This leads to the remote node not recognising the user as an operator and in turns fails with and "unauthorized" (403) error.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
:Security/AuthorizationRoles, Privileges, DLS/FLS, RBAC/ABACRoles, Privileges, DLS/FLS, RBAC/ABAC>bugTeam:SecurityMeta label for security teamMeta label for security team
Type
Fields
Give feedbackNo fields configured for issues without a type.