CI/CD systems hold the keys to everything: cloud credentials, signing keys, package registries and the ability to ship code to every user. Through 2026, pipeline compromise became one of the most exploited attack paths in software — which makes the pipeline itself a production system deserving production security.

Pin everything

Pin action versions to commit SHAs rather than floating tags, lock dependency versions with integrity hashes, and pin base images by digest. Floating references are convenient until a compromised upstream publishes a malicious update that every build silently pulls.

Verify what you produce

Sign build artifacts and generate an SBOM for every release. Consumers of your builds then have something to verify against, and you gain the ability to detect if a released artifact does not match your pipeline output.

Security illustration
Illustration: Security — photo via Unsplash

Assume the pipeline is targeted

Restrict who can modify workflow files, require review for pipeline changes, and alert on new outbound network calls during builds. An attacker who controls CI controls every release you will ever make, which makes it a more valuable target than most production servers.

Hardening the pipeline

The baseline controls are now well established: OIDC instead of stored secrets, ephemeral runners for untrusted workloads, pinned action and dependency versions (a moving tag is not a pin), protected environments with required review for production credentials, and full audit logging of every pipeline change. Treat pipeline configuration with the same review rigor as authentication code — attackers certainly do.

Watching what the pipeline consumes

Dependencies flow through CI even when application dependencies are locked: base images, marketplace actions, plugin updates and shared templates all execute with your credentials. Inventory them, verify signatures and attestations where available (SLSA provenance, image signing), and alert on new or unpinned transitive components. The 2026 breaches shared one trait — a trusted component changed hands or behavior below the review layer.

Security illustration
Illustration: Security — photo via Unsplash

Key takeaways

  • Pipeline config executes with credentials — review it like auth code.
  • Pin actions, images and templates; moving tags are not pins.
  • Inventory and attest everything the pipeline consumes.

Final thoughts

Securing CI/CD is the highest-leverage security work in the delivery chain: one hardened pipeline protects every artifact, credential and deployment downstream, while one soft pipeline makes all other controls performative.

Sources & further reading