Description
Filecoin Pin is an IPFS Pinning Service API implementation that pins to Filecoin's PDP service. In daemon deployments up to and including version 1.1.0, `POST /pins` in `src/filecoin-pinning-server.ts` checks a caller-supplied CID with `CID.parse` and passes it to `pinStore.pin`, but does not enforce request rate limits or per-user quotas. In `src/filecoin-pin-store.ts`, each pin independently schedules `_processPinInBackground` with `setTimeout` without a queue, semaphore or concurrency cap, then recursively traverses the full DAG using `helia.pins.add(cid)`. The per-pin Helia/Bitswap node in `src/create-pinning-helia.ts` has no application-level byte, block or traversal-time limits. Blocks are written under `carStoragePath` by `src/core/car/car-blockstore-base.ts` and `src/core/car/car-file-backend.ts`, with `stats.totalSize` updated only after writing. An authenticated caller, or an anonymous caller when `ALLOW_NO_AUTH=true`, can submit large DAGs and exhaust disk, network, CPU, memory and libp2p resources, causing service degradation or host/process failure and leaving partial CAR files requiring recovery. The default localhost binding and token requirement reduce exposure. Because nodes have no bootstrap or mDNS configuration, a CID alone may not be fetchable, but caller-supplied `origins` can point to a reachable attacker-controlled libp2p source; concurrent requests accelerate resource pressure. Version 1.1.1 documents operational mitigations but does not implement the missing resource controls.
Published: 2026-10-30
Score: 6.5 Medium
EPSS: n/a
KEV: No
Impact: Denial of Service via resource exhaustion
Action: Patch Immediately
AI Analysis

Impact

Filecoin Pin is a pinning service API that allows clients to request that a content identifier (CID) be pinned to the Filecoin network. The server performs a recursive traversal of the DAG referenced by the CID, writing CAR files to disk and exchanging data over libp2p. In versions up to 1.1.0, the implementation does not impose any per‑request or per‑user limits on the size, traversal depth, or number of concurrent pins. Each submitted pin immediately schedules a background job that walks the entire DAG without any queue or semaphore. Because the application cannot constrain the amount of disk space, bandwidth, CPU time or memory consumed, an authenticated request – or a request made when the ALLOW_NO_AUTH flag is enabled – can submit a gigantic DAG that exhausts host resources. The result is degraded service, possible process termination or an unresponsive service, and incomplete CAR files that may require recovery. This vulnerability falls under the CWE‑400 category of unbounded resource consumption.

Affected Systems

The vulnerability affects the filecoin-project filecoin-pin service, all daemon deployments using version 1.1.0 or earlier. The default configuration binds only to localhost and requires an authentication token, but the lack of resource limits still permits a local attacker or an attacker who has obtained a valid token to trigger the issue. No external products or other vendors are listed. Affected versions are 1.1.0 and earlier; version 1.1.1 adds documentation but not the controls.

Risk and Exploitability

The CVSS score is 6.5, indicating a moderate risk level. No EPSS data is available, and the vulnerability is not listed in CISA’s KEV catalog, suggesting a limited current exploitation footprint. The likely attack vector is a remote or local HTTP POST to /pins; the server processes the request without any throttling, so any user that can reach the API may inadvertently or maliciously exhaust disk, network, CPU or memory resources. The absence of queueing or concurrency controls means multiple simultaneous requests will amplify the impact. An attacker with the appropriate permissions can trigger the denial of service at the node level or cause the entire service to fail, leading to downtime or potential data loss.

Generated by OpenCVE AI on October 30, 2026 at 21:39 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade to the latest filecoin-pin release that implements hard limits on pin operations or apply the operational mitigations documented in version 1.1.1.
  • Configure the service to listen only on trusted interfaces and set ALLOW_NO_AUTH to false, ensuring all pin requests require a valid authentication token.
  • Implement application‑level rate limiting or a reverse proxy that caps the number of concurrent /pins requests per user or per IP address.
  • Apply file system quotas or configure limits on the carStoragePath directory to restrict the maximum size of stored CAR files, and enable automated cleanup routines.
  • Deploy monitoring of CPU, memory, disk, and network usage, and configure automated restarts or alerts when thresholds are surpassed.

Generated by OpenCVE AI on October 30, 2026 at 21:39 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Fri, 30 Oct 2026 20:30:00 +0000

Type Values Removed Values Added
Description Filecoin Pin is an IPFS Pinning Service API implementation that pins to Filecoin's PDP service. In daemon deployments up to and including version 1.1.0, `POST /pins` in `src/filecoin-pinning-server.ts` checks a caller-supplied CID with `CID.parse` and passes it to `pinStore.pin`, but does not enforce request rate limits or per-user quotas. In `src/filecoin-pin-store.ts`, each pin independently schedules `_processPinInBackground` with `setTimeout` without a queue, semaphore or concurrency cap, then recursively traverses the full DAG using `helia.pins.add(cid)`. The per-pin Helia/Bitswap node in `src/create-pinning-helia.ts` has no application-level byte, block or traversal-time limits. Blocks are written under `carStoragePath` by `src/core/car/car-blockstore-base.ts` and `src/core/car/car-file-backend.ts`, with `stats.totalSize` updated only after writing. An authenticated caller, or an anonymous caller when `ALLOW_NO_AUTH=true`, can submit large DAGs and exhaust disk, network, CPU, memory and libp2p resources, causing service degradation or host/process failure and leaving partial CAR files requiring recovery. The default localhost binding and token requirement reduce exposure. Because nodes have no bootstrap or mDNS configuration, a CID alone may not be fetchable, but caller-supplied `origins` can point to a reachable attacker-controlled libp2p source; concurrent requests accelerate resource pressure. Version 1.1.1 documents operational mitigations but does not implement the missing resource controls.
Title Filecoin Pin: Unbounded DAG pinning can exhaust filecoin-pin server resources
Weaknesses CWE-400
References
Metrics cvssV3_1

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


Subscriptions

No data.

cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-10-30T20:15:23.238Z

Reserved: 2026-07-13T18:37:08.489Z

Link: CVE-2026-62300

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-10-30T21:17:13.670

Modified: 2026-10-30T21:17:13.670

Link: CVE-2026-62300

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-10-30T21:45:15Z

Weaknesses
  • CWE-400

    Uncontrolled Resource Consumption