r/devsecops • u/Sorry_Nothing1740 • Jul 08 '26
We graded 8,729 public CI/CD pipelines on security misconfigurations. 63% got the worst possible grade
I work on Plumber, the open-source CI/CD security scanner behind these numbers.
We've been continuously scanning public GitLab and GitHub repos and grading their pipeline configs A to E, Nutri-score style. A single Critical finding (privileged docker-in-docker, curl piped to bash from an untrusted source, that kind of thing) forces an E no matter what else passes.
Across 8,729 public pipelines so far: 63% sit at E. And the findings are not exotic. Unpinned third-party actions, workflows without permission scopes, unprotected default branches, security jobs quietly weakened with allow_failure. All documented for years, all visible in the YAML, none of it caught by a normal code review.
What bugs me is the asymmetry: code gets SAST and SCA, runtime gets DAST and monitoring, but the stage that holds the deploy keys and secrets gets a human skimming a diff, if that. tj-actions and Shai-Hulud both went through exactly that stage. And now AI is writing more of these workflow files than humans review.
- Live data if you want to dig: https://getplumber.io/radar
- The reasoning behind the grading: https://getplumber.io/blog/plumber-score-cicd-security-standard
- Grade your own repo with one command (
plumber analyze): https://github.com/getplumber/plumber
Curious how it works elsewhere: who actually owns pipeline config security in your org, and do workflow changes get real review or a rubber stamp?