Securing CI/CD in Open Source Projects: Cilium’s Final Guide to Credentials, Verification, and Remaining Gaps
VK Cloud has released the concluding installment of its translated Cilium series on securing the software supply chain for open source projects. While Part 1 focused on access controls and Part 2 addressed dependency hardening, this final article examines how to isolate secrets between CI and production environments, sign every release without long-lived keys using Sigstore Cosign, and identify remaining security gaps. It also analyzes GitHub’s Actions security roadmap for 2026 and evaluates how upcoming platform changes complement the controls already implemented by the Cilium project.
Protecting Credentials
Cilium assumes that any single layer may eventually fail. Therefore, if a CI workflow is ever compromised, it must not grant attackers access to high-value assets. By default, GITHUB_TOKEN permissions are restricted to minimal read access for contents and packages. Workflows requiring elevated rights must explicitly declare them, preventing forgotten permission blocks from granting broad write access across the organization.
The project maintains two distinct sets of registry credentials behind separate protected GitHub environments. CI credentials can only push development images to quay.io/cilium/*-ci and are available to CI builds. Even if a workflow is compromised, these credentials cannot be used to push production-tagged images. Production credentials reside behind the “release” environment and require explicit maintainer approval before a workflow can access them. Neither forks, feature branches, nor regular CI builds can reach these secrets.
Every actions/checkout call also sets persist-credentials: false, ensuring the GITHUB_TOKEN never appears in the runner’s git configuration where later steps could intercept it.
Signing and Attestation
Every released container image (cilium, operator-*, hubble-relay, clustermesh-apiserver) is signed using Sigstore Cosign with keyless OIDC signatures. No long-lived signing keys exist that could be stolen. The signing pipeline is implemented as a reusable composite action that installs Cosign, generates SPDX SBOMs via anchore/sbom-action, signs the image, and attaches the SBOM attestation. The same process applies to Helm chart OCI artifacts. Release builds execute inside protected environments, ensuring production registry credentials remain gated by environment protection rules.
Additional Hardening Measures
Cilium enforces several supplementary controls: release tags and assets become immutable after publication, every commit must carry a Signed-off-by line enforced by the maintainers-little-helper bot, and the project has undergone third-party security audits by ADA Logics that include a published threat model.
Identified Gaps and Future Work
An internal audit against OpenSSF Scorecard, SLSA, and StepSecurity recommendations revealed several shortcomings. The project currently disables provenance in docker/build-push-action, lacks dependency review during pull requests, does not run govulncheck in CI, and still references 68 internal actions at @main instead of pinned SHAs. Additional missing items include continuous Scorecard monitoring, an updated SECURITY-INSIGHTS.yml file, and a go mod verify step. The team plans to address these issues and welcomes community contributions.
GitHub’s 2026 Actions Security Roadmap
The article also reviews GitHub’s April 2026 roadmap, which introduces platform-level changes across the ecosystem, attack surface, and infrastructure layers. Planned features such as native dependency blocking at the YAML level, centralized workflow execution policies via rulesets, scoped secrets, and a native L7 egress firewall would directly address several gaps Cilium currently mitigates manually. The project views these upcoming capabilities as validation of the defense-in-depth approach it has already adopted.
The authors conclude that supply-chain security requires repeatedly asking what happens if a trusted component is compromised and then adding layers that limit blast radius. Cilium’s strategy combines access controls, pinned digests, least privilege, credential isolation, and signatures. While no combination guarantees invulnerability, openly sharing both successes and remaining weaknesses raises the baseline for the entire open source ecosystem.
Related articles
Security Researcher Builds SAST Scanner for AI-Generated Code and Audits 3,800 Public Repositories
A developer released AigisSAST, a lightweight open-source static analysis tool written in pure Python with no external dependencies, specifically tuned to detect common mistakes made by AI coding assistants. The scanner was run across roughly 3,800 repositories ranging from small pet projects to popular open-source platforms. It identified thousands of potential secrets and misconfigurations, yet manual review reduced the number of genuine leaks to approximately 30 cases, mostly Telegram bot tokens, database credentials, and committed .env files. The project also examined 471 production-grade Telegram bots handling payments and VPN services, uncovering 31 repositories that exposed real credentials either in current code or in Git history. AigisSAST includes 21 detection rules, 193 regression tests, automatic remediation via the fix command, and seamless integration with GitHub Actions. The author deliberately avoided validating any discovered keys to stay within ethical research boundaries.
Vendor Responsibility in Open Source: Licensing Obligations Exposed by Sonatype Nexus Changes
The article examines how vendors building products on copyleft open source projects like Nexus Repository OSS inherit significant legal and security responsibilities under licenses such as EPL 1.0. Sonatype's February 2025 shift from regular OSS binary releases to a limited Community Edition forces downstream vendors to handle their own builds, patch porting, and compliance disclosures. This change highlights the second part of copyleft licenses that outlines obligations for distributors, including revealing modifications and assuming liability for the final product. Security implications arise because critical vulnerabilities in the upstream project must now be tracked and patched by the vendor, with delays creating measurable supply chain risks. The piece provides a practical checklist for buyers to assess licensing hygiene, SBOM availability, and vulnerability response times in any open source-based solution.
PhantomSub Campaign Deploys 101 Malicious npm Packages to Hijack WhatsApp Accounts for Unauthorized Channel Subscriptions
Researchers at OX Security uncovered 101 malicious npm packages tied to the PhantomSub campaign that abuse connected WhatsApp accounts to subscribe users to promotional channels without consent. The packages disguise themselves as modified versions of the open-source Baileys library used for WhatsApp automation. Attackers rely on authenticated sessions rather than simple package installation, allowing them to control subscriptions through lists stored on GitHub, in plaintext, or as encoded identifiers. The packages have accumulated roughly 490,000 downloads, including 116,000 in the past 30 days, though the exact number of compromised accounts remains unknown. As of 28 September, npm had removed only 16 of the identified packages. The operation ultimately benefits channels selling bots, game resources, accounts, and promotion services by inflating subscriber counts while disabling notifications to hide the activity.
AI Model Hallucinations Fuel Slopsquatting Attacks on PyPI and npm Registries
Researchers identified 139 package names consistently hallucinated by five different AI models across Python and JavaScript ecosystems. Seven of these names are already registered on PyPI and npm, including one previously used to distribute malware. The attack vector, termed slopsquatting, allows attackers to register AI-suggested package names and execute code with developer privileges during installation. One package, metro-evaluator, contained malicious code removed by npm in December 2025, while another empty package css-color-stop began receiving downloads after the list was published. Real projects such as odf and lusid now occupy names that AI models recommend, causing developers to install unrelated software. Studies show hallucination rates between 4.62% and 21.7% depending on the model, with commercial models performing better than open-source ones. The findings highlight risks when AI coding agents execute dependency installation commands without human verification.