---
id: CVE-2026-42295
aliases:
  - GHSA-7vf8-2cr6-54mf
  - BIT-argo-workflows-2026-42295
  - GO-2026-5235
title: Argo vulnerable to exposure of artifact repository credentials
summary: Argo vulnerable to exposure of artifact repository credentials
severity: high
vendor: argoproj
product: github.com/argoproj/argo-workflows/v4
ecosystem: go
affected:
  - 'github.com/argoproj/argo-workflows/v4 >= 4.0.0, < 4.0.5'
patched:
  - github.com/argoproj/argo-workflows/v4 4.0.5
published: '2026-05-04'
updated: '2026-09-10'
sourceUpdated: '2026-09-10T03:50:46.312822621Z'
source: OSV
sourceUrl: 'https://osv.dev/vulnerability/GHSA-7vf8-2cr6-54mf'
references:
  - url: >-
      https://github.com/argoproj/argo-workflows/security/advisories/GHSA-7vf8-2cr6-54mf
  - url: >-
      https://github.com/argoproj/argo-workflows/security/advisories/GHSA-c2hv-4pfj-mm2r
  - url: 'https://nvd.nist.gov/vuln/detail/CVE-2026-42295'
  - url: >-
      https://github.com/argoproj/argo-workflows/commit/bdd40908580f727c590c8743836e338b04fe4a87
  - url: 'https://github.com/argoproj/argo-workflows'
  - url: >-
      https://github.com/argoproj/argo-workflows/blob/59f1089b9875723ddffd524513e6bd5cb37e5e31/workflow/artifacts/logging/driver.go#L24
  - url: 'https://github.com/argoproj/argo-workflows/releases/tag/v4.0.5'
tags:
  - osv
  - go
epss: 0.00404
epssPercentile: 0.31879
ingestedAt: '2026-07-21T19:04:58.346Z'
---

## Overview

### Summary
The workflow executor logs all artifact repository credentials (S3 access keys, secret keys, GCS service account keys, Azure account keys, Git passwords, etc.) in plaintext on artifact operation. Any user with read access to workflow pod logs can extract these credentials.

**Note:** This is an incomplete fix of [CVE-2025-62157](https://github.com/argoproj/argo-workflows/security/advisories/GHSA-c2hv-4pfj-mm2r)
### Details
The logging driver passes the entire ArtifactDriver struct to the structured logger, for example:
https://github.com/argoproj/argo-workflows/blob/59f1089b9875723ddffd524513e6bd5cb37e5e31/workflow/artifacts/logging/driver.go#L24

Exposed credential fields:
- S3 (workflow/artifacts/s3/s3.go): AccessKey, SecretKey, SessionToken, ServerSideCustomerKey
- OSS (workflow/artifacts/oss/oss.go): AccessKey, SecretKey, SecurityToken
- GCS (workflow/artifacts/gcs/gcs.go): ServiceAccountKey

### PoC
1. Create template
```yml
apiVersion: argoproj.io/v1alpha1
kind: Workflow
metadata:
  name: cred-leak-test
  namespace: argo
spec:
  entrypoint: main
  templates:
  - name: main
    container:
      image: alpine:3.13
      command: [sh, -c]
      args: ["echo 'hello' > /tmp/output.txt"]
    outputs:
      artifacts:
      - name: output
        path: /tmp/output.txt
        s3:
          endpoint: minio:9000
          insecure: true
          bucket: my-bucket
          key: test-output.txt
          accessKeySecret:
            name: my-minio-cred
            key: accesskey
          secretKeySecret:
            name: my-minio-cred
            key: secretkey
```

2. Then check the logs
`kubectl -n argo logs "cred-leak-test" -c wait`
<img width="1248" height="322" alt="image" src="https://github.com/user-attachments/assets/a5cf6d66-7d67-408d-8583-27d11ecf1507" />


### Impact
Any user with Kubernetes RBAC permissions to read pod logs in the workflow namespace can extract artifact repository credentials.

## Affected packages

- `github.com/argoproj/argo-workflows/v4 >= 4.0.0, < 4.0.5`

## Remediation

Upgrade to a patched release:

- `github.com/argoproj/argo-workflows/v4 4.0.5`
