Generated banner for Owasp Cicd
Generated logo for Owasp Cicd

Owasp Cicd

MicrosoftOfficialPublished by Microsoft

  • Skill
  • Guidelines
  • Security
  • CC-BY-SA-4.0
  • No issues found

From the author

OWASP CI/CD Top 10 knowledge base for identifying, assessing, and remediating CI/CD pipeline security risks.
— the description by Microsoft

AutoGineer summary

Written by AutoGineer from the skill’s own files, not by the author

The owasp-cicd skill provides a machine-readable reference library derived from the OWASP Top 10 CI/CD Security Risks project. It is designed to assist AI agents in evaluating pipeline security by offering standardized definitions, risk assessments, and remediation strategies for common vulnerabilities such as dependency chain abuse, insufficient flow control, and inadequate identity management. Each vulnerability is documented with specific checklists, attack scenarios, and defensive controls to support security auditing and hardening of CI/CD environments.

What it does

  • Provides structured documentation for the 10 most critical CI/CD security risks.
  • Offers vulnerability checklists to identify potential exposure in pipeline configurations.
  • Details specific prevention controls and remediation steps for each risk category.
  • Includes realistic attack scenarios to help visualize potential exploitation paths.
  • Supplies detection guidance to help identify security signals within CI/CD systems.

When to use it

  • When auditing CI/CD pipeline configurations for security gaps.
  • When developing security policies for automated build and deployment processes.
  • When assessing the risk profile of existing supply chain and deployment workflows.
  • When training or prompting an agent to perform security reviews of infrastructure-as-code or pipeline definitions.

Advantages

  • Standardized, machine-readable format facilitates integration into automated security workflows.
  • Derived from the authoritative OWASP CI/CD Security project.
  • Covers both immediate remediation and long-term defensive strategies.
  • Provides clear, actionable guidance for complex security topics like artifact integrity and credential hygiene.

Usage examples

“What are the risks associated with insufficient flow control in our CI/CD pipeline?”
The agent retrieves the CICD-SEC-1 reference, outlining risks like unauthorized code pushes and deployment bypasses, and provides a checklist to verify branch protection rules.
“How can we prevent dependency chain abuse in our build process?”
The agent accesses the CICD-SEC-3 documentation to provide specific prevention controls and detection methods for securing the software supply chain.

Install

  1. Download the skill as a ZIP:

    https://mp-staging.autogineer.com/agent-skills/microsoft/owasp-cicd/download
  2. Unzip it into the cross-client skills folder of your project:

    mkdir -p .agents/skills && unzip owasp-cicd.zip -d .agents/skills

Documentation by Microsoft

OWASP® CI/CD Top 10 — Skill Entry

This SKILL.md is the entrypoint for the OWASP CI/CD Top 10 skill.

The skill encodes the OWASP Top 10 CI/CD Security Risks as structured, machine-readable references that an agent can query to identify, assess, and remediate CI/CD pipeline security risks.

Normative references (CI/CD Top 10)

  1. 00 Vulnerability Index

  2. 01 Insufficient Flow Control Mechanisms

  3. 02 Inadequate Identity and Access Management

  4. 03 Dependency Chain Abuse

  5. 04 Poisoned Pipeline Execution

  6. 05 Insufficient PBAC

  7. 06 Insufficient Credential Hygiene

  8. 07 Insecure System Configuration

  9. 08 Ungoverned Usage of 3rd Party Services

  10. 09 Improper Artifact Integrity Validation

  11. 10 Insufficient Logging and Visibility

Skill layout

  • SKILL.md — this file (skill entrypoint).

  • references/ — the CI/CD Top 10 normative documents.

    • 00-vulnerability-index.md — index of all vulnerability identifiers, categories, and cross-references.

    • 01 through 10 — one document per vulnerability aligned with OWASP CI/CD Security numbering.

Third-Party Attribution

Copyright © OWASP Foundation. OWASP® Top 10 CI/CD Security Risks content is derived from works by the OWASP Foundation, licensed under CC BY-SA 4.0 (https://creativecommons.org/licenses/by-sa/4.0/). Source: https://owasp.org/www-project-top-10-ci-cd-security-risks/ Modifications: Vulnerability descriptions restructured into agent-consumable reference documents with added detection and remediation guidance. OWASP® is a registered trademark of the OWASP Foundation. Use does not imply endorsement.

Files

references/03-dependency-chain-abuse.md


title: 'CICD-SEC-3: Dependency Chain Abuse' description: OWASP CI/CD Top 10 reference for dependency chain abuse vulnerabilities including dependency confusion and typosquatting attacks

03 Dependency Chain Abuse

Identifier: CICD-SEC-3:2025 Category: Supply Chain

Description

Dependency chain abuse risks refer to an attacker's ability to abuse flaws relating to how engineering workstations and build environments fetch code dependencies. Dependency chain abuse results in a malicious package inadvertently being fetched and executed locally when pulled.

Managing dependencies and external packages is increasingly complex given the total number of systems involved across all development contexts. Packages are fetched using dedicated clients per programming language, typically from a combination of self-managed package repositories and language-specific SaaS repositories. Inadequate configurations may cause an engineer or the build system to download a malicious package instead of the intended one, and in many cases the package is immediately executed after download due to pre-install scripts.

The main attack vectors are dependency confusion (publishing malicious packages in public repositories with the same name as internal packages), dependency hijacking (compromising a package maintainer's account to upload malicious versions), typosquatting (publishing packages with names similar to popular packages), and brandjacking (publishing packages that mimic a trusted brand's naming conventions).

Risk

  • Malicious code executes on developer workstations or build servers when a poisoned package is pulled.

  • Credential theft and lateral movement within the environment where the malicious code executes.

  • Malicious code can make its way to production from the build server, potentially maintaining the original safe functionality to reduce probability of discovery.

  • Internal package names leaked to public repositories enable dependency confusion attacks.

  • Build environments fetching packages directly from the internet without proxy controls are exposed to all dependency chain attack vectors.

Vulnerability checklist

  • Clients fetch packages directly from external repositories without routing through an internal proxy.

  • Internal package names are not registered under the organization's scope.

  • No checksum or signature verification is configured for pulled packages.

  • Clients are configured to pull the latest version of a package rather than a pinned version.

  • Package manager configuration files (such as .npmrc) are absent from project repositories.

  • Pre-install scripts execute in a context with access to secrets and sensitive resources.

  • Names of internal projects are published or discoverable in public repositories.

  • No controls exist to prevent dependency confusion between internal and external registries.

Prevention controls

  1. Route all package fetches through an internal proxy rather than directly from the internet.

  2. Where applicable, configure all clients to pull packages only from internal repositories containing pre-vetted packages, and enforce this client configuration.

  3. Enable checksum verification and signature verification for all pulled packages.

  4. Pin package versions to pre-vetted versions or ranges and use framework-specific lock files.

  5. Register all private packages under the organization's scope.

  6. Ensure all code referencing a private package uses the package's scope.

  7. Force clients to fetch scoped packages solely from the internal registry.

  8. Run pre-install scripts in a separate context without access to secrets or other sensitive resources.

  9. Include package manager configuration files in every project repository to override insecure default client configurations.

  10. Avoid publishing names of internal projects in public repositories.

Example attack scenarios

Scenario A — Dependency confusion

An attacker discovers the name of an internal NPM package used by the organization by finding references in a public repository. The attacker publishes a package with the same name on the public NPM registry with a higher version number. The build system, configured to check both internal and public registries, pulls the higher-versioned malicious package. The pre-install script executes, exfiltrating environment variables containing cloud credentials.

Scenario B — Dependency hijacking

An attacker compromises the account of a maintainer of a widely-used Python package on PyPI. They upload a new version containing a backdoor that executes during installation. Organizations configured to pull the latest version of the package automatically fetch and execute the compromised version on their build servers, granting the attacker access to build secrets and deployment credentials.

Detection guidance

  • Monitor package manager audit logs for unexpected package sources or version changes.

  • Compare checksums of fetched packages against known-good values.

  • Alert on packages pulled from public registries that share names with internal packages.

  • Audit package manager client configurations across build environments and developer workstations.

  • Scan dependency lock files for unexpected version changes or new dependencies.

  • Monitor outbound network connections from build nodes during dependency installation.

Remediation

  • Configure internal proxies as the sole package source for all build environments and developer workstations.

  • Register all internal package names under the organization's scope on relevant public registries to prevent namespace squatting.

  • Pin all dependency versions and enforce lock file usage.

  • Enable checksum and signature verification across all package manager configurations.

  • Isolate pre-install script execution from secrets and sensitive build resources.

  • Remove any references to internal package names from public repositories.

  • Harden all build environments according to the guidelines under CICD-SEC-7.

Requirements and compatibility

Written for: GitHub Copilot, Claude Code

Works with: Claude Code, Claude apps, OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI, Kiro, OpenCode, Goose, Amp, Roo Code, JetBrains Junie, Factory Droid, Devin (ex-Windsurf), Mistral Vibe, OpenHands, Letta

“Works with” means the tool reads the open Agent Skills format; a skill written for one tool may use features others lack.

Needs: Claude Code frontmatter

Security

No issues found by our static scan· No issues found

A static scan is not a guarantee. Skills are third-party content: review a skill before you let an agent use it.

Attribution and licence

Published by
Microsoft
Publisher
Microsoft (Official)
Source
microsoft/hve-core · .github/skills/security/owasp-cicd · commit f425e94
Licence
Creative Commons Attribution-ShareAlike 4.0 International (redistribution allowed)
  • LICENSE (written by AutoGineer)
  • ATTRIBUTION.md (written by AutoGineer)
Synced

AutoGineer is not affiliated with or endorsed by Microsoft.

Download ZIP

The ZIP holds the skill’s files, its licence files and an ATTRIBUTION.md. Download owasp-cicd.zip