Boxo bitswap/server: DOS unbounded persistent memory leak
Key facts
- Attack vector
- Network
- Privileges required
- None
- User interaction
- None
- Attack complexity
- Low
- Impact type
- Denial of service
- Confidentiality · integrity · availability
- None · Low · High
- Fix status
- Fixed
Attack profile from CVSS 3.1 · CNA. Fix status from CNA and GitHub. Impact type from CWE-400.
Summary
Boxo, formerly known as go-libipfs, is a library for building IPFS applications and implementations. In versions 0.4.0 and 0.5.0, if an attacker is able allocate arbitrary many bytes in the Bitswap server, those allocations are lasting even if the connection is closed. This affects users accepting untrusted connections with the Bitswap server and also affects users using the old API stubs at `github.com/ipfs/go-libipfs/bitswap` because users then transitively import `github.com/ipfs/go-libipfs/bitswap/server`. Boxo versions 0.6.0 and 0.4.1 contain a patch for this issue. As a workaround, those who are using the stub object at `github.com/ipfs/go-libipfs/bitswap` not taking advantage of the features provided by the server can refactor their code to use the new split API that will allow them to run in a client only mode: `github.com/ipfs/go-libipfs/bitswap/client`.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- None
- Automatable
- Yes
- Technical impact
- Partial
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| ipfs | boxo | 0.4.0; 0.5.0 | — | No fix listed | CNA |
| — | github.com/ipfs/go-libipfs (Go) | 0.5.0 to before 0.6.0 | 0.6.0 | Patch available | GHSA-m974-xj4j-7qv5 |
| — | github.com/ipfs/go-libipfs (Go) | before 0.4.1 | 0.4.1 | Patch available | GHSA-m974-xj4j-7qv5 |
- boxo Vendoripfs Affected 0.4.0; 0.5.0 Fixed in — No fix listed CNA
- github.com/ipfs/go-libipfs (Go) Vendor— Affected 0.5.0 to before 0.6.0 Fixed in 0.6.0 Patch available GHSA-m974-xj4j-7qv5
- github.com/ipfs/go-libipfs (Go) Vendor— Affected before 0.4.1 Fixed in 0.4.1 Patch available GHSA-m974-xj4j-7qv5
Remediation
- Fix · GHSA-m974-xj4j-7qv5 github.com/ipfs/go-libipfs (Go) Fixed in 0.6.0 Advisory →
- Fix · GHSA-m974-xj4j-7qv5 github.com/ipfs/go-libipfs (Go) Fixed in 0.4.1 Advisory →
Timeline
- 2026-10-02 Threatist record created from CVE-2023-25568
- 2026-10-03 Alias added: GHSA-m974-xj4j-7qv5
References
Patch 4
- https://github.com/ipfs/boxo/commit/62cbac40b96f49e39cd7fedc77ee6b56adce4916
- https://github.com/ipfs/boxo/commit/9cb5cb54d40b57084d1221ba83b9e6bb3fcc3197
- https://github.com/ipfs/boxo/commit/baa748b682fabb21a4c1f7628a8af348d4645974
- https://github.com/ipfs/go-libipfs/security/advisories/GHSA-m974-xj4j-7qv5
More ipfs vulnerabilities
- TI-2023-09455 Denial of service when feeding malformed size arguments in go-bitfield CVSS 3.1HIGH 7.5
- TI-2020-08933 Exposure of Sensitive Information to an Unauthorized Actor in AEgir CVSS 3.1CRITICAL 9.6
- TI-2022-07554 ProtoNode may be modified such that common method calls may panic in ipfs/go-merkledag CVSS 3.1HIGH 7.5
- TI-2020-16104 Control character injection in console output CVSS 3.1HIGH 8.8
- TI-2020-16100 Path traversal in ipfs go-ipfs CVSS 3.1HIGH 8.1
- TI-2016-08604 Cryptographic flaw in HackerOne go-ipfs-dep node module CVSS 3.0HIGH 8.1
Sources
- CVE-2023-25568 · CVE Program
- CVE-2023-25568 · NVD
- FIRST EPSS
- GHSA-m974-xj4j-7qv5 · GitHub Advisory Database · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences