Impact
A vulnerability has been identified within Rancher Manager in the GitHub App authentication provider. When evaluating permissions, the provider incorrectly expands user team memberships to include all teams within the associated GitHub organization, rather than restricting access to the specific teams to which the user actually belongs.
Specifically, when a user authenticates via the GitHub App provider, Rancher's team membership evaluation logic incorrectly handles cached data. Instead of checking the user-specific list, the evaluation logic iterates over all teams defined within the entire GitHub organization. The authentication provider should consult the correctly cached, per-user membership list to assign the user's specific group permissions. Consequently, any authenticated user who belongs to at least one team in a GitHub organization is mistakenly granted group principals for every team within that entire organization during authentication and authorization checks.
This issue allows a malicious user who is a member of a low-privilege team within a GitHub organization to gain unauthorized access to or permissions for any other team in that organization. If those other teams are bound to Rancher login allowlists or RBAC roles (cluster-level, project-level, or global), the attacker can pass access checks that should otherwise fail, inheriting permissions they were never granted.
Exploitation of this vulnerability requires the following conditions to be met:
- The GitHub App authentication provider must be enabled and configured for the target GitHub organization.
- The attacker must possess a valid GitHub account with membership in at least one team within that target organization.
- A separate team within the same GitHub organization must be explicitly mapped to Rancher RBAC roles or specified within Rancher's login allowlist (
allowedPrincipalIds).
Please consult the associated MITRE ATT&CK - Technique - Valid Accounts for further information about this category of attack.
Patches
This fix corrects the team listing logic to iterate only the teams stored in the per-user membership cache and includes a one-time startup migration that marks all affected User resources for refresh, forcing Rancher to rebuild group principals using the now-corrected logic.
Patched versions of Rancher include releases v2.14.2 and v2.13.6.
Workarounds
If upgrading to a patched version immediately is not feasible, users are encouraged to consider these temporary mitigations:
- Disable GitHub App authentication provider and switch to an alternative authentication provider (GitHub OAuth).
- Remove or restrict team-based
group principals from allowed principalIds.
- Audit and temporarily remove RBAC bindings (
GlobalRoleBindings, ClusterRoleTemplateBindings, ProjectRoleTemplateBindings) that reference GitHub App team principals until the patch is applied.
- Disable provider refresh and clean up inflated group membership for users (manually or by writing a script).
These workarounds reduce the attack surface but do not eliminate the vulnerability. Existing user sessions and cached principals remain inflated until a provider refresh occurs. Upgrading to a patched version is strongly recommended.
References
If you have any questions or comments about this advisory:
References
Impact
A vulnerability has been identified within Rancher Manager in the GitHub App authentication provider. When evaluating permissions, the provider incorrectly expands user team memberships to include all teams within the associated GitHub organization, rather than restricting access to the specific teams to which the user actually belongs.
Specifically, when a user authenticates via the GitHub App provider, Rancher's team membership evaluation logic incorrectly handles cached data. Instead of checking the user-specific list, the evaluation logic iterates over all teams defined within the entire GitHub organization. The authentication provider should consult the correctly cached, per-user membership list to assign the user's specific group permissions. Consequently, any authenticated user who belongs to at least one team in a GitHub organization is mistakenly granted
group principalsfor every team within that entire organization during authentication and authorization checks.This issue allows a malicious user who is a member of a low-privilege team within a GitHub organization to gain unauthorized access to or permissions for any other team in that organization. If those other teams are bound to Rancher login allowlists or RBAC roles (cluster-level, project-level, or global), the attacker can pass access checks that should otherwise fail, inheriting permissions they were never granted.
Exploitation of this vulnerability requires the following conditions to be met:
allowedPrincipalIds).Please consult the associated MITRE ATT&CK - Technique - Valid Accounts for further information about this category of attack.
Patches
This fix corrects the team listing logic to iterate only the teams stored in the per-user membership cache and includes a one-time startup migration that marks all affected User resources for refresh, forcing Rancher to rebuild
group principalsusing the now-corrected logic.Patched versions of Rancher include releases
v2.14.2andv2.13.6.Workarounds
If upgrading to a patched version immediately is not feasible, users are encouraged to consider these temporary mitigations:
group principalsfrom allowed principalIds.GlobalRoleBindings,ClusterRoleTemplateBindings,ProjectRoleTemplateBindings) that reference GitHub App teamprincipalsuntil the patch is applied.These workarounds reduce the attack surface but do not eliminate the vulnerability. Existing user sessions and cached principals remain inflated until a provider refresh occurs. Upgrading to a patched version is strongly recommended.
References
If you have any questions or comments about this advisory:
References