ipfs/go-bitfield · Security
IPFS go-bitfield vulnerable to DoS via malformed size arguments
- GHSA ID
- GHSA-2h6c-j3gf-xp9r
- CVE ID
- CVE-2023-23626
- Severity
- medium
- Published
- Updated
- CVSS
- 5.9 · CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H
- CVSS v3
- 5.9 · CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H
Description
Impact
When feeding untrusted user input into the size parameter of NewBitfield and FromBytes functions, an attacker can trigger panics.
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
Workarounds
- Ensure
size%8 == 0 && size >= 0yourself before callingNewBitfieldorFromBytes
References
CWEs
- CWE-754 · Improper Check for Unusual or Exceptional Conditions
- CWE-1284 · Improper Validation of Specified Quantity in Input
References
- https://github.com/ipfs/go-bitfield/security/advisories/GHSA-2h6c-j3gf-xp9r ↗
- https://nvd.nist.gov/vuln/detail/CVE-2023-23626 ↗
- https://github.com/ipfs/go-bitfield/commit/5e1d256fe043fc4163343ccca83862c69c52e579 ↗
- https://pkg.go.dev/vuln/GO-2023-1558 ↗
- https://github.com/advisories/GHSA-2h6c-j3gf-xp9r ↗