Awesome CI/CD Attacks 
Offensive research of systems and processes related to developing and deploying code.
Offensive research of systems and processes related to developing and deploying code.
A curated list of unique and useful CI/CD attack techniques.
Postman's public API network leaks thousands of secrets due to confusing UI, forks, and insufficient secret scanning.
Azure CLI leaks secrets to CI/CD logs due to usage patterns.
As long as it's part of a fork network.
Public EBS, RDS, AMI and Elasticsearch clusters exposed to the internet.
Researchers found 500GB of credentials, private repos, and keys in public AWS AMIs, impacting various industries.
Employee's personal GitHub repos expose internal Azure & Red Hat secrets.
Misconfigured public registries with software artifacts containing sensitive proprietary code and secrets.
A tool that can reveal deleted GitLab commits that potentially contain sensitive information and are not accessible via the public Git history.
A tool that can reveal deleted GitHub commits that potentially contain sensitive information and are not accessible via the public Git history.
Bitbucket Secured Variables leak secrets via artifact objects; recommendations include using dedicated secrets managers and code scanning.
Millions of secrets exposed in web app frontends via JavaScript and debug pages.
Publicly exposed AWS DocumentDB snapshot of Cinemark Brazil revealed millions of customer records.
Researchers found thousands of Docker Hub images leaking private keys and API secrets.
A tool to monitor for an approval event and then quickly replace a file in the PR head with a local file specified as a parameter.
Scan commit history for internal packages to execute dependency confusion.
Exploit generative AI platforms' tendency to generate non-existent coding libraries to execute Dependecy Confusion.
Impersonate popular VSCode extensions and trick unknowing developers into downloading them.
VS Code extensions have vulnerabilities (command injection, path traversal, zip slip) that can compromise developer machines.
Researchers uploaded malicious packages with internal company names, gaining access to Apple, Microsoft, and others due to dependency confusion.
Docker dependency confusion occurs when a misconfigured Docker mirror pulls malicious public images instead of private ones.
Terraform modules are not protected by the Dependency Lock File, consequently, a seemingly harmless module could potentially introduce malicious code.
Bypass GitHub workflow approval requirement by becoming a contributor.
Millions of GitHub repos are vulnerable to RepoJacking due to org renames, leading to potential code execution.
Attackers use fake GitHub notifications to trick users into authorizing malicious OAuth apps that steal repo access.
Attacking misconfigured pipelines that use OIDC.
More ways to find dependencies in code for Dependency Confusion.
Misconfigured CI system accessible from the internet.
Scraped JavaScript front-end files of the target and used ASTs to identify import/require statements which lead to discovering a public container with NPM credentials.
Many public and popular libraries that have long been abandoned are still being used in huge projects. Access to projects can be hijacked through domain name purchases.
Combining pull_request_target workflow trigger with an explicit checkout of an untrusted PR may lead to repository compromise.
GitHub Actions command injection.
Misconfigured SAST tools can be exploited to execute malicious code on CI systems, allowing attackers to steal credentials or deploy malicious artifacts.
Poisoned Pipeline Execution (PPE) lets attackers run malicious code in a CI/CD system without direct access.
Phishing GitHub users to download and execute repositories.
Vulnerabilities in AI-powered GitHub Actions. Syntactical permission checks that let attackers impersonate trusted apps and Dependabot Deputy Confusion Injection.
Allows attackers to compromise workflows even with limited permissions by exploiting vulnerabilities or dependency flaws, attackers steal cache tokens, fill the cache to force evictions, and replace legitimate entries with malicious code.
Maintainer Email hijacking.
Typosquatting involves publishing malicious packages with names similar to legitimate ones, exploiting typos to inject malicious code.
GitHub Actions workflow_run PE.
GitHub Actions vulnerability allows forked commits to bypass workflow security settings.
Dependency Confusion using AWS AMIs.
Unclaimed WordPress plugins are vulnerable to takeover via the plugin directory.
Attackers exploit misconfigured runners and weak PAT security to gain persistence, escalate privileges, and move laterally.
Modifying a Terraform state file allows attackers to delete infrastructure or execute code via custom providers.
Registering a GitHub runner with the ubuntu-latest tag grants access to jobs originally designated for GitHub-provisioned runners.
Extracting all repository and organization secrets in GitHub Actions.
Using hidden Unicode characters to manipulate GitHub Copilot's suggestions.
Leaking secrets from vulnerable GitHub Actions workflows is possible via several methods: reading files/environment variables, intercepting communication, and dumping runner memory.
Inventory how development tools (typically CLIs), have lesser-known RCE-By-Design features.
Can be used to steal secrets of job executed on the malicious runner.
A novel GitHub Actions worm exploits the action dependency tree. Attackers compromise an action, then infect dependent actions via branch pushes or tag overwrites, spreading malware recursively.
Draft pull requests won't alert repository contributors, but will still trigger pipelines.
Repository webhooks, used to trigger CI/CD pipelines, can be abused to access internal systems.
GitHub Actions can bypass required reviews, allowing malicious code pushes to protected branches.
A bug in GitHub's API allowed forging signed commits. By exploiting a regex flaw in an internal Codespaces API endpoint, an attacker could create commits signed by any user, despite GitHub's web flow signature.
Hidden GitHub comment link.
Cache poisoning attack on the NPM registry rendering packages unavailable.
A critical vulnerability in GitHub Actions, involving a misconfigured self-hosted runner in the actions/runner-images repository, allowed potential compromise of all GitHub and Azure hosted runner images.
Methods of sneaking malicious code into GitHub pull requests.
Changing account's email to block-listed domain, automatically bans the account.
StarJacking is a technique where attackers make malicious open-source packages appear popular.
NPM Manifest Confusion.
Rather than inserting logical bugs, adversaries can attack the encoding of source code files to inject vulnerabilities.
GitHub Actions, even when pinned to a commit SHA, can still pull in malicious code via mutable dependencies like Docker images, unlocked packages, or external scripts.
Malicious code can be injected into npm projects via lockfiles (package-lock.json or yarn.lock) because these large, machine-generated files are rarely reviewed thoroughly.
Creating a GitHub branch that matches a branch protection rule pattern with a workflow file that triggers on push to gain access to environment secrets.
Hide commits in a GitHub PR.
Azure DevOps Services Attack Toolkit.
GitHub Attack Toolkit.
GitHub Attack Toolkit - Extreme Edition.
A project to record the public GitHub timeline, archive it, and make it easily accessible for further analysis.
A queryable offline mirror of the GitHub API data. [Tutorial](https://ghtorrent.github.io/tutorial/).
Dump Git repository from a website.
OSINT tool to investigate GitHub profiles.
Search GitHub using regex.
This tool can manage Jenkins tasks, like listing jobs, dumping credentials, running commands/scripts, and managing API tokens.
A tool to extract secrets stored inside CI/CD environments.
Notes about attacking Jenkins servers.
The largest open-source database for detecting secrets, API keys, passwords, tokens, and more.
A web-based code search and navigation tool for public repositories.
Automate token validation using Nuclei.
Static analysis for GitHub Actions.
Examples include exploiting S3 misconfigurations, Jenkins plugin flaws, GitLab runner privilege escalations, Kubernetes pod annotation vulnerabilities, and compromised developer laptops.
Includes public vulnerability research presented at Black Hat USA 2024 and DEF CON 32.
Researchers exploited a critical PyTorch vulnerability via a malicious pull request to execute code on self-hosted runners.
A comprehensive framework for analyzing and defending against attacks targeting Software Development Life Cycle Infrastructure.