Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain token or reach no-auth daemon
-
DeliveryPOST /pins with large-DAG CID and attacker origin
-
ExploitBackground pin fetches DAG via Bitswap uncapped
-
ExecutionBlocks written to CAR files, concurrency unbounded
-
ImpactDisk/network/CPU/memory exhaustion, service or host failure
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V2 - Validation and Business Logic Resource consumption limits
MITRE ATT&CK
1 technique across 1 tactic: Impact The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires either (a) a valid ACCESS_TOKEN for the daemon (PR:L) or (b) the operator having started the server with ALLOW_NO_AUTH=true, which the vendor explicitly warns against outside disposable local development. Because each per-pin Helia node has no bootstrap or mDNS configuration, a bare CID may not be fetchable; the practical trigger is the caller-supplied |
| Impact | This is a genuine but conditional availability risk, not a top-tier emergency. The CVSS 3.1 vector (AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H, base 6.5) correctly captures a network-reachable, low-complexity, low-privilege flaw with high availability impact and no confidentiality or integrity effect - consistent with the CWE-400 resource-exhaustion mechanism described. The vuln.today decision label is 'this_month' (not act_now/emergency), which aligns with the absence of a CISA KEV listing and no supplied EPSS score. No EPSS probability and no KEV status were provided in the input, so widespread or active exploitation cannot be asserted - treat likelihood as unquantified rather than high. A conceptual proof-of-concept (a curl request) is published in the GHSA advisory itself, but it depends on the attacker controlling a large DAG and a reachable origin, so it is a demonstration rather than turnkey exploit code. The most important nuance is that the PR:L rating assumes the attacker holds a valid access token (or the operator ran ALLOW_NO_AUTH=true); in the default posture the daemon binds to localhost and refuses to start without a token, which materially lowers real-world exposure below what the network vector alone suggests. Net: a real priority for operators who expose the beta daemon beyond localhost or share its token among semi-trusted users, and a low concern for single-operator localhost deployments. |
| Exploit ScenarioDerived | An operator exposes the filecoin-pin daemon beyond localhost or shares its access token among semi-trusted users. An authenticated caller (or anyone, if ALLOW_NO_AUTH=true) issues POST /pins with a CID resolving to a very large DAG plus an |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 30, 2026
Unbounded DAG pinning in the Filecoin Pin pinning daemon through 1.1.0 lets a caller holding a valid access token - or any caller when the server runs with ALLOW_NO_AUTH=true - exhaust disk, network, CPU, memory and libp2p resources by submitting a CID that resolves to a very large DAG, degrading or crashing the process or host and leaving oversized partial CAR files that require manual recovery. The issue is availability-only (CVSS 6.5, C:N/I:N/A:H) and authentication is required per the vector (PR:L); the advisory ships a public PoC request referencing a caller-supplied origins peer, but it is a reference that is not verified as working exploit code, and the CVE is not in CISA KEV. Exploitation is conditional: each per-pin Helia node has no bootstrap or mDNS configuration so a bare CID may not be fetchable, the daemon binds to localhost by default and refuses to start without a token, so realistic exposure is limited to daemons reachable beyond localhost, shared tokens among untrusted users, or deliberately enabled no-auth mode.
RemediationAI
Advisory metadata lists version 1.1.1 as the fixed release for the <=1.1.0 range, but the referenced upstream commit changes only README.md - it documents the missing controls (no per-request/per-user/global rate limits on POST /pins, no per-user quotas, no maximum DAG byte count, block count or traversal depth, no traversal timeout or AbortController, no concurrency cap, no filesystem quota on CAR_STORAGE_PATH) without implementing them - so upgrading alone should be treated as documentation of the risk rather than a code-level fix, per the GHSA (https://github.com/filecoin-project/filecoin-pin/security/advisories/GHSA-m5ph-mmg5-6w5h). Until the hardening tracked in the project's issue #46 lands, the vendor's stated operational mitigations are: keep the default localhost binding and never expose the daemon directly to the public internet (trade-off: remote clients must use a tunnel or co-located proxy, which itself must not re-expose POST /pins unauthenticated); treat ACCESS_TOKEN as a single-tenant secret and do not share it with users you do not fully trust, since there is no per-token quota to contain misbehavior; do not enable ALLOW_NO_AUTH=true outside disposable local development; and run the daemon on a host with bounded storage such as a dedicated volume so a runaway pin cannot take down other workloads on the same machine (trade-off: large legitimate pins will fail once the volume fills, and interrupted pins leave partial CAR files that still need manual cleanup).
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The affected component is a Node.js implementation of the IPFS Pinning Service API that pins content to Filecoin's PDP service, built on Helia and libp2p with a Bitswap block broker. The root cause class is CWE-400, Uncontrolled Resource Consumption, and it manifests as an absent-controls problem rather than a parsing or memory-safety bug: POST /pins in src/filecoin-pinning-server.ts only checks that the caller-supplied string parses with CID.parse before handing it to pinStore.pin, with no rate limit, per-user quota, maximum DAG byte count, maximum block count or traversal timeout. In src/filecoin-pin-store.ts each pin is marked queued and its _processPinInBackground scheduled independently via setTimeout with no queue, semaphore or global concurrency cap, and the full DAG is then walked recursively through helia.pins.add(cid). The per-pin node created in src/create-pinning-helia.ts has no application-level byte, block or traversal-time limits, and blocks are streamed to CAR files under carStoragePath by src/core/car/car-blockstore-base.ts and src/core/car/car-file-backend.ts with stats.totalSize only updated after the write, so accounting cannot act as a brake mid-transfer. Because the per-pin node has no bootstrap or mDNS configuration, the API's caller-supplied origins array is the practical way to point the daemon at a reachable attacker-controlled libp2p peer serving a large DAG, and concurrent submissions accelerate the pressure since every request schedules its own background job. The trigger is therefore ordinary API use against a resource-unbounded retrieval path, not a race or memory-corruption condition.
Know when Filecoin Pin gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
Network HTTP API with low-complexity request; PR:L because a valid token (or deliberate ALLOW_NO_AUTH) is required; only availability is affected via resource exhaustion, so C:N/I:N/A:H.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
DescriptionCVE.org
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.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.
EUVD-2026-114448
NVD
CVE.org
EPSS
GitHub
Exploit-DB