docs: enhance GCP integration documentation + add gcp wip ( workload identity )#209
Open
girish-cheedala wants to merge 3 commits intomainfrom
Open
docs: enhance GCP integration documentation + add gcp wip ( workload identity )#209girish-cheedala wants to merge 3 commits intomainfrom
girish-cheedala wants to merge 3 commits intomainfrom
Conversation
girish-cheedala
commented
Feb 20, 2026
- Revise GCP integration overview for clarity on discovery approaches and authentication methods.
- Introduce a detailed table of supported GCP services.
- Expand on enumeration scope with project-level and organization-level discovery options.
- Add warnings regarding permission requirements for organization-level enumeration.
- Include new authentication methods with descriptions and links.
- Add a new image for GCP integration screen.
- Revise GCP integration overview for clarity on discovery approaches and authentication methods. - Introduce a detailed table of supported GCP services. - Expand on enumeration scope with project-level and organization-level discovery options. - Add warnings regarding permission requirements for organization-level enumeration. - Include new authentication methods with descriptions and links. - Add a new image for GCP integration screen.
Neo Security AuditHigh: 1 Highlights
High (1)
Attack ExamplesOverly permissive Workload Identity Federation binding ( Suggested FixesOverly permissive Workload Identity Federation binding ( Hardening Notes
Comment |
| pd-cloudlist-reader@YOUR_PROJECT_ID.iam.gserviceaccount.com \ | ||
| --project="YOUR_PROJECT_ID" \ | ||
| --role="roles/iam.workloadIdentityUser" \ | ||
| --member="principalSet://iam.googleapis.com/projects/YOUR_PROJECT_NUMBER/locations/global/workloadIdentityPools/projectdiscovery-pool/*" |
There was a problem hiding this comment.
🟠 Overly permissive Workload Identity Federation binding (CWE-863) — The WIF configuration grants workloadIdentityUser role to a wildcard principal (projectdiscovery-pool/*) without attribute conditions. This allows any token issued by oidc.projectdiscovery.io to impersonate the service account.
Attack Example
Customer A follows this guide and creates service account SA-A with org-level viewer permissions. If ProjectDiscovery's OIDC provider issues tokens to Customer B from the same pool, Customer B's token could impersonate SA-A and enumerate Customer A's entire GCP organization.
Suggested Fix
Add an attribute condition to restrict which tokens can impersonate the service account. Example:
gcloud iam service-accounts add-iam-policy-binding \
pd-cloudlist-reader@YOUR_PROJECT_ID.iam.gserviceaccount.com \
--role="roles/iam.workloadIdentityUser" \
--member="principalSet://iam.googleapis.com/projects/YOUR_PROJECT_NUMBER/locations/global/workloadIdentityPools/projectdiscovery-pool/attribute.customer_id/YOUR_CUSTOMER_ID"
Or use --attribute-condition to enforce token claims that uniquely identify the customer.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.