CI/CD Security: PPE
CI/CD environments are arguably among the most critical systems from a security perspective, as they run software builds and also contain tons of secrets, passwords, and tokens.
Nevertheless, the culture of hardening these environments is still dangerously inadequate.
Pipeline Poisoned Execution (PPE) is a security vulnerability in Continuous Integration/Continuous Deployment pipelines.
It occurs when an attacker injects malicious code or configurations into the pipeline, leading to the execution of unintended or harmful actions during the build, test, or deployment stages.
This can compromise the integrity and security of the software being developed and deployed. PPE exploits can lead to unauthorized access, data leaks, and manipulation of the software supply chain.
In the video below we demonstrate a live exfiltration of secrets, via remote code execution, from a GitHub Action vulnerable to PPE:
As a bonus point here is one of many examples of a query that we can input directly into GitHub Search to find potential sensitive information related to AWS accounts by inspecting the actionโs logs:
"๐๐ฐ๐ฌ ๐ฅ๐๐ฆ๐๐๐" ๐๐๐ (๐ฉ๐๐ญ๐ก:.๐ ๐ข๐ญ๐ก๐ฎ๐/๐ฐ๐จ๐ซ๐ค๐๐ฅ๐จ๐ฐ๐ฌ) ๐๐๐ ("๐ฉ๐ฎ๐๐ฅ๐ข๐ฌ๐ก-๐ฏ๐๐ซ๐ฌ๐ข๐จ๐ง" ๐๐ "๐ฎ๐ฉ๐๐๐ญ๐-๐๐ฎ๐ง๐๐ญ๐ข๐จ๐ง-๐๐จ๐ง๐๐ข๐ ๐ฎ๐ซ๐๐ญ๐ข๐จ๐ง" ๐๐ "๐ฎ๐ฉ๐๐๐ญ๐-๐๐ฎ๐ง๐๐ญ๐ข๐จ๐ง-๐๐จ๐๐")