Skip to content
QuenchWorks

actions-runner

Image · CI/CD & registry · standard · v2.338.0

F 58cosign signedSPDX SBOMSLSA provenanceamd64 · arm64Rebuilt 2026-10-07

GitHub's self-hosted Actions runner on Wolfi, laid out like GitHub's own image (/home/runner, uid 1001) so it drops into ARC scale sets. JavaScript actions run on Wolfi's Node 24 (node20 actions included); the bundled npm and the end-of-life Node 20 are removed. Standalone, it registers from RUNNER_URL and RUNNER_TOKEN. Image only, no chart.

Signed
cosign keyless
SBOM
SPDX, on digest
Provenance
SLSA build
Architectures
amd64, arm64
Runs as
nonroot (uid 1001)
Root filesystem
read-only
Image size
125.1 MB

Published versions

1 tag

Each tag is a multi-arch index (amd64 + arm64) pinned by digest. Tagged by version, never :latest.

VersionSizePublishedDigest
2.338.0latest125.1 MB2026-10-07sha256:2a5ae2830fe8…

Security report (Trivy)

F· 0/10058 fixable · rebuild clears them

Vulnerability detail

actions-runner 2.338.0 · 22 CVE
CVESeverityPackageInstalledFixed inTitle
CVE-2026-111497CRITICALlibbrotlicommon11.2.0-r51.2.0-r7brotli: Out-of-Bounds Write in Google Brotli Decoder
CVE-2026-111497CRITICALlibbrotlidec11.2.0-r51.2.0-r7brotli: Out-of-Bounds Write in Google Brotli Decoder
CVE-2026-111497CRITICALlibbrotlienc11.2.0-r51.2.0-r7brotli: Out-of-Bounds Write in Google Brotli Decoder
CVE-2026-91403CRITICALca-certificates-bundle20260909-r220260909-r3OpenJDK: Distrust eMudhra intermediate CA certificates due to security concerns
CVE-2026-105482HIGHnodejs-2424.21.0-r424.22.1-r0nodejs: nodejs: dns.resolve truncates hostnames containing a NUL character
CVE-2026-105483HIGHnodejs-2424.21.0-r424.22.1-r0nodejs: nodejs: TLS certificate hostname bypass via fullwidth-digit IP hostnames
CVE-2026-106069HIGHnodejs-2424.21.0-r424.22.1-r0nodejs: nodejs: TLS certificate hostname bypass via non-canonical IP hostnames
CVE-2026-111943HIGHca-certificates-bundle20260909-r220260909-r3crypto/x509: golang: crypto/x509: Man-in-the-middle attacks via untrusted intermediate certificates
CVE-2026-58280HIGHMicrosoft.NETCore.App.Runtime.linux-x648.0.319.0.21, 8.0.32, 10.0.13, 11.0.0-rc.2dotnet10.0: dotnet9.0: dotnet: dotnet8.0: .NET Denial of Service Vulnerability
CVE-2026-69651HIGHMicrosoft.NETCore.App.Runtime.linux-x648.0.319.0.21, 11.0.0-rc.2, 10.0.13, 8.0.32dotnet9.0: dotnet: dotnet10.0: dotnet8.0: .NET Denial of Service Vulnerability
CVE-2026-84008HIGHSystem.Security.Cryptography.Pkcs10.0.1210.0.13, 11.0.0-rc.2, 8.0.2, 9.0.21dotnet: .NET Denial of Service Vulnerability
CVE-2026-92392HIGHcurl8.22.0-r48.23.0-r0curl: curl: HTTP/2 upload Use-After-Free
CVE-2026-92392HIGHlibcurl-openssl48.22.0-r48.23.0-r0curl: curl: HTTP/2 upload Use-After-Free
CVE-2026-96225HIGHMicrosoft.NETCore.App.Runtime.linux-x648.0.318.0.32, 10.0.13, 11.0.0-rc.2, 9.0.21dotnet: dotnet8.0: dotnet9.0: dotnet10.0: .NET Elevation of Privilege Vulnerability
CVE-2026-96231HIGHMicrosoft.NETCore.App.Runtime.linux-x648.0.318.0.32, 10.0.13, 9.0.21, 11.0.0-rc.2dotnet: dotnet9.0: dotnet10.0: dotnet8.0: .NET Elevation of Privilege Vulnerability
CVE-2026-96233HIGHMicrosoft.NETCore.App.Runtime.linux-x648.0.3110.0.13, 11.0.0-rc.2, 9.0.21, 8.0.32dotnet10.0: dotnet: dotnet8.0: dotnet9.0: ASP.NET Core Denial of Service Vulnerability
CVE-2026-105481MEDIUMnodejs-2424.21.0-r424.22.1-r0nodejs: nodejs: Response desynchronization via improper HTTP keep-alive connection reuse
CVE-2026-106072MEDIUMnodejs-2424.21.0-r424.22.1-r0nodejs: nodejs: Authentication bypass via non-canonical IPv4 hostname verification
CVE-2026-106074MEDIUMnodejs-2424.21.0-r424.22.1-r0nodejs: nodejs: predictable random values via snapshot entropy cache reuse
CVE-2026-66822MEDIUMMicrosoft.NETCore.App.Runtime.linux-x648.0.319.0.21, 11.0.0-rc.2, 10.0.13, 8.0.32dotnet10.0: dotnet8.0: dotnet9.0: dotnet: .NET Information Disclosure Vulnerability
CVE-2026-70162MEDIUMSystem.Security.Cryptography.Pkcs10.0.1210.0.13, 11.0.0-rc.2, 8.0.2, 9.0.21dotnet: dotnet: Denial of Service via specially crafted web requests
CVE-2026-106073LOWnodejs-2424.21.0-r424.22.1-r0nodejs: Node.js: Filesystem read permission bypass via fs.realpathSync()
4
Critical
38
High
15
Medium
1
Low
0
Unknown
fixable per nightly scan · peak 478 of 115 days with any · 2026-06-29 to 2026-10-22

Pull the image

Run it directly with Docker, Podman, or any Kubernetes workload. Nonroot, read-only root filesystem, built for amd64 and arm64.

Pull (tag)

docker pull ghcr.io/quenchworks/images/actions-runner:2.338.0

Tags

2.338.02.338.0-amd642.338.0-arm64

Images are tagged by app version (never :latest): a multi-arch index plus per-arch tags.

App version
2.338.0
Architectures
amd64, arm64
Runs as
nonroot (uid 1001)
Root filesystem
read-only
License
MIT

Verify the supply chain

This image is cosign-signed and carries an SPDX SBOM and a SLSA build-provenance attestation on the same digest. Check all three yourself:

# 1. signature — built and signed by QuenchWorks CI
cosign verify ghcr.io/quenchworks/images/actions-runner:2.338.0 \
  --certificate-identity-regexp 'https://github.com/quenchworks/.+' \
  --certificate-oidc-issuer https://token.actions.githubusercontent.com

# 2. SLSA build provenance — which workflow built it, from what
cosign verify-attestation --type https://slsa.dev/provenance/v1 ghcr.io/quenchworks/images/actions-runner:2.338.0 \
  --certificate-identity-regexp 'https://github.com/quenchworks/.+' \
  --certificate-oidc-issuer https://token.actions.githubusercontent.com

# 3. SPDX SBOM — the package inventory
cosign verify-attestation --type https://spdx.dev/Document/v2.3 ghcr.io/quenchworks/images/actions-runner:2.338.0 \
  --certificate-identity-regexp 'https://github.com/quenchworks/.+' \
  --certificate-oidc-issuer https://token.actions.githubusercontent.com

See the SBOM & provenance guide for reading the SBOM and using these checks in CI.

Transparency

Every image carries its SBOM and provenance as attestations on the same digest, publicly verifiable with the commands above (they check the package and the Sigstore transparency log, Rekor).

Upstream project: https://github.com/actions/runner