[Hardening] F-12: Absence of Per-Account or Per-User Source CIDR Allowlist.
- Dominant language
- Java
- Stars
- 3.1k
- Forks
- 1.4k
- Avg merge
- 6d 19h
- Merged PRs (30d)
- 32
Description
### The required feature described as a wish
**Description:** CloudStack does not provide a built-in mechanism to restrict per-account or per-user access to a defined set of source IP addresses or CIDR ranges. Any IP address that can reach the management plane can attempt to authenticate as any account.
**Affected Components:** Management UI / API
**Impact:** Without source IP allowlisting, a stolen API key or compromised credential set can be used from any network location globally. There is no network-level control to limit the blast radius of a credential compromise. High-privilege service accounts are particularly at risk, as they can be accessed from unexpected locations without raising any flags.
**Steps to Reproduce:**
- This finding is not directly reproducible since it reflects the absence of a control.
**Recommended Remediation:** Implement a per-account or per-user source CIDR allowlist field in the data model. Requests originating from IPs outside the defined allowlist should be rejected and logged as a security event.
Contributor guide
Research direction
The issue identifies the Management UI/API, the account or user data model, request source-IP checks, and security-event logging, but names no files or tests. Start by locating those entry points and tracing authentication and authorization for API requests. Done should include a defined per-account or per-user CIDR policy, rejection outside the policy, and logged security events with coverage for the relevant behavior.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- api, authentication, authorization, backend, security
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 30/100