---
id: "CVE-2026-58412"
kind: "vulnerability"
aliases: ["CVE-2026-58412"]
title: "Filecoin Pin upload action spends owner's wallet on fork artifacts"
severity: "high"
cvss: 8.2
epss: null
exploited: false
status: "open"
category: "package"
products: []
ecosystems: []
tags: ["ci", "filecoin", "github-actions", "ipfs", "package"]
not_affected_if: ["fixed-version", "no-wallet-secret", "no-workflow-run"]
published_at: "2026-10-30T21:17:12+00:00"
first_seen_at: "2026-10-30T21:25:53+00:00"
updated_at: "2026-10-30T21:26:39+00:00"
sources: [{"source": "nvd", "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-58412", "first_seen_at": "2026-10-30T21:25:53+00:00"}]
---

# Filecoin Pin upload action spends owner's wallet on fork artifacts

The Filecoin Pin upload GitHub Action skips its fork check in workflow_run runs, so artifacts from an outside pull request get uploaded. An external contributor can make those uploads run on the repository owner's Filecoin wallet, spending its funds and storing attacker-chosen data.

_Summary, check and fix written by a model from the sources; labelled as such._

## How to check

- Find workflows that use the Filecoin Pin upload action and check the version pinned, for example `uses: .../upload-action@0.x` or a `1.x` tag.
- Look for a `workflow_run` trigger that downloads an artifact produced by a pull_request workflow and then calls the upload action with `walletPrivateKey`.
- Check whether that wallet key is set in the repository or organization secrets.

## Fix

- Filecoin Pin upload action: move to `1.1.0` or later.
- The 0.x line is not receiving a backport, so 0.x users must migrate to a fixed 1.x release.

## Timeline

- 2026-10-30T21:25:53+00:00 nvd https://nvd.nist.gov/vuln/detail/CVE-2026-58412

## From the sources

Filecoin Pin is an IPFS Pinning Service API implementation that pins to Filecoin's PDP service. Prior to 1.1.0, the upload GitHub Action's fork detection in `upload-action/src/build.js` checks only `event.pull_request`. In the documented two-workflow pattern, an untrusted fork pull-request workflow produces an artifact and a privileged `workflow_run` workflow downloads and uploads it. Because `workflow_run` has no `event.pull_request`, `isForkPR` becomes false and `uploadStatus` becomes `pending-upload`. The action later resolves `workflow_run.pull_requests` without repeating the fork check before initializing the wallet with `walletPrivateKey` and uploading the artifact. An external contributor can therefore cause attacker-controlled artifacts to be stored using the repository owner's Filecoin wallet, incurring unauthorized storage expenditure, dataset pollution and consumption of configured wallet funds. Disclosure of the wallet private key is not required. The 0.x action line is not receiving a backport and must be migrated to a fixed 1.x release. This issue is fixed in version 1.1.0.

---

_Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai_
