Impact
Any user making use of a wildcard relationship under the right hand branch of an exclusion
or within an intersection
operation will see Lookup
/LookupResources
return a resource as "accessible" if it is not accessible by virtue of the inclusion of the wildcard in the intersection or the right side of the exclusion.
For example, given schema:
definition user {}
definition resource {
relation viewer: user
relation banned: user | user:*
permission view = viewer - banned
}
If user:*
is placed into the banned
relation for a particular resource, view
should return false for all resources. in v1.3.0
, the wildcard is ignored entirely in lookup's dispatch, resulting in the banned
wildcard being ignored in the exclusion.
Workarounds
Don't make use of wildcards on the right side of intersections or within exclusions.
References
#358
For more information
If you have any questions or comments about this advisory:
Impact
Any user making use of a wildcard relationship under the right hand branch of an
exclusion
or within anintersection
operation will seeLookup
/LookupResources
return a resource as "accessible" if it is not accessible by virtue of the inclusion of the wildcard in the intersection or the right side of the exclusion.For example, given schema:
If
user:*
is placed into thebanned
relation for a particular resource,view
should return false for all resources. inv1.3.0
, the wildcard is ignored entirely in lookup's dispatch, resulting in thebanned
wildcard being ignored in the exclusion.Workarounds
Don't make use of wildcards on the right side of intersections or within exclusions.
References
#358
For more information
If you have any questions or comments about this advisory: