[settings]
reuse_min_files = 2
reuse_confidence_bonus = 0.15
max_confidence = 0.99
reuse_impact = "One credential value is present in several files, so rotating it means editing every listed location; every copy stays live until the value is revoked at the provider."
[[composite]]
id = "aws-iam-user"
service = "aws"
name = "AWS IAM user access key and secret access key"
severity = "critical"
required = ["aws-access-key", "aws-secret-access-key"]
optional = ["aws-session-token"]
confidence_bonus = 0.30
impact = "Both halves of an AWS SigV4 credential are present; together they authenticate to every API the IAM principal is allowed to call."
[[composite]]
id = "twilio-api-credentials"
service = "twilio"
name = "Twilio API key and account auth token"
severity = "critical"
required = ["twilio-api-key", "twilio-auth-token"]
confidence_bonus = 0.25
impact = "The auth token authenticates the account the API key belongs to, so the pair can place calls, send messages, and read message bodies."
[[composite]]
id = "github-oauth-app"
service = "github"
name = "GitHub OAuth app client secret and access token"
severity = "critical"
required = ["github-oauth-access-token", "github-oauth-secret"]
confidence_bonus = 0.25
impact = "The client secret lets an attacker mint further tokens for the same OAuth app rather than only replaying the one leaked access token."
[[composite]]
id = "github-app"
service = "github"
name = "GitHub App private key and installation token"
severity = "critical"
required = ["github-app-private-key", "github-app-installation-token"]
confidence_bonus = 0.25
impact = "The private key signs new installation tokens indefinitely; revoking the leaked installation token alone does not close the access."
[[composite]]
id = "slack-app"
service = "slack"
name = "Slack app client secret and bot token"
severity = "high"
required = ["slack-bot-token", "slack-oauth-secret"]
confidence_bonus = 0.20
impact = "The client secret allows the OAuth exchange to be repeated for the same app, re-issuing bot tokens after the leaked one is revoked."
[[composite]]
id = "stripe-account"
service = "stripe"
name = "Stripe secret key and webhook signing secret"
severity = "critical"
required = ["stripe-secret-key", "stripe-webhook-signing-secret"]
confidence_bonus = 0.20
impact = "The secret key moves money and the signing secret forges webhook callbacks, so fraudulent charges can be made to look confirmed."
[[composite]]
id = "sendgrid-account"
service = "sendgrid"
name = "SendGrid API key and webhook signing secret"
severity = "high"
required = ["sendgrid-api-key", "sendgrid-webhook-signing-secret"]
confidence_bonus = 0.20
impact = "Mail can be sent from the verified domain while forged event callbacks hide the delivery evidence."
[[composite]]
id = "mailgun-account"
service = "mailgun"
name = "Mailgun API key and webhook signing key"
severity = "high"
required = ["mailgun-api-key", "mailgun-webhook-signing-key"]
confidence_bonus = 0.20
impact = "Mail can be sent from the verified domain while forged event callbacks hide the delivery evidence."
[[composite]]
id = "shopify-store"
service = "shopify"
name = "Shopify admin API token and webhook secret"
severity = "high"
required = ["shopify-admin-api-token", "shopify-webhook-secret"]
confidence_bonus = 0.20
impact = "The admin token reads orders and customer records while the webhook secret forges order and payment notifications."
[[composite]]
id = "gitlab-runner"
service = "gitlab"
name = "GitLab runner registration and authentication tokens"
severity = "high"
required = [
"gitlab-runner-registration-token",
"gitlab-runner-authentication-token",
]
confidence_bonus = 0.20
impact = "A rogue runner can be registered and then claim CI jobs, exposing every masked variable those pipelines inject."