Skip to content

Denial of service in CBOR library

High severity GitHub Reviewed Published Jan 17, 2022 in peteroupc/CBOR • Updated Jan 3, 2024

Package

nuget PeterO.Cbor (NuGet)

Affected versions

>= 4.0.0, < 4.5.1

Patched versions

4.5.1

Description

Impact

Due to this library's use of an inefficient algorithm, it is vulnerable to a denial of service attack when a maliciously crafted input is passed to DecodeFromBytes or other CBOR decoding mechanisms in this library.

Affected versions include versions 4.0.0 through 4.5.0.

This vulnerability was privately reported to me.

Patches

This issue has been fixed in version 4.5.1. Users should use the latest version of this library. (The latest version is not necessarily 4.5.1. Check the NuGet page to see the latest version's version number.)

Workarounds

Again, users should use the latest version of this library.

In the meantime, note that the inputs affected by this issue are all CBOR maps or contain CBOR maps. An input that decodes to a single CBOR object is not capable of containing a CBOR map if—

  • it begins with a byte other than 0x80 through 0xDF, or
  • it does not contain a byte in the range 0xa0 through 0xBF.

Such an input is not affected by this vulnerability and an application can choose to perform this check before passing it to a CBOR decoding mechanism.

For more information

If you have any questions or comments about this advisory:

References

@peteroupc peteroupc published to peteroupc/CBOR Jan 17, 2022
Reviewed Jan 18, 2022
Published to the GitHub Advisory Database Jan 21, 2022
Last updated Jan 3, 2024

Severity

High

EPSS score

0.132%
(49th percentile)

Weaknesses

CVE ID

CVE-2024-21909

GHSA ID

GHSA-6r92-cgxc-r5fg

Source code

Loading Checking history
See something to contribute? Suggest improvements for this vulnerability.