---
id: "CVE-2026-62300"
kind: "vulnerability"
aliases: ["CVE-2026-62300"]
title: "Filecoin Pin: unbounded pin requests let callers exhaust disk, CPU and memory"
severity: "medium"
cvss: 6.5
epss: null
exploited: false
status: "open"
category: "package"
products: []
ecosystems: []
tags: ["filecoin", "filecoin-pin", "ipfs", "package", "self-hosted"]
not_affected_if: ["default-localhost-binding", "library-only-use", "token-required"]
published_at: "2026-10-30T21:17:13+00:00"
first_seen_at: "2026-10-30T21:25:53+00:00"
updated_at: "2026-10-30T21:26:52+00:00"
sources: [{"source": "nvd", "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-62300", "first_seen_at": "2026-10-30T21:25:53+00:00"}]
---

# Filecoin Pin: unbounded pin requests let callers exhaust disk, CPU and memory

Filecoin Pin's pinning service has no rate limits, quotas or size caps on pin requests, so each request starts an unbounded background DAG traversal. A caller who can reach the API can exhaust disk, network, CPU and memory, degrading or crashing the host.

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

## How to check

- Check the installed Filecoin Pin version with `npm ls filecoin-pin` or the package.json of the deployment
- Check whether `ALLOW_NO_AUTH` is set to `true` in the daemon environment
- Check whether the pinning server listens on a non-localhost interface

## Fix

- Filecoin Pin up to and including `1.1.0` is affected; the sources say `1.1.1` documents operational mitigations but does not implement the missing resource controls, so no fixed version is stated

## Timeline

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

## From the sources

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.

---

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