Skip to content

Require gateway-admin for relay-gateway update/delete - #982

Merged
brocaar merged 1 commit into
chirpstack:masterfrom
Santoshkumarpuppala:fix/relay-gateway-write-authz
Jul 9, 2026
Merged

brocaar merged 1 commit into
chirpstack:masterfrom
Santoshkumarpuppala:fix/relay-gateway-write-authz

Conversation

@Santoshkumarpuppala

Copy link
Copy Markdown
Contributor

update_relay_gateway and delete_relay_gateway authorized with ValidateGatewaysAccess::new(Flag::List, tenant_id), which for a tenant-scoped check only requires tenant membership and does not exclude read-only API keys. So any tenant member (or a read-only key) could modify/delete relay gateways.

Switch both handlers to Flag::Create -- the tenant-scoped gateway-admin gate already used by the regular-gateway write path (requires is_admin OR tenant is_admin/is_gateway_admin; read-only keys denied). Read paths (get_relay_gateway/list_relay_gateways) stay on Flag::List. Covered by the existing ValidateGatewaysAccess tests.

update_relay_gateway and delete_relay_gateway authorized with
ValidateGatewaysAccess::new(Flag::List, tenant_id), which for a tenant-scoped
check only requires tenant membership and does not exclude read-only API keys.
So any tenant member (or a read-only key) could modify/delete relay gateways.

Switch both handlers to Flag::Create -- the tenant-scoped gateway-admin gate
already used by the regular-gateway write path (requires is_admin OR tenant
is_admin/is_gateway_admin; read-only keys denied). Read paths
(get_relay_gateway/list_relay_gateways) stay on Flag::List. Covered by the
existing ValidateGatewaysAccess tests.
@brocaar
brocaar merged commit f71f744 into chirpstack:master Jul 9, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants