Skip to content
OpenAdvisories
High · 8.2 CVE-2023-25568 EUVD-2023-1578GHSA-m974-xj4j-7qv5GHSA-q3j6-22wf-3jh9GO-2023-1766

Boxo bitswap/server: DOS unbounded persistent memory leak

Published May 10, 2023 · Updated Feb 13, 2025 · Assigned by GitHub_M

Description

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`.

Affected products

VendorProductAffectedFixed
ipfs boxo 0.4.0, 0.5.0 —

Affected packages

EcosystemPackageAffectedFixedRecord
Go github.com/ipfs/go-bitswap < 0.12.0 0.12.0 GHSA-q3j6-22wf-3jh9
Go github.com/ipfs/go-libipfs >= 0.5.0, < 0.6.0 0.6.0 GHSA-m974-xj4j-7qv5
Go github.com/ipfs/go-libipfs < 0.4.1 0.4.1 GHSA-m974-xj4j-7qv5
Go github.com/ipfs/go-libipfs < 0.4.1 · >= 0.5.0, < 0.6.0 0.4.1, 0.6.0 GO-2023-1766

References