Read the docs
TI-2023-30733 Aliases GHSA-q3j6-22wf-3jh9

github.com/ipfs/go-bitswap vulnerable to DOS unbounded persistent memory leak

Priority LOW 38CWE-400Published · Updated

Key facts

Attack vector
—
Privileges required
—
User interaction
—
Attack complexity
—
Impact type
Denial of service
Confidentiality · integrity · availability
—
Fix status
Fixed

No CVSS vector from any source. Fix status from GitHub. Impact type from CWE-400.

Summary

This package has been moved to [`github.com/ipfs/boxo/bitswap`](https://pkg.go.dev/github.com/ipfs/boxo/bitswap), this vulnerability is tracked there: https://github.com/ipfs/boxo/security/advisories/GHSA-m974-xj4j-7qv5 (`CVE-2023-25568`) ### Remediation This is a two step process: 1. Apply one of: - (**recommended**) upgrade from `github.com/ipfs/go-bitswap` to `github.com/ipfs/boxo/bitswap`. - If you are still using `github.com/ipfs/go-bitswap` and cannot upgrade to `boxo`, you can upgrade to `github.com/ipfs/[email protected]`, this will replace the `go-bitswap` implementation by stubs which points to `boxo`. 2. Open https://github.com/ipfs/boxo/security/advisories/GHSA-m974-xj4j-7qv5 and then follow `boxo`'s remediation section. ### Vulnerable symbols - `>= v0.9.0; < v0.12.0` - `github.com/ipfs/go-bitswap/server/internal/decision.(*Engine).MessageReceived` - `github.com/ipfs/go-bitswap/server/internal/decision.(*Engine).NotifyNewBlocks` - `github.com/ipfs/go-bitswap/server/internal/decision.(*Engine).findOrCreate` - `github.com/ipfs/go-bitswap/server/internal/decision.(*Engine).PeerConnected` - `v0.8.0` - `github.com/ipfs/go-bitswap/internal/decision.(*Engine).MessageReceived` - `github.com/ipfs/go-bitswap/internal/decision.(*Engine).NotifyNewBlocks` - `github.com/ipfs/go-bitswap/internal/decision.(*Engine).findOrCreate` - `github.com/ipfs/go-bitswap/internal/decision.(*Engine).PeerConnected` - `< v0.8.0` - `github.com/ipfs/go-bitswap/internal/decision.(*Engine).MessageReceived` - `github.com/ipfs/go-bitswap/internal/decision.(*Engine).receiveBlocksFrom` - `github.com/ipfs/go-bitswap/internal/decision.(*Engine).findOrCreate` - `github.com/ipfs/go-bitswap/internal/decision.(*Engine).PeerConnected` ### Workarounds If you are using the stubs at `github.com/ipfs/go-bitswap` and not taking advantage of the features provided by the server, refactoring your code to use the new split API will allows you to run in a client-only mode using: [`github.com/ipfs/go-bitswap/client`](https://pkg.go.dev/github.com/ipfs/go-bitswap/client).

Why it matters now

Fix Fixed github.com/ipfs/go-bitswap (Go): 0.12.0

SSVC decision points

Not available: CISA has not published SSVC decision points for this record.

Affected products

VendorProductAffected versionsFixed inStatusSource
—github.com/ipfs/go-bitswap (Go)before 0.12.00.12.0Patch availableGHSA-q3j6-22wf-3jh9
  • github.com/ipfs/go-bitswap (Go) Vendor— Affected before 0.12.0 Fixed in 0.12.0 Patch available GHSA-q3j6-22wf-3jh9

Remediation

  • Fix · GHSA-q3j6-22wf-3jh9 github.com/ipfs/go-bitswap (Go) Fixed in 0.12.0 Advisory →

Timeline

  1. 2026-10-03 Threatist record created from GHSA-q3j6-22wf-3jh9

References

Sources

This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences