-
Notifications
You must be signed in to change notification settings - Fork 2
Global GET /k8s/clusters exposes cross-project BNK membership to any viewer (S2) #116
Copy link
Copy link
Closed
Labels
backendFastAPI backend: routes, services, tasksFastAPI backend: routes, services, tasksbugSomething is broken or behaves incorrectlySomething is broken or behaves incorrectlykubernetesK8s engine, Helm, CRDs, cluster operationsK8s engine, Helm, CRDs, cluster operationssecuritySecurity hardening, CVE tracking, or an authz/authn gapSecurity hardening, CVE tracking, or an authz/authn gapseverity:mediumCorrectness or diagnosability degraded; workaround existsCorrectness or diagnosability degraded; workaround exists
Description
Activity
Metadata
Metadata
Assignees
Labels
backendFastAPI backend: routes, services, tasksFastAPI backend: routes, services, tasksbugSomething is broken or behaves incorrectlySomething is broken or behaves incorrectlykubernetesK8s engine, Helm, CRDs, cluster operationsK8s engine, Helm, CRDs, cluster operationssecuritySecurity hardening, CVE tracking, or an authz/authn gapSecurity hardening, CVE tracking, or an authz/authn gapseverity:mediumCorrectness or diagnosability degraded; workaround existsCorrectness or diagnosability degraded; workaround exists
Cold-audit finding on PR #500 (ADR-424 Phase 1). Not a new bug — a widening of a pre-existing global-by-design endpoint.
GET /api/k8s/clusters(routes/k8s/clusters.py,dependencies=[Depends(require_viewer)], no project scope) callslist_all_clusters()and returns every cluster across all projects to any authenticated viewer. That was already true for cluster metadata. ADR-424 addsbnk_configto the serialized shape, so the global list now also exposes each cluster'shost_ids,dpu_ids,control_plane_host_id, andtmfifo_pool_cidrcross-project.If
require_vieweris meant to be per-project rather than instance-global, this is cross-tenant info disclosure. Decide the intended tenancy model for the global list and, if needed, project-scope it (relates to the pre-existing KubernetesCluster scope sweep, #508).Source: ADR-424 round-3 cold audit (rated SUGGESTION — pre-existing design).
Migrated from
sp-prod-field/bnk-forge#511 (opened 2026-07-29; original labels: none). That repository is archived and read-only.Bare
#NNNreferences in the text above refer to issues and PRs in the original repository, not to numbering here.