apache / trafficcontrol

Apache Traffic Control is an Open Source implementation of a Content Delivery Network
https://trafficcontrol.apache.org/
Apache License 2.0
1.06k stars 344 forks source link

Self Service Must Prevent Tenant Cache Key Overlap #4748

Open rob05c opened 4 years ago

rob05c commented 4 years ago

Making this issue so we don't forget.

For Self-Service, we have to make it impossible for one tenant to overlap the Cache Key of another. Otherwise, one tenant could accidentally or maliciously break someone else.

But, it's a useful (albeit dangerous) thing for tenants to be able to use the same Cache Key in multiple Delivery Services.

One option is to always prefix the Tenant name/id to the Cache Key.

It would also be ideal if Tenants couldn't accidentally overlap DSes. Maybe also have a default-checked box to Use Delivery Service Name In Cache Key.

It would also be ideal if a Base Tenant of two Sub-Tenants could overlap the Cache Key between their two sub-tenants. Maybe have an option allowing a User of the Base Tenant to specify that the DS Cache Key Tenant prefix is the Base Tenant instead of the actual owning Tenant? That may be overthinking it, though.

This will be a critical vulnerability once Self Service exists, but it doesn't yet, so I'm not adding the "bug" or "critical" tag yet, so it doesn't show up in searches and annoy people.

I'm submitting a ...

Traffic Control components affected ...

Current behavior:

Self Service doesn't currently exist. But when it does, this will become a critical vulnerability.

Minimal reproduction of the problem with instructions:

Cache Key can currently be manually configured so completely different Delivery Services owned by different Tenants can overlap, with no restriction.

Anything else:

rob05c commented 4 years ago

Adding enhancement tag, because I don't want it to show up in bug lists since it isn't today, but I'm afraid if something doesn't have either enhancement or bug it'll get missed entirely in searches.