You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I discovered that specifying a wildcard in an RBAC policy project doesn’t work as expected.
I expected this line to match any project, but only the app payments-data-collector. p, role:payments, applications, get, */payments-data-collector, allow
But instead that policy gave the role access to all apps in all projects, essentially p, role:payments, applications, get, */*, allow.
I think this is a pretty serious RBAC bug, I had inadvertently given users admin access to all apps in my cluster.
To Reproduce
create a policy like this onep, role:payments, applications, get, */test-app, allow
Make sure that you have multiple apps under different project names
Login as the payments role and get any application
Expected behavior
403 permission denied on any app that isn't called test-app
Actual behavior
The policy p, role:payments, applications, get, */test-app, allow is interpreted as p, role:payments, applications, get, */*, allow. The wildcard * is greedy and matches everything
Checklist:
argocd version
.Describe the bug
I discovered that specifying a wildcard in an RBAC policy project doesn’t work as expected.
I expected this line to match any project, but only the app payments-data-collector.
p, role:payments, applications, get, */payments-data-collector, allow
But instead that policy gave the role access to all apps in all projects, essentially
p, role:payments, applications, get, */*, allow.
I think this is a pretty serious RBAC bug, I had inadvertently given users admin access to all apps in my cluster.
To Reproduce
p, role:payments, applications, get, */test-app, allow
payments
role andget
any applicationExpected behavior
test-app
Actual behavior
The policy
p, role:payments, applications, get, */test-app, allow
is interpreted asp, role:payments, applications, get, */*, allow
. The wildcard * is greedy and matches everythingVersion
The text was updated successfully, but these errors were encountered: