BlackTree Security · Infrastructure · Automation · AI

A Leaked GitLab Email Address Can Become a Code-Push Credential

A leaked project email address can become a code-push credential. Aikido researchers demonstrated that GitLab incoming-email tokens can authorise attached patches, commits and CI runs within the account owner’s permissions. This is a research finding, not evidence of an active attack campaign.

An email address with the authority of an account

Aikido found that the embedded token is reused across an account’s projects, has no expiry and does not validate the sender. In its test, email-driven code changes also bypassed a project IP allowlist. The attacker still needed project information and sufficient permissions on the victim account; possession does not grant unrestricted access to every branch.

GitLab’s documentation tells users to keep incoming addresses private and reset the token after a leak. Aikido says GitLab improved warnings and documentation after disclosure, while retaining the underlying behaviour.

The hidden credential belongs in your secret inventory

The practical problem is discoverability. A team may recognise a token in a configuration file as sensitive while treating an email address in a contribution guide as harmless contact information. Security review should follow the authority a value carries, not its appearance.

For maintainers, the question is what a compromised identity could change before a second person notices. Separate repository write access, pipeline execution and production deployment in that review. A successful commit should not automatically become permission to use every deployment secret.

What GitLab administrators and maintainers should do

  • Search for incoming addresses. Scan repositories, history, wikis, documentation, tickets and help centres for @incoming.gitlab.com or the self-managed incoming-email domain.
  • Treat a match as a leaked credential. Reset the owner’s incoming email token. Consult GitLab’s reset guidance and update dependent workflows.
  • Review commits and pipelines. Examine recent changes attributed to the owner, especially modifications to .gitlab-ci.yml, protected branches and unexpected pipeline runs.
  • Reduce maintainer-token impact. Use protected environments, scoped and short-lived CI secrets, separated runners and independent approval for production deployment.
  • Do not rely on IP restrictions for this path. Include email ingestion in the threat model for projects that otherwise appear network-restricted.
  • Change support workflows. Publish a normal support mailbox or issue form rather than the token-bearing incoming address.

BlackTree previously covered an unauthenticated GitLab flaw that could make public projects writable and an AI-agent path into CI commands. This is a different boundary: no software exploit is required if a credential-shaped email address has already been published.

Sources

Leave a Reply

Your email address will not be published. Required fields are marked *