Passwordless Kubernetes Image Pulling with Artifact Keeper via ServiceAccount Tokens
Kubernetes clusters often require copying registry passwords into every namespace that pulls private images, repeating the process on every rotation. Dynamic cluster creation makes this routine endless, and copied secrets can expire or leak.
Kubernetes 1.34 introduces a cleaner path. The kubelet can now pass a pod’s ServiceAccount token to an image credential provider plugin. The plugin exchanges the token at the registry for short-lived, read-only credentials. The token is issued only for that specific pod and never appears in any manifest.
Artifact Keeper is an open-source (MIT) Rust registry that stores Docker/OCI images and Maven, PyPI, npm, Cargo, Go, and Helm packages, with metadata in PostgreSQL. Its OIDC provider accepts Kubernetes ServiceAccount tokens and returns temporary credentials scoped to read access only.
How the kubelet invokes the plugin
The credential provider runs on every node. Kubelet sends the image name and, since 1.34 (KEP-4412), the pod’s ServiceAccount token. The plugin returns username, password, and cache duration. Configuration uses tokenAttributes with a dedicated audience such as “artifact-keeper” to avoid conflicts with the API server audience.
Nodes require a ClusterRole granting the “request-serviceaccounts-token-audience” verb for the chosen audience. Without it, kubelet logs “is not authorized to request tokens for this audience” and falls back to unauthenticated pulls.
Registry-side configuration
Administrators create an OIDC provider of type “kubernetes” and supply the cluster’s JWKS keys. They then define mappings that filter claims (for example, namespace equals “team”) and bind matching ServiceAccounts to a read-only group. All ServiceAccounts covered by one mapping share the same registry identity while remaining distinguishable in logs by namespace, ServiceAccount, pod, and node.
Security controls in the plugin
- The 1.7 MB static Rust binary rejects http URLs and follows no redirects.
- Any token appearing in registry error responses is replaced with [REDAUTED].
- A single 10-second timeout covers the entire exchange.
- With cacheType set to ServiceAccount, credentials are cached per ServiceAccount, reducing repeated token exchanges.
Tests on kind 1.34.3 showed authorized pods pulling images on the first attempt, while unauthorized namespaces received 401 errors containing “CI JWT did not match any identity mapping” in the kubelet journal. Push operations and API-token creation are denied because the issued token carries only read scope.
The plugin and installation manifests are published in the artifact-keeper-kubelet-provider repository with cosign signatures. An open issue requests moving the code into the main Artifact Keeper organization and adding a web UI form for OIDC providers.
Related articles
Malicious Code Injected into LiteLLM Open Source AI Package via Supply Chain Attack
The open-source generative AI tool LiteLLM had malicious code inserted into its official distribution packages, enabling credential theft and remote code execution. The compromise affected version 1.107.0 released on October 21, 2026, and was delivered through legitimate channels in a classic software supply chain attack. Seven malicious wheel files were uploaded to PyPI, while official container images on Docker Hub and GitHub Container Registry were also tainted. Security firm JFrog discovered that the malware steals a wide range of secrets including cloud credentials, SSH private keys, browser-stored passwords, development tokens, and AI service API keys from LiteLLM's database. The code also supports execution of externally fetched payloads and abuses Python's startup mechanisms to run even when the application itself is not loaded. This marks the second supply chain incident involving the project in 2026, following a separate event in March.
GhostAction Campaign Compromises 790 GitHub Repositories via Malicious Workflows
Researchers from OpenSourceMalware have identified 790 publicly accessible GitHub repositories containing malicious workflows planted by the GhostAction campaign as of October 9. The campaign abuses trusted maintainer accounts to inject workflows that automatically exfiltrate secrets including AWS access keys and tokens for GitHub, GitLab, Google, Slack, SendGrid, OpenAI, Anthropic, and OpenRouter. Earlier counts by GitGuardian recorded 772 repositories between August 31 and September 30, though the datasets differ and are not cumulative. A separate wave on October 8 impacted 346 repositories linked to two maintainer accounts, including a project belonging to Uber. The malicious workflow runs on code pushes or manual triggers, scans repository files and full Git history for credentials, and sends findings in plaintext to attacker infrastructure. Removing the workflow file does not mitigate exposure, as successful executions already leak credentials and old commits may still contain secrets.
SberTech Launches Platform V Orchestrator for Security Services to Scan Software Before Corporate Deployment
SberTech has announced the launch of a new direction focused on analyzing the security of software prior to its integration into corporate infrastructures. The initiative is built around the company's own Laboratory for Software Verification and the technological platform Platform V Orchestrator for Security Services. This platform combines components for working with both built-in and external analysis tools, enabling checks of digital artifacts, control over software composition and changes, and detection of vulnerabilities, hidden threats, and defects in source code and repositories. SberTech aims to replace fragmented checks and manual result processing with a single managed process, allowing scaled verification without proportional team growth. The move responds to the adoption of hundreds of products from various vendors, widespread use of open-source components, and rising attacks on software supply chains. Primary customers include banks, industrial enterprises, telecom operators, energy companies, and the public sector. The solution is offered as a standalone product that supports on-premises deployment and operation in isolated environments such as private clouds and dedicated data processing contours.
NEC Subcontractor Suffers Cyber Attack Leading to Customer System Disruptions and Personal Data Leak
NEC disclosed that a subcontractor handling system development and maintenance was compromised in a cyber attack during late September 2026. Attackers stole legitimate account credentials and used them to access multiple customer environments from the subcontractor's systems. The intrusion resulted in server files being encrypted, rendering customer systems inoperable. Additional files containing personal information and system details were exfiltrated from a shared cloud storage platform used for coordination between NEC, the subcontractor, and customers. Affected customers have been notified individually, with further details on compromised personal data to be provided as they become available. The incident highlights risks associated with third-party vendor access in IT supply chains.