GitHub Advisoryadvisory · Go
GHSA-2h6c-j3gf-xp9r IPFS go-bitfield vulnerable to DoS via malformed size arguments
MEDIUM
Official page ↗
- Aliases
- CVE-2023-23626
- Ecosystem
- Go
- Packages
- github.com/ipfs/go-bitfield
- Severity
- Moderate
- CVSS vector
- CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H
- Weaknesses
- CWE-1284, CWE-754
- Reviewed
- 2023-02-10
Affected packages
• Go github.com/ipfs/go-bitfield: < 1.1.0 → fixed in 1.1.0
Description
Impact
When feeding untrusted user input into the size parameter of `NewBitfield` and `FromBytes` functions, an attacker can trigger `panic`s.
This happen when the `size` is a not a multiple of `8` or is negative.
There were already a note in the `NewBitfield` documentation:
> ```
> Panics if size is not a multiple of 8.
> ````
But it incomplete and missing from `FromBytes`'s documentation.
This has been replaced by returning an `(Bitfield, error)` and returning a non nil error if the size is wrong.
Patches
• https://github.com/ipfs/go-bitfield/commit/5e1d256fe043fc4163343ccca83862c69c52e579
Workarounds
• Ensure `size%8 == 0 && size >= 0` yourself before calling `NewBitfield` or `FromBytes`
References
• https://github.com/ipfs/go-unixfs/security/advisories/GHSA-q264-w97q-q778
Related
Alias · CVE (1)
- CVE-2023-23626 go-bitfield is a simple bitfield package for the go language aiming to be more performant that the standard library. vulnerability
References
- https://github.com/ipfs/go-bitfield/security/advisories/GHSA-2h6c-j3gf-xp9r web
- https://nvd.nist.gov/vuln/detail/CVE-2023-23626 advisory
- https://github.com/ipfs/go-bitfield/commit/5e1d256fe043fc4163343ccca83862c69c52e579 web
- https://github.com/ipfs/go-bitfield package
- https://pkg.go.dev/vuln/GO-2023-1558 web