Description
act starts an HTTP Artifacts V4 backend whenever a workflow uses actions/upload-artifact@v4 or actions/download-artifact@v4. The control-plane RPCs of that backend, including CreateArtifact, GetSignedArtifactURL, ListArtifacts, FinalizeArtifact and DeleteArtifact, accept a caller-supplied workflow_run_backend_id and never check that it belongs to the requester: validateRunIDV4 in pkg/artifacts/artifacts_v4.go parses the value and returns it with the comparison against the requesting task's run ID left commented out. The signed URLs the backend issues are authenticated by an HMAC whose key is hardcoded to the four bytes 0xba 0xdb 0xee 0xf0, identical in every build, computed over a concatenation of endpoint, expiry, artifact name and task ID with no length prefix or delimiter, so signatures are both forgeable and ambiguous between differing artifact name and task ID pairs. The --artifact-server-addr flag defaults to the host's outbound address rather than loopback, leaving the backend reachable from the surrounding network. Any client that can reach it may read, overwrite or delete the artifacts of a concurrently running job with no credentials, exposing build outputs such as secrets and deployment credentials and permitting their replacement before the owning job consumes them.
Published: 2026-08-24
Score: 8.7 High
EPSS: < 1% Very Low
KEV: No
Impact: Unauthorized access and tampering of build artifacts, leading to exposure of secrets and credential compromise.
Action: Immediate Patch
AI Analysis

Impact

An artifact backend is started by act when a workflow references actions/upload-artifact@v4 or actions/download-artifact@v4. The backend’s RPC endpoints—CreateArtifact, GetSignedArtifactURL, ListArtifacts, FinalizeArtifact, and DeleteArtifact—accept a caller‑supplied workflow_run_backend_id but never verify that it matches the requester, as the validateRunIDV4 check is commented out, constituting a CWE‑862 (Missing Authorization) weakness. Signed URLs are generated with a hard‑coded four‑byte key (0xBA 0xDB 0xEE 0xF0) common to all builds and is computed over an endpoint string, expiry, artifact name, and task ID with no length delimiters, which gives rise to a CWE‑321 (Hardcoded Cryptographic Key) problem and makes the signature both forgeable and ambiguous. The default address for the artifact server is the host’s outbound IP instead of loopback, so any client that can reach the host may read, overwrite, or delete artifacts of concurrent jobs without credentials. These artifacts can contain secrets, deployment keys, or code to be executed by the running job, allowing an attacker to exfiltrate sensitive data or inject malicious build steps before the job processes them.

Affected Systems

The vulnerability affects the open‑source project act by nektos, specifically versions 0.2.81 through 0.2.89. Users of these releases that enable the v4 artifact backend are at risk.

Risk and Exploitability

The CVSS score of 8.7 indicates high severity. EPSS is not available, but the lack of authentication (CWE‑862) and the default network exposure make exploitation likely in environments where an attacker can reach the host. The hard‑coded key (CWE‑321) means that attackers can forge signed URLs to download, overwrite, or delete artifacts without any credentials, directly compromising confidentiality, integrity, and availability. It is not currently listed in CISA’s KEV catalog.

Generated by OpenCVE AI on August 24, 2026 at 17:47 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade act to version 0.2.90 or later, where the artifact backend now includes workflow run ID validation to address the CWE‑862 weakness and uses a securely generated HMAC key to resolve the CWE‑321 issue.
  • Reconfigure the --artifact-server-addr flag to bind only to the loopback interface (127.0.0.1) to prevent external access to the artifact server.
  • Apply network firewall rules or container isolation to block incoming connections to the artifact server port from untrusted hosts.

Generated by OpenCVE AI on August 24, 2026 at 17:47 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Fri, 28 Aug 2026 19:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'none', 'Technical Impact': 'total'}, 'version': '2.0.3'}


Mon, 24 Aug 2026 13:30:00 +0000

Type Values Removed Values Added
Description act starts an HTTP Artifacts V4 backend whenever a workflow uses actions/upload-artifact@v4 or actions/download-artifact@v4. The control-plane RPCs of that backend, including CreateArtifact, GetSignedArtifactURL, ListArtifacts, FinalizeArtifact and DeleteArtifact, accept a caller-supplied workflow_run_backend_id and never check that it belongs to the requester: validateRunIDV4 in pkg/artifacts/artifacts_v4.go parses the value and returns it with the comparison against the requesting task's run ID left commented out. The signed URLs the backend issues are authenticated by an HMAC whose key is hardcoded to the four bytes 0xba 0xdb 0xee 0xf0, identical in every build, computed over a concatenation of endpoint, expiry, artifact name and task ID with no length prefix or delimiter, so signatures are both forgeable and ambiguous between differing artifact name and task ID pairs. The --artifact-server-addr flag defaults to the host's outbound address rather than loopback, leaving the backend reachable from the surrounding network. Any client that can reach it may read, overwrite or delete the artifacts of a concurrently running job with no credentials, exposing build outputs such as secrets and deployment credentials and permitting their replacement before the owning job consumes them.
Title act 0.2.81 through 0.2.89 Missing Authorization in the Artifacts V4 Backend
First Time appeared Nektos
Nektos act
Weaknesses CWE-321
CWE-862
CPEs cpe:2.3:a:nektos:act:*:*:*:*:*:*:*:*
Vendors & Products Nektos
Nektos act
References
Metrics cvssV3_1

{'score': 8.8, 'vector': 'CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H'}

cvssV4_0

{'score': 8.7, 'vector': 'CVSS:4.0/AV:A/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N'}


cve-icon MITRE

Status: PUBLISHED

Assigner: VulnCheck

Published:

Updated: 2026-08-26T16:15:24.489Z

Reserved: 2026-08-19T20:34:19.724Z

Link: CVE-2026-76847

cve-icon Vulnrichment

Updated: 2026-08-26T15:56:54.177Z

cve-icon NVD

Status : Received

Published: 2026-08-24T14:17:02.857

Modified: 2026-08-26T17:17:14.157

Link: CVE-2026-76847

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-24T18:00:04Z

Weaknesses
  • CWE-321

    Use of Hard-coded Cryptographic Key

  • CWE-862

    Missing Authorization