cbor2
CBOR (de)serializer with extensive tag support
Activity
- Latest release
- 1mo ago
- Total releases
- 49
- Cadence
- ~2 months
- Last 12 months
- 11
Details
- License
- MIT
- First release
- Jun 08, 2016
| Version | Released | |
|---|---|---|
6.1.4
patch
|
6.1.4
patch
|
|
6.1.3
patch
|
6.1.3
patch
|
|
6.1.2
patch
|
6.1.2
patch
|
|
6.1.1
patch
|
6.1.1
patch
|
|
6.1.0
minor
|
6.1.0
minor
|
|
6.0.1
patch
|
6.0.1
patch
|
|
6.0.0
major
|
6.0.0
major
|
|
6.0.0rc1
pre
|
6.0.0rc1
pre
|
|
5.9.0
minor
|
5.9.0
minor
|
|
5.8.0
minor
1 CVE
CVE-2026-26209
GHSA-3c37-wwvx-h642
PYSEC-2026-2123
Mar 23, 2026
cbor2 has a Denial of Service via Uncontrolled Recursion in cbor2.loads
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Summary
Details
PoC
Impact
CreditThis issue was discovered by Kevin Tu of TMIR at ByteDance. The patch was developed by @agronholm. Affected versions
1.0.0
1.1.0
2.0.0
3.0.0
3.0.1
3.0.2
3.0.3
3.0.4
4.0.0
4.0.1
4.1.0
4.1.1
+ 28 more Show less
4.1.2
5.0.0
5.0.1
5.1.0
5.1.1
5.1.2
5.2.0
5.2.0.post1
5.3.0
5.4.0
5.4.1
5.4.2
5.4.2.post1
5.4.3
5.4.4
5.4.5
5.4.6
5.5.0
5.5.1
5.6.0
5.6.1
5.6.2
5.6.3
5.6.4
5.6.5
5.7.0
5.7.1
5.8.0
Fixed in
5.9.0
References
Updated Sep 10, 2026 · Source: OSV.dev |
5.8.0
minor
|
|
5.7.1
patch
2 CVEs
CVE-2026-26209
GHSA-3c37-wwvx-h642
PYSEC-2026-2123
Mar 23, 2026
cbor2 has a Denial of Service via Uncontrolled Recursion in cbor2.loads
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Summary
Details
PoC
Impact
CreditThis issue was discovered by Kevin Tu of TMIR at ByteDance. The patch was developed by @agronholm. Affected versions
1.0.0
1.1.0
2.0.0
3.0.0
3.0.1
3.0.2
3.0.3
3.0.4
4.0.0
4.0.1
4.1.0
4.1.1
+ 28 more Show less
4.1.2
5.0.0
5.0.1
5.1.0
5.1.1
5.1.2
5.2.0
5.2.0.post1
5.3.0
5.4.0
5.4.1
5.4.2
5.4.2.post1
5.4.3
5.4.4
5.4.5
5.4.6
5.5.0
5.5.1
5.6.0
5.6.1
5.6.2
5.6.3
5.6.4
5.6.5
5.7.0
5.7.1
5.8.0
Fixed in
5.9.0
References
Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-68131
GHSA-wcj4-jw5j-44wh
PYSEC-2025-90
Dec 31, 2025
CBORDecoder reuse can leak shareable values across decode calls
Medium
Network
Low
None
None
SummaryWhen a CBORDecoder instance is reused across multiple decode operations, values marked with the shareable tag (28) persist in memory and can be accessed by subsequent CBOR messages using the sharedref tag (29). This allows an attacker-controlled message to read data from previously decoded messages if the decoder is reused across trust boundaries. DetailsThe issue is in the decoder's handling of the shareables list, which stores values tagged with CBOR tag 28 (shareable) for later reference by tag 29 (sharedref). When decode_from_bytes() is called or when .fp is set to a new stream, the shareables list is not cleared. This allows references to persist across separate decode operations. The issue exists in both the C extension and the pure Python decoder. In the C extension (source/decoder.c), the _CBORDecoder_set_fp function (line ~202) updates the file pointer but does not reset the shareables state:
In the pure Python decoder (cbor2/_decoder.py), the fp setter similarly fails to clear self._shareables. Similarly, decode_from_bytes() in both implementations saves and restores the read pointer but does not clear the shareables list between decodes. The shareable/sharedref tags are defined in the CBOR value sharing extension (http://cbor.schmorp.de/value-sharing) with scope limited to a single CBOR data item, not across separate messages. PoC
No special configuration required. Affects any application that reuses a CBORDecoder instance to decode messages from different sources. ImpactInformation disclosure. Applications that reuse a CBORDecoder across trust boundaries are vulnerable if the trusted messages use value sharing (tag 28) and an attacker can send messages containing shared references (tag 29). An attacker who can send a crafted CBOR message containing a sharedref tag can read values from previously decoded messages, potentially exposing sensitive data such as credentials, tokens, or private user data. RelatedA similar issue in the encoder could produce invalid CBOR with dangling shared references:
While primarily a correctness bug, it could cause denial of service if invalid CBOR is transmitted to downstream systems that fail to parse it, or cause silent data corruption if the dangling reference happens to resolve to an unrelated value. It can also be considered a memory leak in both the decoder and encoder as references are held that will never be released as long as the decoder/encoder remains alive. Suggested resolutionAdd dedicated boolean flags to track when an encode/decode operation is in progress. Reset shared state only when the flag is False (top-level call). This ensures state is reset for standalone calls while preserving shared references for nested calls from hooks (which need access to the registry for cyclic structures). Decoder (_decoding flag):
Encoder (_encoding flag):
Affected versions
3.0.0
3.0.1
3.0.2
3.0.3
3.0.4
4.0.0
4.0.1
4.1.0
4.1.1
4.1.2
5.0.0
5.0.1
+ 24 more Show less
5.1.0
5.1.1
5.1.2
5.2.0
5.2.0.post1
5.3.0
5.4.0
5.4.1
5.4.2
5.4.2.post1
5.4.3
5.4.4
5.4.5
5.4.6
5.5.0
5.5.1
5.6.0
5.6.1
5.6.2
5.6.3
5.6.4
5.6.5
5.7.0
5.7.1
Fixed in
5.8.0
References
Updated Sep 10, 2026 · Source: OSV.dev |
5.7.1
patch
|
|
5.7.0
minor
3 CVEs
CVE-2026-26209
GHSA-3c37-wwvx-h642
PYSEC-2026-2123
Mar 23, 2026
cbor2 has a Denial of Service via Uncontrolled Recursion in cbor2.loads
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Summary
Details
PoC
Impact
CreditThis issue was discovered by Kevin Tu of TMIR at ByteDance. The patch was developed by @agronholm. Affected versions
1.0.0
1.1.0
2.0.0
3.0.0
3.0.1
3.0.2
3.0.3
3.0.4
4.0.0
4.0.1
4.1.0
4.1.1
+ 28 more Show less
4.1.2
5.0.0
5.0.1
5.1.0
5.1.1
5.1.2
5.2.0
5.2.0.post1
5.3.0
5.4.0
5.4.1
5.4.2
5.4.2.post1
5.4.3
5.4.4
5.4.5
5.4.6
5.5.0
5.5.1
5.6.0
5.6.1
5.6.2
5.6.3
5.6.4
5.6.5
5.7.0
5.7.1
5.8.0
Fixed in
5.9.0
References
Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-68131
GHSA-wcj4-jw5j-44wh
PYSEC-2025-90
Dec 31, 2025
CBORDecoder reuse can leak shareable values across decode calls
Medium
Network
Low
None
None
SummaryWhen a CBORDecoder instance is reused across multiple decode operations, values marked with the shareable tag (28) persist in memory and can be accessed by subsequent CBOR messages using the sharedref tag (29). This allows an attacker-controlled message to read data from previously decoded messages if the decoder is reused across trust boundaries. DetailsThe issue is in the decoder's handling of the shareables list, which stores values tagged with CBOR tag 28 (shareable) for later reference by tag 29 (sharedref). When decode_from_bytes() is called or when .fp is set to a new stream, the shareables list is not cleared. This allows references to persist across separate decode operations. The issue exists in both the C extension and the pure Python decoder. In the C extension (source/decoder.c), the _CBORDecoder_set_fp function (line ~202) updates the file pointer but does not reset the shareables state:
In the pure Python decoder (cbor2/_decoder.py), the fp setter similarly fails to clear self._shareables. Similarly, decode_from_bytes() in both implementations saves and restores the read pointer but does not clear the shareables list between decodes. The shareable/sharedref tags are defined in the CBOR value sharing extension (http://cbor.schmorp.de/value-sharing) with scope limited to a single CBOR data item, not across separate messages. PoC
No special configuration required. Affects any application that reuses a CBORDecoder instance to decode messages from different sources. ImpactInformation disclosure. Applications that reuse a CBORDecoder across trust boundaries are vulnerable if the trusted messages use value sharing (tag 28) and an attacker can send messages containing shared references (tag 29). An attacker who can send a crafted CBOR message containing a sharedref tag can read values from previously decoded messages, potentially exposing sensitive data such as credentials, tokens, or private user data. RelatedA similar issue in the encoder could produce invalid CBOR with dangling shared references:
While primarily a correctness bug, it could cause denial of service if invalid CBOR is transmitted to downstream systems that fail to parse it, or cause silent data corruption if the dangling reference happens to resolve to an unrelated value. It can also be considered a memory leak in both the decoder and encoder as references are held that will never be released as long as the decoder/encoder remains alive. Suggested resolutionAdd dedicated boolean flags to track when an encode/decode operation is in progress. Reset shared state only when the flag is False (top-level call). This ensures state is reset for standalone calls while preserving shared references for nested calls from hooks (which need access to the registry for cyclic structures). Decoder (_decoding flag):
Encoder (_encoding flag):
Affected versions
3.0.0
3.0.1
3.0.2
3.0.3
3.0.4
4.0.0
4.0.1
4.1.0
4.1.1
4.1.2
5.0.0
5.0.1
+ 24 more Show less
5.1.0
5.1.1
5.1.2
5.2.0
5.2.0.post1
5.3.0
5.4.0
5.4.1
5.4.2
5.4.2.post1
5.4.3
5.4.4
5.4.5
5.4.6
5.5.0
5.5.1
5.6.0
5.6.1
5.6.2
5.6.3
5.6.4
5.6.5
5.7.0
5.7.1
Fixed in
5.8.0
References
Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-64076
GHSA-9q9c-vjxh-p795
PYSEC-2025-238
Nov 18, 2025
cbor2 C extension decoder flaws can cause denial of service
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Multiple vulnerabilities exist in cbor2 through version 5.7.0 in the decode_definite_long_string() function of the C extension decoder (source/decoder.c):
Both vulnerabilities can be exploited remotely without authentication by sending specially-crafted CBOR data containing definite-length text strings with multi-byte UTF-8 characters positioned at 65536-byte chunk boundaries. Successful exploitation results in denial of service through process crashes (CBORDecodeEOF exceptions) or memory exhaustion. The vulnerabilities affect all applications using cbor2's C extension to process untrusted CBOR data, including web APIs, IoT data collectors, and message queue processors. Fixed in commit 851473490281f82d82560b2368284ef33cf6e8f9 pushed with released version 5.7.1. Affected versions
1.0.0
1.1.0
2.0.0
3.0.0
3.0.1
3.0.2
3.0.3
3.0.4
4.0.0
4.0.1
4.1.0
4.1.1
+ 26 more Show less
4.1.2
5.0.0
5.0.1
5.1.0
5.1.1
5.1.2
5.2.0
5.2.0.post1
5.3.0
5.4.0
5.4.1
5.4.2
5.4.2.post1
5.4.3
5.4.4
5.4.5
5.4.6
5.5.0
5.5.1
5.6.0
5.6.1
5.6.2
5.6.3
5.6.4
5.6.5
5.7.0
Fixed in
5.7.1
References
Updated Sep 01, 2026 · Source: OSV.dev |
5.7.0
minor
|
|
5.6.5
patch
3 CVEs
CVE-2026-26209
GHSA-3c37-wwvx-h642
PYSEC-2026-2123
Mar 23, 2026
cbor2 has a Denial of Service via Uncontrolled Recursion in cbor2.loads
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Summary
Details
PoC
Impact
CreditThis issue was discovered by Kevin Tu of TMIR at ByteDance. The patch was developed by @agronholm. Affected versions
1.0.0
1.1.0
2.0.0
3.0.0
3.0.1
3.0.2
3.0.3
3.0.4
4.0.0
4.0.1
4.1.0
4.1.1
+ 28 more Show less
4.1.2
5.0.0
5.0.1
5.1.0
5.1.1
5.1.2
5.2.0
5.2.0.post1
5.3.0
5.4.0
5.4.1
5.4.2
5.4.2.post1
5.4.3
5.4.4
5.4.5
5.4.6
5.5.0
5.5.1
5.6.0
5.6.1
5.6.2
5.6.3
5.6.4
5.6.5
5.7.0
5.7.1
5.8.0
Fixed in
5.9.0
References
Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-68131
GHSA-wcj4-jw5j-44wh
PYSEC-2025-90
Dec 31, 2025
CBORDecoder reuse can leak shareable values across decode calls
Medium
Network
Low
None
None
SummaryWhen a CBORDecoder instance is reused across multiple decode operations, values marked with the shareable tag (28) persist in memory and can be accessed by subsequent CBOR messages using the sharedref tag (29). This allows an attacker-controlled message to read data from previously decoded messages if the decoder is reused across trust boundaries. DetailsThe issue is in the decoder's handling of the shareables list, which stores values tagged with CBOR tag 28 (shareable) for later reference by tag 29 (sharedref). When decode_from_bytes() is called or when .fp is set to a new stream, the shareables list is not cleared. This allows references to persist across separate decode operations. The issue exists in both the C extension and the pure Python decoder. In the C extension (source/decoder.c), the _CBORDecoder_set_fp function (line ~202) updates the file pointer but does not reset the shareables state:
In the pure Python decoder (cbor2/_decoder.py), the fp setter similarly fails to clear self._shareables. Similarly, decode_from_bytes() in both implementations saves and restores the read pointer but does not clear the shareables list between decodes. The shareable/sharedref tags are defined in the CBOR value sharing extension (http://cbor.schmorp.de/value-sharing) with scope limited to a single CBOR data item, not across separate messages. PoC
No special configuration required. Affects any application that reuses a CBORDecoder instance to decode messages from different sources. ImpactInformation disclosure. Applications that reuse a CBORDecoder across trust boundaries are vulnerable if the trusted messages use value sharing (tag 28) and an attacker can send messages containing shared references (tag 29). An attacker who can send a crafted CBOR message containing a sharedref tag can read values from previously decoded messages, potentially exposing sensitive data such as credentials, tokens, or private user data. RelatedA similar issue in the encoder could produce invalid CBOR with dangling shared references:
While primarily a correctness bug, it could cause denial of service if invalid CBOR is transmitted to downstream systems that fail to parse it, or cause silent data corruption if the dangling reference happens to resolve to an unrelated value. It can also be considered a memory leak in both the decoder and encoder as references are held that will never be released as long as the decoder/encoder remains alive. Suggested resolutionAdd dedicated boolean flags to track when an encode/decode operation is in progress. Reset shared state only when the flag is False (top-level call). This ensures state is reset for standalone calls while preserving shared references for nested calls from hooks (which need access to the registry for cyclic structures). Decoder (_decoding flag):
Encoder (_encoding flag):
Affected versions
3.0.0
3.0.1
3.0.2
3.0.3
3.0.4
4.0.0
4.0.1
4.1.0
4.1.1
4.1.2
5.0.0
5.0.1
+ 24 more Show less
5.1.0
5.1.1
5.1.2
5.2.0
5.2.0.post1
5.3.0
5.4.0
5.4.1
5.4.2
5.4.2.post1
5.4.3
5.4.4
5.4.5
5.4.6
5.5.0
5.5.1
5.6.0
5.6.1
5.6.2
5.6.3
5.6.4
5.6.5
5.7.0
5.7.1
Fixed in
5.8.0
References
Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-64076
GHSA-9q9c-vjxh-p795
PYSEC-2025-238
Nov 18, 2025
cbor2 C extension decoder flaws can cause denial of service
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Multiple vulnerabilities exist in cbor2 through version 5.7.0 in the decode_definite_long_string() function of the C extension decoder (source/decoder.c):
Both vulnerabilities can be exploited remotely without authentication by sending specially-crafted CBOR data containing definite-length text strings with multi-byte UTF-8 characters positioned at 65536-byte chunk boundaries. Successful exploitation results in denial of service through process crashes (CBORDecodeEOF exceptions) or memory exhaustion. The vulnerabilities affect all applications using cbor2's C extension to process untrusted CBOR data, including web APIs, IoT data collectors, and message queue processors. Fixed in commit 851473490281f82d82560b2368284ef33cf6e8f9 pushed with released version 5.7.1. Affected versions
1.0.0
1.1.0
2.0.0
3.0.0
3.0.1
3.0.2
3.0.3
3.0.4
4.0.0
4.0.1
4.1.0
4.1.1
+ 26 more Show less
4.1.2
5.0.0
5.0.1
5.1.0
5.1.1
5.1.2
5.2.0
5.2.0.post1
5.3.0
5.4.0
5.4.1
5.4.2
5.4.2.post1
5.4.3
5.4.4
5.4.5
5.4.6
5.5.0
5.5.1
5.6.0
5.6.1
5.6.2
5.6.3
5.6.4
5.6.5
5.7.0
Fixed in
5.7.1
References
Updated Sep 01, 2026 · Source: OSV.dev |
5.6.5
patch
Dependencies (9)
+ 1 more |
|
5.6.4
patch
3 CVEs
CVE-2026-26209
GHSA-3c37-wwvx-h642
PYSEC-2026-2123
Mar 23, 2026
cbor2 has a Denial of Service via Uncontrolled Recursion in cbor2.loads
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Summary
Details
PoC
Impact
CreditThis issue was discovered by Kevin Tu of TMIR at ByteDance. The patch was developed by @agronholm. Affected versions
1.0.0
1.1.0
2.0.0
3.0.0
3.0.1
3.0.2
3.0.3
3.0.4
4.0.0
4.0.1
4.1.0
4.1.1
+ 28 more Show less
4.1.2
5.0.0
5.0.1
5.1.0
5.1.1
5.1.2
5.2.0
5.2.0.post1
5.3.0
5.4.0
5.4.1
5.4.2
5.4.2.post1
5.4.3
5.4.4
5.4.5
5.4.6
5.5.0
5.5.1
5.6.0
5.6.1
5.6.2
5.6.3
5.6.4
5.6.5
5.7.0
5.7.1
5.8.0
Fixed in
5.9.0
References
Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-68131
GHSA-wcj4-jw5j-44wh
PYSEC-2025-90
Dec 31, 2025
CBORDecoder reuse can leak shareable values across decode calls
Medium
Network
Low
None
None
SummaryWhen a CBORDecoder instance is reused across multiple decode operations, values marked with the shareable tag (28) persist in memory and can be accessed by subsequent CBOR messages using the sharedref tag (29). This allows an attacker-controlled message to read data from previously decoded messages if the decoder is reused across trust boundaries. DetailsThe issue is in the decoder's handling of the shareables list, which stores values tagged with CBOR tag 28 (shareable) for later reference by tag 29 (sharedref). When decode_from_bytes() is called or when .fp is set to a new stream, the shareables list is not cleared. This allows references to persist across separate decode operations. The issue exists in both the C extension and the pure Python decoder. In the C extension (source/decoder.c), the _CBORDecoder_set_fp function (line ~202) updates the file pointer but does not reset the shareables state:
In the pure Python decoder (cbor2/_decoder.py), the fp setter similarly fails to clear self._shareables. Similarly, decode_from_bytes() in both implementations saves and restores the read pointer but does not clear the shareables list between decodes. The shareable/sharedref tags are defined in the CBOR value sharing extension (http://cbor.schmorp.de/value-sharing) with scope limited to a single CBOR data item, not across separate messages. PoC
No special configuration required. Affects any application that reuses a CBORDecoder instance to decode messages from different sources. ImpactInformation disclosure. Applications that reuse a CBORDecoder across trust boundaries are vulnerable if the trusted messages use value sharing (tag 28) and an attacker can send messages containing shared references (tag 29). An attacker who can send a crafted CBOR message containing a sharedref tag can read values from previously decoded messages, potentially exposing sensitive data such as credentials, tokens, or private user data. RelatedA similar issue in the encoder could produce invalid CBOR with dangling shared references:
While primarily a correctness bug, it could cause denial of service if invalid CBOR is transmitted to downstream systems that fail to parse it, or cause silent data corruption if the dangling reference happens to resolve to an unrelated value. It can also be considered a memory leak in both the decoder and encoder as references are held that will never be released as long as the decoder/encoder remains alive. Suggested resolutionAdd dedicated boolean flags to track when an encode/decode operation is in progress. Reset shared state only when the flag is False (top-level call). This ensures state is reset for standalone calls while preserving shared references for nested calls from hooks (which need access to the registry for cyclic structures). Decoder (_decoding flag):
Encoder (_encoding flag):
Affected versions
3.0.0
3.0.1
3.0.2
3.0.3
3.0.4
4.0.0
4.0.1
4.1.0
4.1.1
4.1.2
5.0.0
5.0.1
+ 24 more Show less
5.1.0
5.1.1
5.1.2
5.2.0
5.2.0.post1
5.3.0
5.4.0
5.4.1
5.4.2
5.4.2.post1
5.4.3
5.4.4
5.4.5
5.4.6
5.5.0
5.5.1
5.6.0
5.6.1
5.6.2
5.6.3
5.6.4
5.6.5
5.7.0
5.7.1
Fixed in
5.8.0
References
Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-64076
GHSA-9q9c-vjxh-p795
PYSEC-2025-238
Nov 18, 2025
cbor2 C extension decoder flaws can cause denial of service
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Multiple vulnerabilities exist in cbor2 through version 5.7.0 in the decode_definite_long_string() function of the C extension decoder (source/decoder.c):
Both vulnerabilities can be exploited remotely without authentication by sending specially-crafted CBOR data containing definite-length text strings with multi-byte UTF-8 characters positioned at 65536-byte chunk boundaries. Successful exploitation results in denial of service through process crashes (CBORDecodeEOF exceptions) or memory exhaustion. The vulnerabilities affect all applications using cbor2's C extension to process untrusted CBOR data, including web APIs, IoT data collectors, and message queue processors. Fixed in commit 851473490281f82d82560b2368284ef33cf6e8f9 pushed with released version 5.7.1. Affected versions
1.0.0
1.1.0
2.0.0
3.0.0
3.0.1
3.0.2
3.0.3
3.0.4
4.0.0
4.0.1
4.1.0
4.1.1
+ 26 more Show less
4.1.2
5.0.0
5.0.1
5.1.0
5.1.1
5.1.2
5.2.0
5.2.0.post1
5.3.0
5.4.0
5.4.1
5.4.2
5.4.2.post1
5.4.3
5.4.4
5.4.5
5.4.6
5.5.0
5.5.1
5.6.0
5.6.1
5.6.2
5.6.3
5.6.4
5.6.5
5.7.0
Fixed in
5.7.1
References
Updated Sep 01, 2026 · Source: OSV.dev |
5.6.4
patch
Dependencies (9)
+ 1 more |
|
5.6.3
patch
3 CVEs
CVE-2026-26209
GHSA-3c37-wwvx-h642
PYSEC-2026-2123
Mar 23, 2026
cbor2 has a Denial of Service via Uncontrolled Recursion in cbor2.loads
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Summary
Details
PoC
Impact
CreditThis issue was discovered by Kevin Tu of TMIR at ByteDance. The patch was developed by @agronholm. Affected versions
1.0.0
1.1.0
2.0.0
3.0.0
3.0.1
3.0.2
3.0.3
3.0.4
4.0.0
4.0.1
4.1.0
4.1.1
+ 28 more Show less
4.1.2
5.0.0
5.0.1
5.1.0
5.1.1
5.1.2
5.2.0
5.2.0.post1
5.3.0
5.4.0
5.4.1
5.4.2
5.4.2.post1
5.4.3
5.4.4
5.4.5
5.4.6
5.5.0
5.5.1
5.6.0
5.6.1
5.6.2
5.6.3
5.6.4
5.6.5
5.7.0
5.7.1
5.8.0
Fixed in
5.9.0
References
Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-68131
GHSA-wcj4-jw5j-44wh
PYSEC-2025-90
Dec 31, 2025
CBORDecoder reuse can leak shareable values across decode calls
Medium
Network
Low
None
None
SummaryWhen a CBORDecoder instance is reused across multiple decode operations, values marked with the shareable tag (28) persist in memory and can be accessed by subsequent CBOR messages using the sharedref tag (29). This allows an attacker-controlled message to read data from previously decoded messages if the decoder is reused across trust boundaries. DetailsThe issue is in the decoder's handling of the shareables list, which stores values tagged with CBOR tag 28 (shareable) for later reference by tag 29 (sharedref). When decode_from_bytes() is called or when .fp is set to a new stream, the shareables list is not cleared. This allows references to persist across separate decode operations. The issue exists in both the C extension and the pure Python decoder. In the C extension (source/decoder.c), the _CBORDecoder_set_fp function (line ~202) updates the file pointer but does not reset the shareables state:
In the pure Python decoder (cbor2/_decoder.py), the fp setter similarly fails to clear self._shareables. Similarly, decode_from_bytes() in both implementations saves and restores the read pointer but does not clear the shareables list between decodes. The shareable/sharedref tags are defined in the CBOR value sharing extension (http://cbor.schmorp.de/value-sharing) with scope limited to a single CBOR data item, not across separate messages. PoC
No special configuration required. Affects any application that reuses a CBORDecoder instance to decode messages from different sources. ImpactInformation disclosure. Applications that reuse a CBORDecoder across trust boundaries are vulnerable if the trusted messages use value sharing (tag 28) and an attacker can send messages containing shared references (tag 29). An attacker who can send a crafted CBOR message containing a sharedref tag can read values from previously decoded messages, potentially exposing sensitive data such as credentials, tokens, or private user data. RelatedA similar issue in the encoder could produce invalid CBOR with dangling shared references:
While primarily a correctness bug, it could cause denial of service if invalid CBOR is transmitted to downstream systems that fail to parse it, or cause silent data corruption if the dangling reference happens to resolve to an unrelated value. It can also be considered a memory leak in both the decoder and encoder as references are held that will never be released as long as the decoder/encoder remains alive. Suggested resolutionAdd dedicated boolean flags to track when an encode/decode operation is in progress. Reset shared state only when the flag is False (top-level call). This ensures state is reset for standalone calls while preserving shared references for nested calls from hooks (which need access to the registry for cyclic structures). Decoder (_decoding flag):
Encoder (_encoding flag):
Affected versions
3.0.0
3.0.1
3.0.2
3.0.3
3.0.4
4.0.0
4.0.1
4.1.0
4.1.1
4.1.2
5.0.0
5.0.1
+ 24 more Show less
5.1.0
5.1.1
5.1.2
5.2.0
5.2.0.post1
5.3.0
5.4.0
5.4.1
5.4.2
5.4.2.post1
5.4.3
5.4.4
5.4.5
5.4.6
5.5.0
5.5.1
5.6.0
5.6.1
5.6.2
5.6.3
5.6.4
5.6.5
5.7.0
5.7.1
Fixed in
5.8.0
References
Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-64076
GHSA-9q9c-vjxh-p795
PYSEC-2025-238
Nov 18, 2025
cbor2 C extension decoder flaws can cause denial of service
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Multiple vulnerabilities exist in cbor2 through version 5.7.0 in the decode_definite_long_string() function of the C extension decoder (source/decoder.c):
Both vulnerabilities can be exploited remotely without authentication by sending specially-crafted CBOR data containing definite-length text strings with multi-byte UTF-8 characters positioned at 65536-byte chunk boundaries. Successful exploitation results in denial of service through process crashes (CBORDecodeEOF exceptions) or memory exhaustion. The vulnerabilities affect all applications using cbor2's C extension to process untrusted CBOR data, including web APIs, IoT data collectors, and message queue processors. Fixed in commit 851473490281f82d82560b2368284ef33cf6e8f9 pushed with released version 5.7.1. Affected versions
1.0.0
1.1.0
2.0.0
3.0.0
3.0.1
3.0.2
3.0.3
3.0.4
4.0.0
4.0.1
4.1.0
4.1.1
+ 26 more Show less
4.1.2
5.0.0
5.0.1
5.1.0
5.1.1
5.1.2
5.2.0
5.2.0.post1
5.3.0
5.4.0
5.4.1
5.4.2
5.4.2.post1
5.4.3
5.4.4
5.4.5
5.4.6
5.5.0
5.5.1
5.6.0
5.6.1
5.6.2
5.6.3
5.6.4
5.6.5
5.7.0
Fixed in
5.7.1
References
Updated Sep 01, 2026 · Source: OSV.dev |
5.6.3
patch
Dependencies (9)
+ 1 more |
|
5.6.2
patch
3 CVEs
CVE-2026-26209
GHSA-3c37-wwvx-h642
PYSEC-2026-2123
Mar 23, 2026
cbor2 has a Denial of Service via Uncontrolled Recursion in cbor2.loads
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Summary
Details
PoC
Impact
CreditThis issue was discovered by Kevin Tu of TMIR at ByteDance. The patch was developed by @agronholm. Affected versions
1.0.0
1.1.0
2.0.0
3.0.0
3.0.1
3.0.2
3.0.3
3.0.4
4.0.0
4.0.1
4.1.0
4.1.1
+ 28 more Show less
4.1.2
5.0.0
5.0.1
5.1.0
5.1.1
5.1.2
5.2.0
5.2.0.post1
5.3.0
5.4.0
5.4.1
5.4.2
5.4.2.post1
5.4.3
5.4.4
5.4.5
5.4.6
5.5.0
5.5.1
5.6.0
5.6.1
5.6.2
5.6.3
5.6.4
5.6.5
5.7.0
5.7.1
5.8.0
Fixed in
5.9.0
References
Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-68131
GHSA-wcj4-jw5j-44wh
PYSEC-2025-90
Dec 31, 2025
CBORDecoder reuse can leak shareable values across decode calls
Medium
Network
Low
None
None
SummaryWhen a CBORDecoder instance is reused across multiple decode operations, values marked with the shareable tag (28) persist in memory and can be accessed by subsequent CBOR messages using the sharedref tag (29). This allows an attacker-controlled message to read data from previously decoded messages if the decoder is reused across trust boundaries. DetailsThe issue is in the decoder's handling of the shareables list, which stores values tagged with CBOR tag 28 (shareable) for later reference by tag 29 (sharedref). When decode_from_bytes() is called or when .fp is set to a new stream, the shareables list is not cleared. This allows references to persist across separate decode operations. The issue exists in both the C extension and the pure Python decoder. In the C extension (source/decoder.c), the _CBORDecoder_set_fp function (line ~202) updates the file pointer but does not reset the shareables state:
In the pure Python decoder (cbor2/_decoder.py), the fp setter similarly fails to clear self._shareables. Similarly, decode_from_bytes() in both implementations saves and restores the read pointer but does not clear the shareables list between decodes. The shareable/sharedref tags are defined in the CBOR value sharing extension (http://cbor.schmorp.de/value-sharing) with scope limited to a single CBOR data item, not across separate messages. PoC
No special configuration required. Affects any application that reuses a CBORDecoder instance to decode messages from different sources. ImpactInformation disclosure. Applications that reuse a CBORDecoder across trust boundaries are vulnerable if the trusted messages use value sharing (tag 28) and an attacker can send messages containing shared references (tag 29). An attacker who can send a crafted CBOR message containing a sharedref tag can read values from previously decoded messages, potentially exposing sensitive data such as credentials, tokens, or private user data. RelatedA similar issue in the encoder could produce invalid CBOR with dangling shared references:
While primarily a correctness bug, it could cause denial of service if invalid CBOR is transmitted to downstream systems that fail to parse it, or cause silent data corruption if the dangling reference happens to resolve to an unrelated value. It can also be considered a memory leak in both the decoder and encoder as references are held that will never be released as long as the decoder/encoder remains alive. Suggested resolutionAdd dedicated boolean flags to track when an encode/decode operation is in progress. Reset shared state only when the flag is False (top-level call). This ensures state is reset for standalone calls while preserving shared references for nested calls from hooks (which need access to the registry for cyclic structures). Decoder (_decoding flag):
Encoder (_encoding flag):
Affected versions
3.0.0
3.0.1
3.0.2
3.0.3
3.0.4
4.0.0
4.0.1
4.1.0
4.1.1
4.1.2
5.0.0
5.0.1
+ 24 more Show less
5.1.0
5.1.1
5.1.2
5.2.0
5.2.0.post1
5.3.0
5.4.0
5.4.1
5.4.2
5.4.2.post1
5.4.3
5.4.4
5.4.5
5.4.6
5.5.0
5.5.1
5.6.0
5.6.1
5.6.2
5.6.3
5.6.4
5.6.5
5.7.0
5.7.1
Fixed in
5.8.0
References
Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-64076
GHSA-9q9c-vjxh-p795
PYSEC-2025-238
Nov 18, 2025
cbor2 C extension decoder flaws can cause denial of service
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Multiple vulnerabilities exist in cbor2 through version 5.7.0 in the decode_definite_long_string() function of the C extension decoder (source/decoder.c):
Both vulnerabilities can be exploited remotely without authentication by sending specially-crafted CBOR data containing definite-length text strings with multi-byte UTF-8 characters positioned at 65536-byte chunk boundaries. Successful exploitation results in denial of service through process crashes (CBORDecodeEOF exceptions) or memory exhaustion. The vulnerabilities affect all applications using cbor2's C extension to process untrusted CBOR data, including web APIs, IoT data collectors, and message queue processors. Fixed in commit 851473490281f82d82560b2368284ef33cf6e8f9 pushed with released version 5.7.1. Affected versions
1.0.0
1.1.0
2.0.0
3.0.0
3.0.1
3.0.2
3.0.3
3.0.4
4.0.0
4.0.1
4.1.0
4.1.1
+ 26 more Show less
4.1.2
5.0.0
5.0.1
5.1.0
5.1.1
5.1.2
5.2.0
5.2.0.post1
5.3.0
5.4.0
5.4.1
5.4.2
5.4.2.post1
5.4.3
5.4.4
5.4.5
5.4.6
5.5.0
5.5.1
5.6.0
5.6.1
5.6.2
5.6.3
5.6.4
5.6.5
5.7.0
Fixed in
5.7.1
References
Updated Sep 01, 2026 · Source: OSV.dev |
5.6.2
patch
Dependencies (9)
+ 1 more |
|
5.6.1
patch
4 CVEs
CVE-2026-26209
GHSA-3c37-wwvx-h642
PYSEC-2026-2123
Mar 23, 2026
cbor2 has a Denial of Service via Uncontrolled Recursion in cbor2.loads
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Summary
Details
PoC
Impact
CreditThis issue was discovered by Kevin Tu of TMIR at ByteDance. The patch was developed by @agronholm. Affected versions
1.0.0
1.1.0
2.0.0
3.0.0
3.0.1
3.0.2
3.0.3
3.0.4
4.0.0
4.0.1
4.1.0
4.1.1
+ 28 more Show less
4.1.2
5.0.0
5.0.1
5.1.0
5.1.1
5.1.2
5.2.0
5.2.0.post1
5.3.0
5.4.0
5.4.1
5.4.2
5.4.2.post1
5.4.3
5.4.4
5.4.5
5.4.6
5.5.0
5.5.1
5.6.0
5.6.1
5.6.2
5.6.3
5.6.4
5.6.5
5.7.0
5.7.1
5.8.0
Fixed in
5.9.0
References
Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-68131
GHSA-wcj4-jw5j-44wh
PYSEC-2025-90
Dec 31, 2025
CBORDecoder reuse can leak shareable values across decode calls
Medium
Network
Low
None
None
SummaryWhen a CBORDecoder instance is reused across multiple decode operations, values marked with the shareable tag (28) persist in memory and can be accessed by subsequent CBOR messages using the sharedref tag (29). This allows an attacker-controlled message to read data from previously decoded messages if the decoder is reused across trust boundaries. DetailsThe issue is in the decoder's handling of the shareables list, which stores values tagged with CBOR tag 28 (shareable) for later reference by tag 29 (sharedref). When decode_from_bytes() is called or when .fp is set to a new stream, the shareables list is not cleared. This allows references to persist across separate decode operations. The issue exists in both the C extension and the pure Python decoder. In the C extension (source/decoder.c), the _CBORDecoder_set_fp function (line ~202) updates the file pointer but does not reset the shareables state:
In the pure Python decoder (cbor2/_decoder.py), the fp setter similarly fails to clear self._shareables. Similarly, decode_from_bytes() in both implementations saves and restores the read pointer but does not clear the shareables list between decodes. The shareable/sharedref tags are defined in the CBOR value sharing extension (http://cbor.schmorp.de/value-sharing) with scope limited to a single CBOR data item, not across separate messages. PoC
No special configuration required. Affects any application that reuses a CBORDecoder instance to decode messages from different sources. ImpactInformation disclosure. Applications that reuse a CBORDecoder across trust boundaries are vulnerable if the trusted messages use value sharing (tag 28) and an attacker can send messages containing shared references (tag 29). An attacker who can send a crafted CBOR message containing a sharedref tag can read values from previously decoded messages, potentially exposing sensitive data such as credentials, tokens, or private user data. RelatedA similar issue in the encoder could produce invalid CBOR with dangling shared references:
While primarily a correctness bug, it could cause denial of service if invalid CBOR is transmitted to downstream systems that fail to parse it, or cause silent data corruption if the dangling reference happens to resolve to an unrelated value. It can also be considered a memory leak in both the decoder and encoder as references are held that will never be released as long as the decoder/encoder remains alive. Suggested resolutionAdd dedicated boolean flags to track when an encode/decode operation is in progress. Reset shared state only when the flag is False (top-level call). This ensures state is reset for standalone calls while preserving shared references for nested calls from hooks (which need access to the registry for cyclic structures). Decoder (_decoding flag):
Encoder (_encoding flag):
Affected versions
3.0.0
3.0.1
3.0.2
3.0.3
3.0.4
4.0.0
4.0.1
4.1.0
4.1.1
4.1.2
5.0.0
5.0.1
+ 24 more Show less
5.1.0
5.1.1
5.1.2
5.2.0
5.2.0.post1
5.3.0
5.4.0
5.4.1
5.4.2
5.4.2.post1
5.4.3
5.4.4
5.4.5
5.4.6
5.5.0
5.5.1
5.6.0
5.6.1
5.6.2
5.6.3
5.6.4
5.6.5
5.7.0
5.7.1
Fixed in
5.8.0
References
Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-64076
GHSA-9q9c-vjxh-p795
PYSEC-2025-238
Nov 18, 2025
cbor2 C extension decoder flaws can cause denial of service
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Multiple vulnerabilities exist in cbor2 through version 5.7.0 in the decode_definite_long_string() function of the C extension decoder (source/decoder.c):
Both vulnerabilities can be exploited remotely without authentication by sending specially-crafted CBOR data containing definite-length text strings with multi-byte UTF-8 characters positioned at 65536-byte chunk boundaries. Successful exploitation results in denial of service through process crashes (CBORDecodeEOF exceptions) or memory exhaustion. The vulnerabilities affect all applications using cbor2's C extension to process untrusted CBOR data, including web APIs, IoT data collectors, and message queue processors. Fixed in commit 851473490281f82d82560b2368284ef33cf6e8f9 pushed with released version 5.7.1. Affected versions
1.0.0
1.1.0
2.0.0
3.0.0
3.0.1
3.0.2
3.0.3
3.0.4
4.0.0
4.0.1
4.1.0
4.1.1
+ 26 more Show less
4.1.2
5.0.0
5.0.1
5.1.0
5.1.1
5.1.2
5.2.0
5.2.0.post1
5.3.0
5.4.0
5.4.1
5.4.2
5.4.2.post1
5.4.3
5.4.4
5.4.5
5.4.6
5.5.0
5.5.1
5.6.0
5.6.1
5.6.2
5.6.3
5.6.4
5.6.5
5.7.0
Fixed in
5.7.1
References
Updated Sep 01, 2026 · Source: OSV.dev
CVE-2024-26134
GHSA-375g-39jq-vq7m
PYSEC-2024-155
Feb 21, 2024
Potential buffer overflow in CBOR2 decoder
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
SummaryEver since https://github.com/agronholm/cbor2/pull/204 (or specifically https://github.com/agronholm/cbor2/commit/387755eacf0be35591a478d3c67fe10618a6d542) was merged, I can create a reproducible crash when running the snippet under PoC on a current Debian bullseye aarm64 on a Raspberry Pi 3 (I was not able to reproduce this on my x86_64 Laptop with Python 3.11; I suspect because there is enough memory to allocate still) DetailsPoC
If one calls it without the indirection via the pool executor, a SystemError is shown that hides the buffer overflow.
ImpactAn attacker can crash a service using cbor2 to parse a CBOR binary by sending a long enough object. Affected versions
5.5.1
5.6.0
5.6.1
Fixed in
5.6.2
References
Updated Jun 10, 2026 · Source: OSV.dev |
5.6.1
patch
Dependencies (9)
+ 1 more |
|
5.6.0
minor
4 CVEs
CVE-2026-26209
GHSA-3c37-wwvx-h642
PYSEC-2026-2123
Mar 23, 2026
cbor2 has a Denial of Service via Uncontrolled Recursion in cbor2.loads
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Summary
Details
PoC
Impact
CreditThis issue was discovered by Kevin Tu of TMIR at ByteDance. The patch was developed by @agronholm. Affected versions
1.0.0
1.1.0
2.0.0
3.0.0
3.0.1
3.0.2
3.0.3
3.0.4
4.0.0
4.0.1
4.1.0
4.1.1
+ 28 more Show less
4.1.2
5.0.0
5.0.1
5.1.0
5.1.1
5.1.2
5.2.0
5.2.0.post1
5.3.0
5.4.0
5.4.1
5.4.2
5.4.2.post1
5.4.3
5.4.4
5.4.5
5.4.6
5.5.0
5.5.1
5.6.0
5.6.1
5.6.2
5.6.3
5.6.4
5.6.5
5.7.0
5.7.1
5.8.0
Fixed in
5.9.0
References
Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-68131
GHSA-wcj4-jw5j-44wh
PYSEC-2025-90
Dec 31, 2025
CBORDecoder reuse can leak shareable values across decode calls
Medium
Network
Low
None
None
SummaryWhen a CBORDecoder instance is reused across multiple decode operations, values marked with the shareable tag (28) persist in memory and can be accessed by subsequent CBOR messages using the sharedref tag (29). This allows an attacker-controlled message to read data from previously decoded messages if the decoder is reused across trust boundaries. DetailsThe issue is in the decoder's handling of the shareables list, which stores values tagged with CBOR tag 28 (shareable) for later reference by tag 29 (sharedref). When decode_from_bytes() is called or when .fp is set to a new stream, the shareables list is not cleared. This allows references to persist across separate decode operations. The issue exists in both the C extension and the pure Python decoder. In the C extension (source/decoder.c), the _CBORDecoder_set_fp function (line ~202) updates the file pointer but does not reset the shareables state:
In the pure Python decoder (cbor2/_decoder.py), the fp setter similarly fails to clear self._shareables. Similarly, decode_from_bytes() in both implementations saves and restores the read pointer but does not clear the shareables list between decodes. The shareable/sharedref tags are defined in the CBOR value sharing extension (http://cbor.schmorp.de/value-sharing) with scope limited to a single CBOR data item, not across separate messages. PoC
No special configuration required. Affects any application that reuses a CBORDecoder instance to decode messages from different sources. ImpactInformation disclosure. Applications that reuse a CBORDecoder across trust boundaries are vulnerable if the trusted messages use value sharing (tag 28) and an attacker can send messages containing shared references (tag 29). An attacker who can send a crafted CBOR message containing a sharedref tag can read values from previously decoded messages, potentially exposing sensitive data such as credentials, tokens, or private user data. RelatedA similar issue in the encoder could produce invalid CBOR with dangling shared references:
While primarily a correctness bug, it could cause denial of service if invalid CBOR is transmitted to downstream systems that fail to parse it, or cause silent data corruption if the dangling reference happens to resolve to an unrelated value. It can also be considered a memory leak in both the decoder and encoder as references are held that will never be released as long as the decoder/encoder remains alive. Suggested resolutionAdd dedicated boolean flags to track when an encode/decode operation is in progress. Reset shared state only when the flag is False (top-level call). This ensures state is reset for standalone calls while preserving shared references for nested calls from hooks (which need access to the registry for cyclic structures). Decoder (_decoding flag):
Encoder (_encoding flag):
Affected versions
3.0.0
3.0.1
3.0.2
3.0.3
3.0.4
4.0.0
4.0.1
4.1.0
4.1.1
4.1.2
5.0.0
5.0.1
+ 24 more Show less
5.1.0
5.1.1
5.1.2
5.2.0
5.2.0.post1
5.3.0
5.4.0
5.4.1
5.4.2
5.4.2.post1
5.4.3
5.4.4
5.4.5
5.4.6
5.5.0
5.5.1
5.6.0
5.6.1
5.6.2
5.6.3
5.6.4
5.6.5
5.7.0
5.7.1
Fixed in
5.8.0
References
Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-64076
GHSA-9q9c-vjxh-p795
PYSEC-2025-238
Nov 18, 2025
cbor2 C extension decoder flaws can cause denial of service
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Multiple vulnerabilities exist in cbor2 through version 5.7.0 in the decode_definite_long_string() function of the C extension decoder (source/decoder.c):
Both vulnerabilities can be exploited remotely without authentication by sending specially-crafted CBOR data containing definite-length text strings with multi-byte UTF-8 characters positioned at 65536-byte chunk boundaries. Successful exploitation results in denial of service through process crashes (CBORDecodeEOF exceptions) or memory exhaustion. The vulnerabilities affect all applications using cbor2's C extension to process untrusted CBOR data, including web APIs, IoT data collectors, and message queue processors. Fixed in commit 851473490281f82d82560b2368284ef33cf6e8f9 pushed with released version 5.7.1. Affected versions
1.0.0
1.1.0
2.0.0
3.0.0
3.0.1
3.0.2
3.0.3
3.0.4
4.0.0
4.0.1
4.1.0
4.1.1
+ 26 more Show less
4.1.2
5.0.0
5.0.1
5.1.0
5.1.1
5.1.2
5.2.0
5.2.0.post1
5.3.0
5.4.0
5.4.1
5.4.2
5.4.2.post1
5.4.3
5.4.4
5.4.5
5.4.6
5.5.0
5.5.1
5.6.0
5.6.1
5.6.2
5.6.3
5.6.4
5.6.5
5.7.0
Fixed in
5.7.1
References
Updated Sep 01, 2026 · Source: OSV.dev
CVE-2024-26134
GHSA-375g-39jq-vq7m
PYSEC-2024-155
Feb 21, 2024
Potential buffer overflow in CBOR2 decoder
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
SummaryEver since https://github.com/agronholm/cbor2/pull/204 (or specifically https://github.com/agronholm/cbor2/commit/387755eacf0be35591a478d3c67fe10618a6d542) was merged, I can create a reproducible crash when running the snippet under PoC on a current Debian bullseye aarm64 on a Raspberry Pi 3 (I was not able to reproduce this on my x86_64 Laptop with Python 3.11; I suspect because there is enough memory to allocate still) DetailsPoC
If one calls it without the indirection via the pool executor, a SystemError is shown that hides the buffer overflow.
ImpactAn attacker can crash a service using cbor2 to parse a CBOR binary by sending a long enough object. Affected versions
5.5.1
5.6.0
5.6.1
Fixed in
5.6.2
References
Updated Jun 10, 2026 · Source: OSV.dev |
5.6.0
minor
Dependencies (9)
+ 1 more |
|
5.5.1
patch
4 CVEs
CVE-2026-26209
GHSA-3c37-wwvx-h642
PYSEC-2026-2123
Mar 23, 2026
cbor2 has a Denial of Service via Uncontrolled Recursion in cbor2.loads
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Summary
Details
PoC
Impact
CreditThis issue was discovered by Kevin Tu of TMIR at ByteDance. The patch was developed by @agronholm. Affected versions
1.0.0
1.1.0
2.0.0
3.0.0
3.0.1
3.0.2
3.0.3
3.0.4
4.0.0
4.0.1
4.1.0
4.1.1
+ 28 more Show less
4.1.2
5.0.0
5.0.1
5.1.0
5.1.1
5.1.2
5.2.0
5.2.0.post1
5.3.0
5.4.0
5.4.1
5.4.2
5.4.2.post1
5.4.3
5.4.4
5.4.5
5.4.6
5.5.0
5.5.1
5.6.0
5.6.1
5.6.2
5.6.3
5.6.4
5.6.5
5.7.0
5.7.1
5.8.0
Fixed in
5.9.0
References
Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-68131
GHSA-wcj4-jw5j-44wh
PYSEC-2025-90
Dec 31, 2025
CBORDecoder reuse can leak shareable values across decode calls
Medium
Network
Low
None
None
SummaryWhen a CBORDecoder instance is reused across multiple decode operations, values marked with the shareable tag (28) persist in memory and can be accessed by subsequent CBOR messages using the sharedref tag (29). This allows an attacker-controlled message to read data from previously decoded messages if the decoder is reused across trust boundaries. DetailsThe issue is in the decoder's handling of the shareables list, which stores values tagged with CBOR tag 28 (shareable) for later reference by tag 29 (sharedref). When decode_from_bytes() is called or when .fp is set to a new stream, the shareables list is not cleared. This allows references to persist across separate decode operations. The issue exists in both the C extension and the pure Python decoder. In the C extension (source/decoder.c), the _CBORDecoder_set_fp function (line ~202) updates the file pointer but does not reset the shareables state:
In the pure Python decoder (cbor2/_decoder.py), the fp setter similarly fails to clear self._shareables. Similarly, decode_from_bytes() in both implementations saves and restores the read pointer but does not clear the shareables list between decodes. The shareable/sharedref tags are defined in the CBOR value sharing extension (http://cbor.schmorp.de/value-sharing) with scope limited to a single CBOR data item, not across separate messages. PoC
No special configuration required. Affects any application that reuses a CBORDecoder instance to decode messages from different sources. ImpactInformation disclosure. Applications that reuse a CBORDecoder across trust boundaries are vulnerable if the trusted messages use value sharing (tag 28) and an attacker can send messages containing shared references (tag 29). An attacker who can send a crafted CBOR message containing a sharedref tag can read values from previously decoded messages, potentially exposing sensitive data such as credentials, tokens, or private user data. RelatedA similar issue in the encoder could produce invalid CBOR with dangling shared references:
While primarily a correctness bug, it could cause denial of service if invalid CBOR is transmitted to downstream systems that fail to parse it, or cause silent data corruption if the dangling reference happens to resolve to an unrelated value. It can also be considered a memory leak in both the decoder and encoder as references are held that will never be released as long as the decoder/encoder remains alive. Suggested resolutionAdd dedicated boolean flags to track when an encode/decode operation is in progress. Reset shared state only when the flag is False (top-level call). This ensures state is reset for standalone calls while preserving shared references for nested calls from hooks (which need access to the registry for cyclic structures). Decoder (_decoding flag):
Encoder (_encoding flag):
Affected versions
3.0.0
3.0.1
3.0.2
3.0.3
3.0.4
4.0.0
4.0.1
4.1.0
4.1.1
4.1.2
5.0.0
5.0.1
+ 24 more Show less
5.1.0
5.1.1
5.1.2
5.2.0
5.2.0.post1
5.3.0
5.4.0
5.4.1
5.4.2
5.4.2.post1
5.4.3
5.4.4
5.4.5
5.4.6
5.5.0
5.5.1
5.6.0
5.6.1
5.6.2
5.6.3
5.6.4
5.6.5
5.7.0
5.7.1
Fixed in
5.8.0
References
Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-64076
GHSA-9q9c-vjxh-p795
PYSEC-2025-238
Nov 18, 2025
cbor2 C extension decoder flaws can cause denial of service
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Multiple vulnerabilities exist in cbor2 through version 5.7.0 in the decode_definite_long_string() function of the C extension decoder (source/decoder.c):
Both vulnerabilities can be exploited remotely without authentication by sending specially-crafted CBOR data containing definite-length text strings with multi-byte UTF-8 characters positioned at 65536-byte chunk boundaries. Successful exploitation results in denial of service through process crashes (CBORDecodeEOF exceptions) or memory exhaustion. The vulnerabilities affect all applications using cbor2's C extension to process untrusted CBOR data, including web APIs, IoT data collectors, and message queue processors. Fixed in commit 851473490281f82d82560b2368284ef33cf6e8f9 pushed with released version 5.7.1. Affected versions
1.0.0
1.1.0
2.0.0
3.0.0
3.0.1
3.0.2
3.0.3
3.0.4
4.0.0
4.0.1
4.1.0
4.1.1
+ 26 more Show less
4.1.2
5.0.0
5.0.1
5.1.0
5.1.1
5.1.2
5.2.0
5.2.0.post1
5.3.0
5.4.0
5.4.1
5.4.2
5.4.2.post1
5.4.3
5.4.4
5.4.5
5.4.6
5.5.0
5.5.1
5.6.0
5.6.1
5.6.2
5.6.3
5.6.4
5.6.5
5.7.0
Fixed in
5.7.1
References
Updated Sep 01, 2026 · Source: OSV.dev
CVE-2024-26134
GHSA-375g-39jq-vq7m
PYSEC-2024-155
Feb 21, 2024
Potential buffer overflow in CBOR2 decoder
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
SummaryEver since https://github.com/agronholm/cbor2/pull/204 (or specifically https://github.com/agronholm/cbor2/commit/387755eacf0be35591a478d3c67fe10618a6d542) was merged, I can create a reproducible crash when running the snippet under PoC on a current Debian bullseye aarm64 on a Raspberry Pi 3 (I was not able to reproduce this on my x86_64 Laptop with Python 3.11; I suspect because there is enough memory to allocate still) DetailsPoC
If one calls it without the indirection via the pool executor, a SystemError is shown that hides the buffer overflow.
ImpactAn attacker can crash a service using cbor2 to parse a CBOR binary by sending a long enough object. Affected versions
5.5.1
5.6.0
5.6.1
Fixed in
5.6.2
References
Updated Jun 10, 2026 · Source: OSV.dev |
5.5.1
patch
Dependencies (9)
+ 1 more |
|
5.5.0
minor
3 CVEs
CVE-2026-26209
GHSA-3c37-wwvx-h642
PYSEC-2026-2123
Mar 23, 2026
cbor2 has a Denial of Service via Uncontrolled Recursion in cbor2.loads
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Summary
Details
PoC
Impact
CreditThis issue was discovered by Kevin Tu of TMIR at ByteDance. The patch was developed by @agronholm. Affected versions
1.0.0
1.1.0
2.0.0
3.0.0
3.0.1
3.0.2
3.0.3
3.0.4
4.0.0
4.0.1
4.1.0
4.1.1
+ 28 more Show less
4.1.2
5.0.0
5.0.1
5.1.0
5.1.1
5.1.2
5.2.0
5.2.0.post1
5.3.0
5.4.0
5.4.1
5.4.2
5.4.2.post1
5.4.3
5.4.4
5.4.5
5.4.6
5.5.0
5.5.1
5.6.0
5.6.1
5.6.2
5.6.3
5.6.4
5.6.5
5.7.0
5.7.1
5.8.0
Fixed in
5.9.0
References
Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-68131
GHSA-wcj4-jw5j-44wh
PYSEC-2025-90
Dec 31, 2025
CBORDecoder reuse can leak shareable values across decode calls
Medium
Network
Low
None
None
SummaryWhen a CBORDecoder instance is reused across multiple decode operations, values marked with the shareable tag (28) persist in memory and can be accessed by subsequent CBOR messages using the sharedref tag (29). This allows an attacker-controlled message to read data from previously decoded messages if the decoder is reused across trust boundaries. DetailsThe issue is in the decoder's handling of the shareables list, which stores values tagged with CBOR tag 28 (shareable) for later reference by tag 29 (sharedref). When decode_from_bytes() is called or when .fp is set to a new stream, the shareables list is not cleared. This allows references to persist across separate decode operations. The issue exists in both the C extension and the pure Python decoder. In the C extension (source/decoder.c), the _CBORDecoder_set_fp function (line ~202) updates the file pointer but does not reset the shareables state:
In the pure Python decoder (cbor2/_decoder.py), the fp setter similarly fails to clear self._shareables. Similarly, decode_from_bytes() in both implementations saves and restores the read pointer but does not clear the shareables list between decodes. The shareable/sharedref tags are defined in the CBOR value sharing extension (http://cbor.schmorp.de/value-sharing) with scope limited to a single CBOR data item, not across separate messages. PoC
No special configuration required. Affects any application that reuses a CBORDecoder instance to decode messages from different sources. ImpactInformation disclosure. Applications that reuse a CBORDecoder across trust boundaries are vulnerable if the trusted messages use value sharing (tag 28) and an attacker can send messages containing shared references (tag 29). An attacker who can send a crafted CBOR message containing a sharedref tag can read values from previously decoded messages, potentially exposing sensitive data such as credentials, tokens, or private user data. RelatedA similar issue in the encoder could produce invalid CBOR with dangling shared references:
While primarily a correctness bug, it could cause denial of service if invalid CBOR is transmitted to downstream systems that fail to parse it, or cause silent data corruption if the dangling reference happens to resolve to an unrelated value. It can also be considered a memory leak in both the decoder and encoder as references are held that will never be released as long as the decoder/encoder remains alive. Suggested resolutionAdd dedicated boolean flags to track when an encode/decode operation is in progress. Reset shared state only when the flag is False (top-level call). This ensures state is reset for standalone calls while preserving shared references for nested calls from hooks (which need access to the registry for cyclic structures). Decoder (_decoding flag):
Encoder (_encoding flag):
Affected versions
3.0.0
3.0.1
3.0.2
3.0.3
3.0.4
4.0.0
4.0.1
4.1.0
4.1.1
4.1.2
5.0.0
5.0.1
+ 24 more Show less
5.1.0
5.1.1
5.1.2
5.2.0
5.2.0.post1
5.3.0
5.4.0
5.4.1
5.4.2
5.4.2.post1
5.4.3
5.4.4
5.4.5
5.4.6
5.5.0
5.5.1
5.6.0
5.6.1
5.6.2
5.6.3
5.6.4
5.6.5
5.7.0
5.7.1
Fixed in
5.8.0
References
Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-64076
GHSA-9q9c-vjxh-p795
PYSEC-2025-238
Nov 18, 2025
cbor2 C extension decoder flaws can cause denial of service
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Multiple vulnerabilities exist in cbor2 through version 5.7.0 in the decode_definite_long_string() function of the C extension decoder (source/decoder.c):
Both vulnerabilities can be exploited remotely without authentication by sending specially-crafted CBOR data containing definite-length text strings with multi-byte UTF-8 characters positioned at 65536-byte chunk boundaries. Successful exploitation results in denial of service through process crashes (CBORDecodeEOF exceptions) or memory exhaustion. The vulnerabilities affect all applications using cbor2's C extension to process untrusted CBOR data, including web APIs, IoT data collectors, and message queue processors. Fixed in commit 851473490281f82d82560b2368284ef33cf6e8f9 pushed with released version 5.7.1. Affected versions
1.0.0
1.1.0
2.0.0
3.0.0
3.0.1
3.0.2
3.0.3
3.0.4
4.0.0
4.0.1
4.1.0
4.1.1
+ 26 more Show less
4.1.2
5.0.0
5.0.1
5.1.0
5.1.1
5.1.2
5.2.0
5.2.0.post1
5.3.0
5.4.0
5.4.1
5.4.2
5.4.2.post1
5.4.3
5.4.4
5.4.5
5.4.6
5.5.0
5.5.1
5.6.0
5.6.1
5.6.2
5.6.3
5.6.4
5.6.5
5.7.0
Fixed in
5.7.1
References
Updated Sep 01, 2026 · Source: OSV.dev |
5.5.0
minor
Dependencies (9)
+ 1 more |
|
5.4.6
patch
3 CVEs
CVE-2026-26209
GHSA-3c37-wwvx-h642
PYSEC-2026-2123
Mar 23, 2026
cbor2 has a Denial of Service via Uncontrolled Recursion in cbor2.loads
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Summary
Details
PoC
Impact
CreditThis issue was discovered by Kevin Tu of TMIR at ByteDance. The patch was developed by @agronholm. Affected versions
1.0.0
1.1.0
2.0.0
3.0.0
3.0.1
3.0.2
3.0.3
3.0.4
4.0.0
4.0.1
4.1.0
4.1.1
+ 28 more Show less
4.1.2
5.0.0
5.0.1
5.1.0
5.1.1
5.1.2
5.2.0
5.2.0.post1
5.3.0
5.4.0
5.4.1
5.4.2
5.4.2.post1
5.4.3
5.4.4
5.4.5
5.4.6
5.5.0
5.5.1
5.6.0
5.6.1
5.6.2
5.6.3
5.6.4
5.6.5
5.7.0
5.7.1
5.8.0
Fixed in
5.9.0
References
Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-68131
GHSA-wcj4-jw5j-44wh
PYSEC-2025-90
Dec 31, 2025
CBORDecoder reuse can leak shareable values across decode calls
Medium
Network
Low
None
None
SummaryWhen a CBORDecoder instance is reused across multiple decode operations, values marked with the shareable tag (28) persist in memory and can be accessed by subsequent CBOR messages using the sharedref tag (29). This allows an attacker-controlled message to read data from previously decoded messages if the decoder is reused across trust boundaries. DetailsThe issue is in the decoder's handling of the shareables list, which stores values tagged with CBOR tag 28 (shareable) for later reference by tag 29 (sharedref). When decode_from_bytes() is called or when .fp is set to a new stream, the shareables list is not cleared. This allows references to persist across separate decode operations. The issue exists in both the C extension and the pure Python decoder. In the C extension (source/decoder.c), the _CBORDecoder_set_fp function (line ~202) updates the file pointer but does not reset the shareables state:
In the pure Python decoder (cbor2/_decoder.py), the fp setter similarly fails to clear self._shareables. Similarly, decode_from_bytes() in both implementations saves and restores the read pointer but does not clear the shareables list between decodes. The shareable/sharedref tags are defined in the CBOR value sharing extension (http://cbor.schmorp.de/value-sharing) with scope limited to a single CBOR data item, not across separate messages. PoC
No special configuration required. Affects any application that reuses a CBORDecoder instance to decode messages from different sources. ImpactInformation disclosure. Applications that reuse a CBORDecoder across trust boundaries are vulnerable if the trusted messages use value sharing (tag 28) and an attacker can send messages containing shared references (tag 29). An attacker who can send a crafted CBOR message containing a sharedref tag can read values from previously decoded messages, potentially exposing sensitive data such as credentials, tokens, or private user data. RelatedA similar issue in the encoder could produce invalid CBOR with dangling shared references:
While primarily a correctness bug, it could cause denial of service if invalid CBOR is transmitted to downstream systems that fail to parse it, or cause silent data corruption if the dangling reference happens to resolve to an unrelated value. It can also be considered a memory leak in both the decoder and encoder as references are held that will never be released as long as the decoder/encoder remains alive. Suggested resolutionAdd dedicated boolean flags to track when an encode/decode operation is in progress. Reset shared state only when the flag is False (top-level call). This ensures state is reset for standalone calls while preserving shared references for nested calls from hooks (which need access to the registry for cyclic structures). Decoder (_decoding flag):
Encoder (_encoding flag):
Affected versions
3.0.0
3.0.1
3.0.2
3.0.3
3.0.4
4.0.0
4.0.1
4.1.0
4.1.1
4.1.2
5.0.0
5.0.1
+ 24 more Show less
5.1.0
5.1.1
5.1.2
5.2.0
5.2.0.post1
5.3.0
5.4.0
5.4.1
5.4.2
5.4.2.post1
5.4.3
5.4.4
5.4.5
5.4.6
5.5.0
5.5.1
5.6.0
5.6.1
5.6.2
5.6.3
5.6.4
5.6.5
5.7.0
5.7.1
Fixed in
5.8.0
References
Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-64076
GHSA-9q9c-vjxh-p795
PYSEC-2025-238
Nov 18, 2025
cbor2 C extension decoder flaws can cause denial of service
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Multiple vulnerabilities exist in cbor2 through version 5.7.0 in the decode_definite_long_string() function of the C extension decoder (source/decoder.c):
Both vulnerabilities can be exploited remotely without authentication by sending specially-crafted CBOR data containing definite-length text strings with multi-byte UTF-8 characters positioned at 65536-byte chunk boundaries. Successful exploitation results in denial of service through process crashes (CBORDecodeEOF exceptions) or memory exhaustion. The vulnerabilities affect all applications using cbor2's C extension to process untrusted CBOR data, including web APIs, IoT data collectors, and message queue processors. Fixed in commit 851473490281f82d82560b2368284ef33cf6e8f9 pushed with released version 5.7.1. Affected versions
1.0.0
1.1.0
2.0.0
3.0.0
3.0.1
3.0.2
3.0.3
3.0.4
4.0.0
4.0.1
4.1.0
4.1.1
+ 26 more Show less
4.1.2
5.0.0
5.0.1
5.1.0
5.1.1
5.1.2
5.2.0
5.2.0.post1
5.3.0
5.4.0
5.4.1
5.4.2
5.4.2.post1
5.4.3
5.4.4
5.4.5
5.4.6
5.5.0
5.5.1
5.6.0
5.6.1
5.6.2
5.6.3
5.6.4
5.6.5
5.7.0
Fixed in
5.7.1
References
Updated Sep 01, 2026 · Source: OSV.dev |
5.4.6
patch
Dependencies (4)
|
|
5.4.5
patch
3 CVEs
CVE-2026-26209
GHSA-3c37-wwvx-h642
PYSEC-2026-2123
Mar 23, 2026
cbor2 has a Denial of Service via Uncontrolled Recursion in cbor2.loads
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Summary
Details
PoC
Impact
CreditThis issue was discovered by Kevin Tu of TMIR at ByteDance. The patch was developed by @agronholm. Affected versions
1.0.0
1.1.0
2.0.0
3.0.0
3.0.1
3.0.2
3.0.3
3.0.4
4.0.0
4.0.1
4.1.0
4.1.1
+ 28 more Show less
4.1.2
5.0.0
5.0.1
5.1.0
5.1.1
5.1.2
5.2.0
5.2.0.post1
5.3.0
5.4.0
5.4.1
5.4.2
5.4.2.post1
5.4.3
5.4.4
5.4.5
5.4.6
5.5.0
5.5.1
5.6.0
5.6.1
5.6.2
5.6.3
5.6.4
5.6.5
5.7.0
5.7.1
5.8.0
Fixed in
5.9.0
References
Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-68131
GHSA-wcj4-jw5j-44wh
PYSEC-2025-90
Dec 31, 2025
CBORDecoder reuse can leak shareable values across decode calls
Medium
Network
Low
None
None
SummaryWhen a CBORDecoder instance is reused across multiple decode operations, values marked with the shareable tag (28) persist in memory and can be accessed by subsequent CBOR messages using the sharedref tag (29). This allows an attacker-controlled message to read data from previously decoded messages if the decoder is reused across trust boundaries. DetailsThe issue is in the decoder's handling of the shareables list, which stores values tagged with CBOR tag 28 (shareable) for later reference by tag 29 (sharedref). When decode_from_bytes() is called or when .fp is set to a new stream, the shareables list is not cleared. This allows references to persist across separate decode operations. The issue exists in both the C extension and the pure Python decoder. In the C extension (source/decoder.c), the _CBORDecoder_set_fp function (line ~202) updates the file pointer but does not reset the shareables state:
In the pure Python decoder (cbor2/_decoder.py), the fp setter similarly fails to clear self._shareables. Similarly, decode_from_bytes() in both implementations saves and restores the read pointer but does not clear the shareables list between decodes. The shareable/sharedref tags are defined in the CBOR value sharing extension (http://cbor.schmorp.de/value-sharing) with scope limited to a single CBOR data item, not across separate messages. PoC
No special configuration required. Affects any application that reuses a CBORDecoder instance to decode messages from different sources. ImpactInformation disclosure. Applications that reuse a CBORDecoder across trust boundaries are vulnerable if the trusted messages use value sharing (tag 28) and an attacker can send messages containing shared references (tag 29). An attacker who can send a crafted CBOR message containing a sharedref tag can read values from previously decoded messages, potentially exposing sensitive data such as credentials, tokens, or private user data. RelatedA similar issue in the encoder could produce invalid CBOR with dangling shared references:
While primarily a correctness bug, it could cause denial of service if invalid CBOR is transmitted to downstream systems that fail to parse it, or cause silent data corruption if the dangling reference happens to resolve to an unrelated value. It can also be considered a memory leak in both the decoder and encoder as references are held that will never be released as long as the decoder/encoder remains alive. Suggested resolutionAdd dedicated boolean flags to track when an encode/decode operation is in progress. Reset shared state only when the flag is False (top-level call). This ensures state is reset for standalone calls while preserving shared references for nested calls from hooks (which need access to the registry for cyclic structures). Decoder (_decoding flag):
Encoder (_encoding flag):
Affected versions
3.0.0
3.0.1
3.0.2
3.0.3
3.0.4
4.0.0
4.0.1
4.1.0
4.1.1
4.1.2
5.0.0
5.0.1
+ 24 more Show less
5.1.0
5.1.1
5.1.2
5.2.0
5.2.0.post1
5.3.0
5.4.0
5.4.1
5.4.2
5.4.2.post1
5.4.3
5.4.4
5.4.5
5.4.6
5.5.0
5.5.1
5.6.0
5.6.1
5.6.2
5.6.3
5.6.4
5.6.5
5.7.0
5.7.1
Fixed in
5.8.0
References
Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-64076
GHSA-9q9c-vjxh-p795
PYSEC-2025-238
Nov 18, 2025
cbor2 C extension decoder flaws can cause denial of service
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Multiple vulnerabilities exist in cbor2 through version 5.7.0 in the decode_definite_long_string() function of the C extension decoder (source/decoder.c):
Both vulnerabilities can be exploited remotely without authentication by sending specially-crafted CBOR data containing definite-length text strings with multi-byte UTF-8 characters positioned at 65536-byte chunk boundaries. Successful exploitation results in denial of service through process crashes (CBORDecodeEOF exceptions) or memory exhaustion. The vulnerabilities affect all applications using cbor2's C extension to process untrusted CBOR data, including web APIs, IoT data collectors, and message queue processors. Fixed in commit 851473490281f82d82560b2368284ef33cf6e8f9 pushed with released version 5.7.1. Affected versions
1.0.0
1.1.0
2.0.0
3.0.0
3.0.1
3.0.2
3.0.3
3.0.4
4.0.0
4.0.1
4.1.0
4.1.1
+ 26 more Show less
4.1.2
5.0.0
5.0.1
5.1.0
5.1.1
5.1.2
5.2.0
5.2.0.post1
5.3.0
5.4.0
5.4.1
5.4.2
5.4.2.post1
5.4.3
5.4.4
5.4.5
5.4.6
5.5.0
5.5.1
5.6.0
5.6.1
5.6.2
5.6.3
5.6.4
5.6.5
5.7.0
Fixed in
5.7.1
References
Updated Sep 01, 2026 · Source: OSV.dev |
5.4.5
patch
Dependencies (4)
|
|
5.4.4
patch
3 CVEs
CVE-2026-26209
GHSA-3c37-wwvx-h642
PYSEC-2026-2123
Mar 23, 2026
cbor2 has a Denial of Service via Uncontrolled Recursion in cbor2.loads
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Summary
Details
PoC
Impact
CreditThis issue was discovered by Kevin Tu of TMIR at ByteDance. The patch was developed by @agronholm. Affected versions
1.0.0
1.1.0
2.0.0
3.0.0
3.0.1
3.0.2
3.0.3
3.0.4
4.0.0
4.0.1
4.1.0
4.1.1
+ 28 more Show less
4.1.2
5.0.0
5.0.1
5.1.0
5.1.1
5.1.2
5.2.0
5.2.0.post1
5.3.0
5.4.0
5.4.1
5.4.2
5.4.2.post1
5.4.3
5.4.4
5.4.5
5.4.6
5.5.0
5.5.1
5.6.0
5.6.1
5.6.2
5.6.3
5.6.4
5.6.5
5.7.0
5.7.1
5.8.0
Fixed in
5.9.0
References
Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-68131
GHSA-wcj4-jw5j-44wh
PYSEC-2025-90
Dec 31, 2025
CBORDecoder reuse can leak shareable values across decode calls
Medium
Network
Low
None
None
SummaryWhen a CBORDecoder instance is reused across multiple decode operations, values marked with the shareable tag (28) persist in memory and can be accessed by subsequent CBOR messages using the sharedref tag (29). This allows an attacker-controlled message to read data from previously decoded messages if the decoder is reused across trust boundaries. DetailsThe issue is in the decoder's handling of the shareables list, which stores values tagged with CBOR tag 28 (shareable) for later reference by tag 29 (sharedref). When decode_from_bytes() is called or when .fp is set to a new stream, the shareables list is not cleared. This allows references to persist across separate decode operations. The issue exists in both the C extension and the pure Python decoder. In the C extension (source/decoder.c), the _CBORDecoder_set_fp function (line ~202) updates the file pointer but does not reset the shareables state:
In the pure Python decoder (cbor2/_decoder.py), the fp setter similarly fails to clear self._shareables. Similarly, decode_from_bytes() in both implementations saves and restores the read pointer but does not clear the shareables list between decodes. The shareable/sharedref tags are defined in the CBOR value sharing extension (http://cbor.schmorp.de/value-sharing) with scope limited to a single CBOR data item, not across separate messages. PoC
No special configuration required. Affects any application that reuses a CBORDecoder instance to decode messages from different sources. ImpactInformation disclosure. Applications that reuse a CBORDecoder across trust boundaries are vulnerable if the trusted messages use value sharing (tag 28) and an attacker can send messages containing shared references (tag 29). An attacker who can send a crafted CBOR message containing a sharedref tag can read values from previously decoded messages, potentially exposing sensitive data such as credentials, tokens, or private user data. RelatedA similar issue in the encoder could produce invalid CBOR with dangling shared references:
While primarily a correctness bug, it could cause denial of service if invalid CBOR is transmitted to downstream systems that fail to parse it, or cause silent data corruption if the dangling reference happens to resolve to an unrelated value. It can also be considered a memory leak in both the decoder and encoder as references are held that will never be released as long as the decoder/encoder remains alive. Suggested resolutionAdd dedicated boolean flags to track when an encode/decode operation is in progress. Reset shared state only when the flag is False (top-level call). This ensures state is reset for standalone calls while preserving shared references for nested calls from hooks (which need access to the registry for cyclic structures). Decoder (_decoding flag):
Encoder (_encoding flag):
Affected versions
3.0.0
3.0.1
3.0.2
3.0.3
3.0.4
4.0.0
4.0.1
4.1.0
4.1.1
4.1.2
5.0.0
5.0.1
+ 24 more Show less
5.1.0
5.1.1
5.1.2
5.2.0
5.2.0.post1
5.3.0
5.4.0
5.4.1
5.4.2
5.4.2.post1
5.4.3
5.4.4
5.4.5
5.4.6
5.5.0
5.5.1
5.6.0
5.6.1
5.6.2
5.6.3
5.6.4
5.6.5
5.7.0
5.7.1
Fixed in
5.8.0
References
Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-64076
GHSA-9q9c-vjxh-p795
PYSEC-2025-238
Nov 18, 2025
cbor2 C extension decoder flaws can cause denial of service
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Multiple vulnerabilities exist in cbor2 through version 5.7.0 in the decode_definite_long_string() function of the C extension decoder (source/decoder.c):
Both vulnerabilities can be exploited remotely without authentication by sending specially-crafted CBOR data containing definite-length text strings with multi-byte UTF-8 characters positioned at 65536-byte chunk boundaries. Successful exploitation results in denial of service through process crashes (CBORDecodeEOF exceptions) or memory exhaustion. The vulnerabilities affect all applications using cbor2's C extension to process untrusted CBOR data, including web APIs, IoT data collectors, and message queue processors. Fixed in commit 851473490281f82d82560b2368284ef33cf6e8f9 pushed with released version 5.7.1. Affected versions
1.0.0
1.1.0
2.0.0
3.0.0
3.0.1
3.0.2
3.0.3
3.0.4
4.0.0
4.0.1
4.1.0
4.1.1
+ 26 more Show less
4.1.2
5.0.0
5.0.1
5.1.0
5.1.1
5.1.2
5.2.0
5.2.0.post1
5.3.0
5.4.0
5.4.1
5.4.2
5.4.2.post1
5.4.3
5.4.4
5.4.5
5.4.6
5.5.0
5.5.1
5.6.0
5.6.1
5.6.2
5.6.3
5.6.4
5.6.5
5.7.0
Fixed in
5.7.1
References
Updated Sep 01, 2026 · Source: OSV.dev |
5.4.4
patch
Dependencies (4)
|
|
5.4.3
patch
3 CVEs
CVE-2026-26209
GHSA-3c37-wwvx-h642
PYSEC-2026-2123
Mar 23, 2026
cbor2 has a Denial of Service via Uncontrolled Recursion in cbor2.loads
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Summary
Details
PoC
Impact
CreditThis issue was discovered by Kevin Tu of TMIR at ByteDance. The patch was developed by @agronholm. Affected versions
1.0.0
1.1.0
2.0.0
3.0.0
3.0.1
3.0.2
3.0.3
3.0.4
4.0.0
4.0.1
4.1.0
4.1.1
+ 28 more Show less
4.1.2
5.0.0
5.0.1
5.1.0
5.1.1
5.1.2
5.2.0
5.2.0.post1
5.3.0
5.4.0
5.4.1
5.4.2
5.4.2.post1
5.4.3
5.4.4
5.4.5
5.4.6
5.5.0
5.5.1
5.6.0
5.6.1
5.6.2
5.6.3
5.6.4
5.6.5
5.7.0
5.7.1
5.8.0
Fixed in
5.9.0
References
Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-68131
GHSA-wcj4-jw5j-44wh
PYSEC-2025-90
Dec 31, 2025
CBORDecoder reuse can leak shareable values across decode calls
Medium
Network
Low
None
None
SummaryWhen a CBORDecoder instance is reused across multiple decode operations, values marked with the shareable tag (28) persist in memory and can be accessed by subsequent CBOR messages using the sharedref tag (29). This allows an attacker-controlled message to read data from previously decoded messages if the decoder is reused across trust boundaries. DetailsThe issue is in the decoder's handling of the shareables list, which stores values tagged with CBOR tag 28 (shareable) for later reference by tag 29 (sharedref). When decode_from_bytes() is called or when .fp is set to a new stream, the shareables list is not cleared. This allows references to persist across separate decode operations. The issue exists in both the C extension and the pure Python decoder. In the C extension (source/decoder.c), the _CBORDecoder_set_fp function (line ~202) updates the file pointer but does not reset the shareables state:
In the pure Python decoder (cbor2/_decoder.py), the fp setter similarly fails to clear self._shareables. Similarly, decode_from_bytes() in both implementations saves and restores the read pointer but does not clear the shareables list between decodes. The shareable/sharedref tags are defined in the CBOR value sharing extension (http://cbor.schmorp.de/value-sharing) with scope limited to a single CBOR data item, not across separate messages. PoC
No special configuration required. Affects any application that reuses a CBORDecoder instance to decode messages from different sources. ImpactInformation disclosure. Applications that reuse a CBORDecoder across trust boundaries are vulnerable if the trusted messages use value sharing (tag 28) and an attacker can send messages containing shared references (tag 29). An attacker who can send a crafted CBOR message containing a sharedref tag can read values from previously decoded messages, potentially exposing sensitive data such as credentials, tokens, or private user data. RelatedA similar issue in the encoder could produce invalid CBOR with dangling shared references:
While primarily a correctness bug, it could cause denial of service if invalid CBOR is transmitted to downstream systems that fail to parse it, or cause silent data corruption if the dangling reference happens to resolve to an unrelated value. It can also be considered a memory leak in both the decoder and encoder as references are held that will never be released as long as the decoder/encoder remains alive. Suggested resolutionAdd dedicated boolean flags to track when an encode/decode operation is in progress. Reset shared state only when the flag is False (top-level call). This ensures state is reset for standalone calls while preserving shared references for nested calls from hooks (which need access to the registry for cyclic structures). Decoder (_decoding flag):
Encoder (_encoding flag):
Affected versions
3.0.0
3.0.1
3.0.2
3.0.3
3.0.4
4.0.0
4.0.1
4.1.0
4.1.1
4.1.2
5.0.0
5.0.1
+ 24 more Show less
5.1.0
5.1.1
5.1.2
5.2.0
5.2.0.post1
5.3.0
5.4.0
5.4.1
5.4.2
5.4.2.post1
5.4.3
5.4.4
5.4.5
5.4.6
5.5.0
5.5.1
5.6.0
5.6.1
5.6.2
5.6.3
5.6.4
5.6.5
5.7.0
5.7.1
Fixed in
5.8.0
References
Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-64076
GHSA-9q9c-vjxh-p795
PYSEC-2025-238
Nov 18, 2025
cbor2 C extension decoder flaws can cause denial of service
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Multiple vulnerabilities exist in cbor2 through version 5.7.0 in the decode_definite_long_string() function of the C extension decoder (source/decoder.c):
Both vulnerabilities can be exploited remotely without authentication by sending specially-crafted CBOR data containing definite-length text strings with multi-byte UTF-8 characters positioned at 65536-byte chunk boundaries. Successful exploitation results in denial of service through process crashes (CBORDecodeEOF exceptions) or memory exhaustion. The vulnerabilities affect all applications using cbor2's C extension to process untrusted CBOR data, including web APIs, IoT data collectors, and message queue processors. Fixed in commit 851473490281f82d82560b2368284ef33cf6e8f9 pushed with released version 5.7.1. Affected versions
1.0.0
1.1.0
2.0.0
3.0.0
3.0.1
3.0.2
3.0.3
3.0.4
4.0.0
4.0.1
4.1.0
4.1.1
+ 26 more Show less
4.1.2
5.0.0
5.0.1
5.1.0
5.1.1
5.1.2
5.2.0
5.2.0.post1
5.3.0
5.4.0
5.4.1
5.4.2
5.4.2.post1
5.4.3
5.4.4
5.4.5
5.4.6
5.5.0
5.5.1
5.6.0
5.6.1
5.6.2
5.6.3
5.6.4
5.6.5
5.7.0
Fixed in
5.7.1
References
Updated Sep 01, 2026 · Source: OSV.dev |
5.4.3
patch
Dependencies (4)
|
|
5.4.2.post1
pre
3 CVEs
CVE-2026-26209
GHSA-3c37-wwvx-h642
PYSEC-2026-2123
Mar 23, 2026
cbor2 has a Denial of Service via Uncontrolled Recursion in cbor2.loads
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Summary
Details
PoC
Impact
CreditThis issue was discovered by Kevin Tu of TMIR at ByteDance. The patch was developed by @agronholm. Affected versions
1.0.0
1.1.0
2.0.0
3.0.0
3.0.1
3.0.2
3.0.3
3.0.4
4.0.0
4.0.1
4.1.0
4.1.1
+ 28 more Show less
4.1.2
5.0.0
5.0.1
5.1.0
5.1.1
5.1.2
5.2.0
5.2.0.post1
5.3.0
5.4.0
5.4.1
5.4.2
5.4.2.post1
5.4.3
5.4.4
5.4.5
5.4.6
5.5.0
5.5.1
5.6.0
5.6.1
5.6.2
5.6.3
5.6.4
5.6.5
5.7.0
5.7.1
5.8.0
Fixed in
5.9.0
References
Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-68131
GHSA-wcj4-jw5j-44wh
PYSEC-2025-90
Dec 31, 2025
CBORDecoder reuse can leak shareable values across decode calls
Medium
Network
Low
None
None
SummaryWhen a CBORDecoder instance is reused across multiple decode operations, values marked with the shareable tag (28) persist in memory and can be accessed by subsequent CBOR messages using the sharedref tag (29). This allows an attacker-controlled message to read data from previously decoded messages if the decoder is reused across trust boundaries. DetailsThe issue is in the decoder's handling of the shareables list, which stores values tagged with CBOR tag 28 (shareable) for later reference by tag 29 (sharedref). When decode_from_bytes() is called or when .fp is set to a new stream, the shareables list is not cleared. This allows references to persist across separate decode operations. The issue exists in both the C extension and the pure Python decoder. In the C extension (source/decoder.c), the _CBORDecoder_set_fp function (line ~202) updates the file pointer but does not reset the shareables state:
In the pure Python decoder (cbor2/_decoder.py), the fp setter similarly fails to clear self._shareables. Similarly, decode_from_bytes() in both implementations saves and restores the read pointer but does not clear the shareables list between decodes. The shareable/sharedref tags are defined in the CBOR value sharing extension (http://cbor.schmorp.de/value-sharing) with scope limited to a single CBOR data item, not across separate messages. PoC
No special configuration required. Affects any application that reuses a CBORDecoder instance to decode messages from different sources. ImpactInformation disclosure. Applications that reuse a CBORDecoder across trust boundaries are vulnerable if the trusted messages use value sharing (tag 28) and an attacker can send messages containing shared references (tag 29). An attacker who can send a crafted CBOR message containing a sharedref tag can read values from previously decoded messages, potentially exposing sensitive data such as credentials, tokens, or private user data. RelatedA similar issue in the encoder could produce invalid CBOR with dangling shared references:
While primarily a correctness bug, it could cause denial of service if invalid CBOR is transmitted to downstream systems that fail to parse it, or cause silent data corruption if the dangling reference happens to resolve to an unrelated value. It can also be considered a memory leak in both the decoder and encoder as references are held that will never be released as long as the decoder/encoder remains alive. Suggested resolutionAdd dedicated boolean flags to track when an encode/decode operation is in progress. Reset shared state only when the flag is False (top-level call). This ensures state is reset for standalone calls while preserving shared references for nested calls from hooks (which need access to the registry for cyclic structures). Decoder (_decoding flag):
Encoder (_encoding flag):
Affected versions
3.0.0
3.0.1
3.0.2
3.0.3
3.0.4
4.0.0
4.0.1
4.1.0
4.1.1
4.1.2
5.0.0
5.0.1
+ 24 more Show less
5.1.0
5.1.1
5.1.2
5.2.0
5.2.0.post1
5.3.0
5.4.0
5.4.1
5.4.2
5.4.2.post1
5.4.3
5.4.4
5.4.5
5.4.6
5.5.0
5.5.1
5.6.0
5.6.1
5.6.2
5.6.3
5.6.4
5.6.5
5.7.0
5.7.1
Fixed in
5.8.0
References
Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-64076
GHSA-9q9c-vjxh-p795
PYSEC-2025-238
Nov 18, 2025
cbor2 C extension decoder flaws can cause denial of service
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Multiple vulnerabilities exist in cbor2 through version 5.7.0 in the decode_definite_long_string() function of the C extension decoder (source/decoder.c):
Both vulnerabilities can be exploited remotely without authentication by sending specially-crafted CBOR data containing definite-length text strings with multi-byte UTF-8 characters positioned at 65536-byte chunk boundaries. Successful exploitation results in denial of service through process crashes (CBORDecodeEOF exceptions) or memory exhaustion. The vulnerabilities affect all applications using cbor2's C extension to process untrusted CBOR data, including web APIs, IoT data collectors, and message queue processors. Fixed in commit 851473490281f82d82560b2368284ef33cf6e8f9 pushed with released version 5.7.1. Affected versions
1.0.0
1.1.0
2.0.0
3.0.0
3.0.1
3.0.2
3.0.3
3.0.4
4.0.0
4.0.1
4.1.0
4.1.1
+ 26 more Show less
4.1.2
5.0.0
5.0.1
5.1.0
5.1.1
5.1.2
5.2.0
5.2.0.post1
5.3.0
5.4.0
5.4.1
5.4.2
5.4.2.post1
5.4.3
5.4.4
5.4.5
5.4.6
5.5.0
5.5.1
5.6.0
5.6.1
5.6.2
5.6.3
5.6.4
5.6.5
5.7.0
Fixed in
5.7.1
References
Updated Sep 01, 2026 · Source: OSV.dev |
5.4.2.post1
pre
Dependencies (4)
|
|
5.2.0.post1
pre
3 CVEs
CVE-2026-26209
GHSA-3c37-wwvx-h642
PYSEC-2026-2123
Mar 23, 2026
cbor2 has a Denial of Service via Uncontrolled Recursion in cbor2.loads
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Summary
Details
PoC
Impact
CreditThis issue was discovered by Kevin Tu of TMIR at ByteDance. The patch was developed by @agronholm. Affected versions
1.0.0
1.1.0
2.0.0
3.0.0
3.0.1
3.0.2
3.0.3
3.0.4
4.0.0
4.0.1
4.1.0
4.1.1
+ 28 more Show less
4.1.2
5.0.0
5.0.1
5.1.0
5.1.1
5.1.2
5.2.0
5.2.0.post1
5.3.0
5.4.0
5.4.1
5.4.2
5.4.2.post1
5.4.3
5.4.4
5.4.5
5.4.6
5.5.0
5.5.1
5.6.0
5.6.1
5.6.2
5.6.3
5.6.4
5.6.5
5.7.0
5.7.1
5.8.0
Fixed in
5.9.0
References
Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-68131
GHSA-wcj4-jw5j-44wh
PYSEC-2025-90
Dec 31, 2025
CBORDecoder reuse can leak shareable values across decode calls
Medium
Network
Low
None
None
SummaryWhen a CBORDecoder instance is reused across multiple decode operations, values marked with the shareable tag (28) persist in memory and can be accessed by subsequent CBOR messages using the sharedref tag (29). This allows an attacker-controlled message to read data from previously decoded messages if the decoder is reused across trust boundaries. DetailsThe issue is in the decoder's handling of the shareables list, which stores values tagged with CBOR tag 28 (shareable) for later reference by tag 29 (sharedref). When decode_from_bytes() is called or when .fp is set to a new stream, the shareables list is not cleared. This allows references to persist across separate decode operations. The issue exists in both the C extension and the pure Python decoder. In the C extension (source/decoder.c), the _CBORDecoder_set_fp function (line ~202) updates the file pointer but does not reset the shareables state:
In the pure Python decoder (cbor2/_decoder.py), the fp setter similarly fails to clear self._shareables. Similarly, decode_from_bytes() in both implementations saves and restores the read pointer but does not clear the shareables list between decodes. The shareable/sharedref tags are defined in the CBOR value sharing extension (http://cbor.schmorp.de/value-sharing) with scope limited to a single CBOR data item, not across separate messages. PoC
No special configuration required. Affects any application that reuses a CBORDecoder instance to decode messages from different sources. ImpactInformation disclosure. Applications that reuse a CBORDecoder across trust boundaries are vulnerable if the trusted messages use value sharing (tag 28) and an attacker can send messages containing shared references (tag 29). An attacker who can send a crafted CBOR message containing a sharedref tag can read values from previously decoded messages, potentially exposing sensitive data such as credentials, tokens, or private user data. RelatedA similar issue in the encoder could produce invalid CBOR with dangling shared references:
While primarily a correctness bug, it could cause denial of service if invalid CBOR is transmitted to downstream systems that fail to parse it, or cause silent data corruption if the dangling reference happens to resolve to an unrelated value. It can also be considered a memory leak in both the decoder and encoder as references are held that will never be released as long as the decoder/encoder remains alive. Suggested resolutionAdd dedicated boolean flags to track when an encode/decode operation is in progress. Reset shared state only when the flag is False (top-level call). This ensures state is reset for standalone calls while preserving shared references for nested calls from hooks (which need access to the registry for cyclic structures). Decoder (_decoding flag):
Encoder (_encoding flag):
Affected versions
3.0.0
3.0.1
3.0.2
3.0.3
3.0.4
4.0.0
4.0.1
4.1.0
4.1.1
4.1.2
5.0.0
5.0.1
+ 24 more Show less
5.1.0
5.1.1
5.1.2
5.2.0
5.2.0.post1
5.3.0
5.4.0
5.4.1
5.4.2
5.4.2.post1
5.4.3
5.4.4
5.4.5
5.4.6
5.5.0
5.5.1
5.6.0
5.6.1
5.6.2
5.6.3
5.6.4
5.6.5
5.7.0
5.7.1
Fixed in
5.8.0
References
Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-64076
GHSA-9q9c-vjxh-p795
PYSEC-2025-238
Nov 18, 2025
cbor2 C extension decoder flaws can cause denial of service
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Multiple vulnerabilities exist in cbor2 through version 5.7.0 in the decode_definite_long_string() function of the C extension decoder (source/decoder.c):
Both vulnerabilities can be exploited remotely without authentication by sending specially-crafted CBOR data containing definite-length text strings with multi-byte UTF-8 characters positioned at 65536-byte chunk boundaries. Successful exploitation results in denial of service through process crashes (CBORDecodeEOF exceptions) or memory exhaustion. The vulnerabilities affect all applications using cbor2's C extension to process untrusted CBOR data, including web APIs, IoT data collectors, and message queue processors. Fixed in commit 851473490281f82d82560b2368284ef33cf6e8f9 pushed with released version 5.7.1. Affected versions
1.0.0
1.1.0
2.0.0
3.0.0
3.0.1
3.0.2
3.0.3
3.0.4
4.0.0
4.0.1
4.1.0
4.1.1
+ 26 more Show less
4.1.2
5.0.0
5.0.1
5.1.0
5.1.1
5.1.2
5.2.0
5.2.0.post1
5.3.0
5.4.0
5.4.1
5.4.2
5.4.2.post1
5.4.3
5.4.4
5.4.5
5.4.6
5.5.0
5.5.1
5.6.0
5.6.1
5.6.2
5.6.3
5.6.4
5.6.5
5.7.0
Fixed in
5.7.1
References
Updated Sep 01, 2026 · Source: OSV.dev |
5.2.0.post1
pre
|
|
5.4.2
patch
3 CVEs
CVE-2026-26209
GHSA-3c37-wwvx-h642
PYSEC-2026-2123
Mar 23, 2026
cbor2 has a Denial of Service via Uncontrolled Recursion in cbor2.loads
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Summary
Details
PoC
Impact
CreditThis issue was discovered by Kevin Tu of TMIR at ByteDance. The patch was developed by @agronholm. Affected versions
1.0.0
1.1.0
2.0.0
3.0.0
3.0.1
3.0.2
3.0.3
3.0.4
4.0.0
4.0.1
4.1.0
4.1.1
+ 28 more Show less
4.1.2
5.0.0
5.0.1
5.1.0
5.1.1
5.1.2
5.2.0
5.2.0.post1
5.3.0
5.4.0
5.4.1
5.4.2
5.4.2.post1
5.4.3
5.4.4
5.4.5
5.4.6
5.5.0
5.5.1
5.6.0
5.6.1
5.6.2
5.6.3
5.6.4
5.6.5
5.7.0
5.7.1
5.8.0
Fixed in
5.9.0
References
Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-68131
GHSA-wcj4-jw5j-44wh
PYSEC-2025-90
Dec 31, 2025
CBORDecoder reuse can leak shareable values across decode calls
Medium
Network
Low
None
None
SummaryWhen a CBORDecoder instance is reused across multiple decode operations, values marked with the shareable tag (28) persist in memory and can be accessed by subsequent CBOR messages using the sharedref tag (29). This allows an attacker-controlled message to read data from previously decoded messages if the decoder is reused across trust boundaries. DetailsThe issue is in the decoder's handling of the shareables list, which stores values tagged with CBOR tag 28 (shareable) for later reference by tag 29 (sharedref). When decode_from_bytes() is called or when .fp is set to a new stream, the shareables list is not cleared. This allows references to persist across separate decode operations. The issue exists in both the C extension and the pure Python decoder. In the C extension (source/decoder.c), the _CBORDecoder_set_fp function (line ~202) updates the file pointer but does not reset the shareables state:
In the pure Python decoder (cbor2/_decoder.py), the fp setter similarly fails to clear self._shareables. Similarly, decode_from_bytes() in both implementations saves and restores the read pointer but does not clear the shareables list between decodes. The shareable/sharedref tags are defined in the CBOR value sharing extension (http://cbor.schmorp.de/value-sharing) with scope limited to a single CBOR data item, not across separate messages. PoC
No special configuration required. Affects any application that reuses a CBORDecoder instance to decode messages from different sources. ImpactInformation disclosure. Applications that reuse a CBORDecoder across trust boundaries are vulnerable if the trusted messages use value sharing (tag 28) and an attacker can send messages containing shared references (tag 29). An attacker who can send a crafted CBOR message containing a sharedref tag can read values from previously decoded messages, potentially exposing sensitive data such as credentials, tokens, or private user data. RelatedA similar issue in the encoder could produce invalid CBOR with dangling shared references:
While primarily a correctness bug, it could cause denial of service if invalid CBOR is transmitted to downstream systems that fail to parse it, or cause silent data corruption if the dangling reference happens to resolve to an unrelated value. It can also be considered a memory leak in both the decoder and encoder as references are held that will never be released as long as the decoder/encoder remains alive. Suggested resolutionAdd dedicated boolean flags to track when an encode/decode operation is in progress. Reset shared state only when the flag is False (top-level call). This ensures state is reset for standalone calls while preserving shared references for nested calls from hooks (which need access to the registry for cyclic structures). Decoder (_decoding flag):
Encoder (_encoding flag):
Affected versions
3.0.0
3.0.1
3.0.2
3.0.3
3.0.4
4.0.0
4.0.1
4.1.0
4.1.1
4.1.2
5.0.0
5.0.1
+ 24 more Show less
5.1.0
5.1.1
5.1.2
5.2.0
5.2.0.post1
5.3.0
5.4.0
5.4.1
5.4.2
5.4.2.post1
5.4.3
5.4.4
5.4.5
5.4.6
5.5.0
5.5.1
5.6.0
5.6.1
5.6.2
5.6.3
5.6.4
5.6.5
5.7.0
5.7.1
Fixed in
5.8.0
References
Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-64076
GHSA-9q9c-vjxh-p795
PYSEC-2025-238
Nov 18, 2025
cbor2 C extension decoder flaws can cause denial of service
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Multiple vulnerabilities exist in cbor2 through version 5.7.0 in the decode_definite_long_string() function of the C extension decoder (source/decoder.c):
Both vulnerabilities can be exploited remotely without authentication by sending specially-crafted CBOR data containing definite-length text strings with multi-byte UTF-8 characters positioned at 65536-byte chunk boundaries. Successful exploitation results in denial of service through process crashes (CBORDecodeEOF exceptions) or memory exhaustion. The vulnerabilities affect all applications using cbor2's C extension to process untrusted CBOR data, including web APIs, IoT data collectors, and message queue processors. Fixed in commit 851473490281f82d82560b2368284ef33cf6e8f9 pushed with released version 5.7.1. Affected versions
1.0.0
1.1.0
2.0.0
3.0.0
3.0.1
3.0.2
3.0.3
3.0.4
4.0.0
4.0.1
4.1.0
4.1.1
+ 26 more Show less
4.1.2
5.0.0
5.0.1
5.1.0
5.1.1
5.1.2
5.2.0
5.2.0.post1
5.3.0
5.4.0
5.4.1
5.4.2
5.4.2.post1
5.4.3
5.4.4
5.4.5
5.4.6
5.5.0
5.5.1
5.6.0
5.6.1
5.6.2
5.6.3
5.6.4
5.6.5
5.7.0
Fixed in
5.7.1
References
Updated Sep 01, 2026 · Source: OSV.dev |
5.4.2
patch
Dependencies (4)
|
|
5.4.1
patch
3 CVEs
CVE-2026-26209
GHSA-3c37-wwvx-h642
PYSEC-2026-2123
Mar 23, 2026
cbor2 has a Denial of Service via Uncontrolled Recursion in cbor2.loads
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Summary
Details
PoC
Impact
CreditThis issue was discovered by Kevin Tu of TMIR at ByteDance. The patch was developed by @agronholm. Affected versions
1.0.0
1.1.0
2.0.0
3.0.0
3.0.1
3.0.2
3.0.3
3.0.4
4.0.0
4.0.1
4.1.0
4.1.1
+ 28 more Show less
4.1.2
5.0.0
5.0.1
5.1.0
5.1.1
5.1.2
5.2.0
5.2.0.post1
5.3.0
5.4.0
5.4.1
5.4.2
5.4.2.post1
5.4.3
5.4.4
5.4.5
5.4.6
5.5.0
5.5.1
5.6.0
5.6.1
5.6.2
5.6.3
5.6.4
5.6.5
5.7.0
5.7.1
5.8.0
Fixed in
5.9.0
References
Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-68131
GHSA-wcj4-jw5j-44wh
PYSEC-2025-90
Dec 31, 2025
CBORDecoder reuse can leak shareable values across decode calls
Medium
Network
Low
None
None
SummaryWhen a CBORDecoder instance is reused across multiple decode operations, values marked with the shareable tag (28) persist in memory and can be accessed by subsequent CBOR messages using the sharedref tag (29). This allows an attacker-controlled message to read data from previously decoded messages if the decoder is reused across trust boundaries. DetailsThe issue is in the decoder's handling of the shareables list, which stores values tagged with CBOR tag 28 (shareable) for later reference by tag 29 (sharedref). When decode_from_bytes() is called or when .fp is set to a new stream, the shareables list is not cleared. This allows references to persist across separate decode operations. The issue exists in both the C extension and the pure Python decoder. In the C extension (source/decoder.c), the _CBORDecoder_set_fp function (line ~202) updates the file pointer but does not reset the shareables state:
In the pure Python decoder (cbor2/_decoder.py), the fp setter similarly fails to clear self._shareables. Similarly, decode_from_bytes() in both implementations saves and restores the read pointer but does not clear the shareables list between decodes. The shareable/sharedref tags are defined in the CBOR value sharing extension (http://cbor.schmorp.de/value-sharing) with scope limited to a single CBOR data item, not across separate messages. PoC
No special configuration required. Affects any application that reuses a CBORDecoder instance to decode messages from different sources. ImpactInformation disclosure. Applications that reuse a CBORDecoder across trust boundaries are vulnerable if the trusted messages use value sharing (tag 28) and an attacker can send messages containing shared references (tag 29). An attacker who can send a crafted CBOR message containing a sharedref tag can read values from previously decoded messages, potentially exposing sensitive data such as credentials, tokens, or private user data. RelatedA similar issue in the encoder could produce invalid CBOR with dangling shared references:
While primarily a correctness bug, it could cause denial of service if invalid CBOR is transmitted to downstream systems that fail to parse it, or cause silent data corruption if the dangling reference happens to resolve to an unrelated value. It can also be considered a memory leak in both the decoder and encoder as references are held that will never be released as long as the decoder/encoder remains alive. Suggested resolutionAdd dedicated boolean flags to track when an encode/decode operation is in progress. Reset shared state only when the flag is False (top-level call). This ensures state is reset for standalone calls while preserving shared references for nested calls from hooks (which need access to the registry for cyclic structures). Decoder (_decoding flag):
Encoder (_encoding flag):
Affected versions
3.0.0
3.0.1
3.0.2
3.0.3
3.0.4
4.0.0
4.0.1
4.1.0
4.1.1
4.1.2
5.0.0
5.0.1
+ 24 more Show less
5.1.0
5.1.1
5.1.2
5.2.0
5.2.0.post1
5.3.0
5.4.0
5.4.1
5.4.2
5.4.2.post1
5.4.3
5.4.4
5.4.5
5.4.6
5.5.0
5.5.1
5.6.0
5.6.1
5.6.2
5.6.3
5.6.4
5.6.5
5.7.0
5.7.1
Fixed in
5.8.0
References
Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-64076
GHSA-9q9c-vjxh-p795
PYSEC-2025-238
Nov 18, 2025
cbor2 C extension decoder flaws can cause denial of service
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Multiple vulnerabilities exist in cbor2 through version 5.7.0 in the decode_definite_long_string() function of the C extension decoder (source/decoder.c):
Both vulnerabilities can be exploited remotely without authentication by sending specially-crafted CBOR data containing definite-length text strings with multi-byte UTF-8 characters positioned at 65536-byte chunk boundaries. Successful exploitation results in denial of service through process crashes (CBORDecodeEOF exceptions) or memory exhaustion. The vulnerabilities affect all applications using cbor2's C extension to process untrusted CBOR data, including web APIs, IoT data collectors, and message queue processors. Fixed in commit 851473490281f82d82560b2368284ef33cf6e8f9 pushed with released version 5.7.1. Affected versions
1.0.0
1.1.0
2.0.0
3.0.0
3.0.1
3.0.2
3.0.3
3.0.4
4.0.0
4.0.1
4.1.0
4.1.1
+ 26 more Show less
4.1.2
5.0.0
5.0.1
5.1.0
5.1.1
5.1.2
5.2.0
5.2.0.post1
5.3.0
5.4.0
5.4.1
5.4.2
5.4.2.post1
5.4.3
5.4.4
5.4.5
5.4.6
5.5.0
5.5.1
5.6.0
5.6.1
5.6.2
5.6.3
5.6.4
5.6.5
5.7.0
Fixed in
5.7.1
References
Updated Sep 01, 2026 · Source: OSV.dev |
5.4.1
patch
Dependencies (4)
|
|
5.4.0
minor
3 CVEs
CVE-2026-26209
GHSA-3c37-wwvx-h642
PYSEC-2026-2123
Mar 23, 2026
cbor2 has a Denial of Service via Uncontrolled Recursion in cbor2.loads
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Summary
Details
PoC
Impact
CreditThis issue was discovered by Kevin Tu of TMIR at ByteDance. The patch was developed by @agronholm. Affected versions
1.0.0
1.1.0
2.0.0
3.0.0
3.0.1
3.0.2
3.0.3
3.0.4
4.0.0
4.0.1
4.1.0
4.1.1
+ 28 more Show less
4.1.2
5.0.0
5.0.1
5.1.0
5.1.1
5.1.2
5.2.0
5.2.0.post1
5.3.0
5.4.0
5.4.1
5.4.2
5.4.2.post1
5.4.3
5.4.4
5.4.5
5.4.6
5.5.0
5.5.1
5.6.0
5.6.1
5.6.2
5.6.3
5.6.4
5.6.5
5.7.0
5.7.1
5.8.0
Fixed in
5.9.0
References
Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-68131
GHSA-wcj4-jw5j-44wh
PYSEC-2025-90
Dec 31, 2025
CBORDecoder reuse can leak shareable values across decode calls
Medium
Network
Low
None
None
SummaryWhen a CBORDecoder instance is reused across multiple decode operations, values marked with the shareable tag (28) persist in memory and can be accessed by subsequent CBOR messages using the sharedref tag (29). This allows an attacker-controlled message to read data from previously decoded messages if the decoder is reused across trust boundaries. DetailsThe issue is in the decoder's handling of the shareables list, which stores values tagged with CBOR tag 28 (shareable) for later reference by tag 29 (sharedref). When decode_from_bytes() is called or when .fp is set to a new stream, the shareables list is not cleared. This allows references to persist across separate decode operations. The issue exists in both the C extension and the pure Python decoder. In the C extension (source/decoder.c), the _CBORDecoder_set_fp function (line ~202) updates the file pointer but does not reset the shareables state:
In the pure Python decoder (cbor2/_decoder.py), the fp setter similarly fails to clear self._shareables. Similarly, decode_from_bytes() in both implementations saves and restores the read pointer but does not clear the shareables list between decodes. The shareable/sharedref tags are defined in the CBOR value sharing extension (http://cbor.schmorp.de/value-sharing) with scope limited to a single CBOR data item, not across separate messages. PoC
No special configuration required. Affects any application that reuses a CBORDecoder instance to decode messages from different sources. ImpactInformation disclosure. Applications that reuse a CBORDecoder across trust boundaries are vulnerable if the trusted messages use value sharing (tag 28) and an attacker can send messages containing shared references (tag 29). An attacker who can send a crafted CBOR message containing a sharedref tag can read values from previously decoded messages, potentially exposing sensitive data such as credentials, tokens, or private user data. RelatedA similar issue in the encoder could produce invalid CBOR with dangling shared references:
While primarily a correctness bug, it could cause denial of service if invalid CBOR is transmitted to downstream systems that fail to parse it, or cause silent data corruption if the dangling reference happens to resolve to an unrelated value. It can also be considered a memory leak in both the decoder and encoder as references are held that will never be released as long as the decoder/encoder remains alive. Suggested resolutionAdd dedicated boolean flags to track when an encode/decode operation is in progress. Reset shared state only when the flag is False (top-level call). This ensures state is reset for standalone calls while preserving shared references for nested calls from hooks (which need access to the registry for cyclic structures). Decoder (_decoding flag):
Encoder (_encoding flag):
Affected versions
3.0.0
3.0.1
3.0.2
3.0.3
3.0.4
4.0.0
4.0.1
4.1.0
4.1.1
4.1.2
5.0.0
5.0.1
+ 24 more Show less
5.1.0
5.1.1
5.1.2
5.2.0
5.2.0.post1
5.3.0
5.4.0
5.4.1
5.4.2
5.4.2.post1
5.4.3
5.4.4
5.4.5
5.4.6
5.5.0
5.5.1
5.6.0
5.6.1
5.6.2
5.6.3
5.6.4
5.6.5
5.7.0
5.7.1
Fixed in
5.8.0
References
Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-64076
GHSA-9q9c-vjxh-p795
PYSEC-2025-238
Nov 18, 2025
cbor2 C extension decoder flaws can cause denial of service
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Multiple vulnerabilities exist in cbor2 through version 5.7.0 in the decode_definite_long_string() function of the C extension decoder (source/decoder.c):
Both vulnerabilities can be exploited remotely without authentication by sending specially-crafted CBOR data containing definite-length text strings with multi-byte UTF-8 characters positioned at 65536-byte chunk boundaries. Successful exploitation results in denial of service through process crashes (CBORDecodeEOF exceptions) or memory exhaustion. The vulnerabilities affect all applications using cbor2's C extension to process untrusted CBOR data, including web APIs, IoT data collectors, and message queue processors. Fixed in commit 851473490281f82d82560b2368284ef33cf6e8f9 pushed with released version 5.7.1. Affected versions
1.0.0
1.1.0
2.0.0
3.0.0
3.0.1
3.0.2
3.0.3
3.0.4
4.0.0
4.0.1
4.1.0
4.1.1
+ 26 more Show less
4.1.2
5.0.0
5.0.1
5.1.0
5.1.1
5.1.2
5.2.0
5.2.0.post1
5.3.0
5.4.0
5.4.1
5.4.2
5.4.2.post1
5.4.3
5.4.4
5.4.5
5.4.6
5.5.0
5.5.1
5.6.0
5.6.1
5.6.2
5.6.3
5.6.4
5.6.5
5.7.0
Fixed in
5.7.1
References
Updated Sep 01, 2026 · Source: OSV.dev |
5.4.0
minor
Dependencies (4)
|
|
5.3.0
minor
3 CVEs
CVE-2026-26209
GHSA-3c37-wwvx-h642
PYSEC-2026-2123
Mar 23, 2026
cbor2 has a Denial of Service via Uncontrolled Recursion in cbor2.loads
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Summary
Details
PoC
Impact
CreditThis issue was discovered by Kevin Tu of TMIR at ByteDance. The patch was developed by @agronholm. Affected versions
1.0.0
1.1.0
2.0.0
3.0.0
3.0.1
3.0.2
3.0.3
3.0.4
4.0.0
4.0.1
4.1.0
4.1.1
+ 28 more Show less
4.1.2
5.0.0
5.0.1
5.1.0
5.1.1
5.1.2
5.2.0
5.2.0.post1
5.3.0
5.4.0
5.4.1
5.4.2
5.4.2.post1
5.4.3
5.4.4
5.4.5
5.4.6
5.5.0
5.5.1
5.6.0
5.6.1
5.6.2
5.6.3
5.6.4
5.6.5
5.7.0
5.7.1
5.8.0
Fixed in
5.9.0
References
Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-68131
GHSA-wcj4-jw5j-44wh
PYSEC-2025-90
Dec 31, 2025
CBORDecoder reuse can leak shareable values across decode calls
Medium
Network
Low
None
None
SummaryWhen a CBORDecoder instance is reused across multiple decode operations, values marked with the shareable tag (28) persist in memory and can be accessed by subsequent CBOR messages using the sharedref tag (29). This allows an attacker-controlled message to read data from previously decoded messages if the decoder is reused across trust boundaries. DetailsThe issue is in the decoder's handling of the shareables list, which stores values tagged with CBOR tag 28 (shareable) for later reference by tag 29 (sharedref). When decode_from_bytes() is called or when .fp is set to a new stream, the shareables list is not cleared. This allows references to persist across separate decode operations. The issue exists in both the C extension and the pure Python decoder. In the C extension (source/decoder.c), the _CBORDecoder_set_fp function (line ~202) updates the file pointer but does not reset the shareables state:
In the pure Python decoder (cbor2/_decoder.py), the fp setter similarly fails to clear self._shareables. Similarly, decode_from_bytes() in both implementations saves and restores the read pointer but does not clear the shareables list between decodes. The shareable/sharedref tags are defined in the CBOR value sharing extension (http://cbor.schmorp.de/value-sharing) with scope limited to a single CBOR data item, not across separate messages. PoC
No special configuration required. Affects any application that reuses a CBORDecoder instance to decode messages from different sources. ImpactInformation disclosure. Applications that reuse a CBORDecoder across trust boundaries are vulnerable if the trusted messages use value sharing (tag 28) and an attacker can send messages containing shared references (tag 29). An attacker who can send a crafted CBOR message containing a sharedref tag can read values from previously decoded messages, potentially exposing sensitive data such as credentials, tokens, or private user data. RelatedA similar issue in the encoder could produce invalid CBOR with dangling shared references:
While primarily a correctness bug, it could cause denial of service if invalid CBOR is transmitted to downstream systems that fail to parse it, or cause silent data corruption if the dangling reference happens to resolve to an unrelated value. It can also be considered a memory leak in both the decoder and encoder as references are held that will never be released as long as the decoder/encoder remains alive. Suggested resolutionAdd dedicated boolean flags to track when an encode/decode operation is in progress. Reset shared state only when the flag is False (top-level call). This ensures state is reset for standalone calls while preserving shared references for nested calls from hooks (which need access to the registry for cyclic structures). Decoder (_decoding flag):
Encoder (_encoding flag):
Affected versions
3.0.0
3.0.1
3.0.2
3.0.3
3.0.4
4.0.0
4.0.1
4.1.0
4.1.1
4.1.2
5.0.0
5.0.1
+ 24 more Show less
5.1.0
5.1.1
5.1.2
5.2.0
5.2.0.post1
5.3.0
5.4.0
5.4.1
5.4.2
5.4.2.post1
5.4.3
5.4.4
5.4.5
5.4.6
5.5.0
5.5.1
5.6.0
5.6.1
5.6.2
5.6.3
5.6.4
5.6.5
5.7.0
5.7.1
Fixed in
5.8.0
References
Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-64076
GHSA-9q9c-vjxh-p795
PYSEC-2025-238
Nov 18, 2025
cbor2 C extension decoder flaws can cause denial of service
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Multiple vulnerabilities exist in cbor2 through version 5.7.0 in the decode_definite_long_string() function of the C extension decoder (source/decoder.c):
Both vulnerabilities can be exploited remotely without authentication by sending specially-crafted CBOR data containing definite-length text strings with multi-byte UTF-8 characters positioned at 65536-byte chunk boundaries. Successful exploitation results in denial of service through process crashes (CBORDecodeEOF exceptions) or memory exhaustion. The vulnerabilities affect all applications using cbor2's C extension to process untrusted CBOR data, including web APIs, IoT data collectors, and message queue processors. Fixed in commit 851473490281f82d82560b2368284ef33cf6e8f9 pushed with released version 5.7.1. Affected versions
1.0.0
1.1.0
2.0.0
3.0.0
3.0.1
3.0.2
3.0.3
3.0.4
4.0.0
4.0.1
4.1.0
4.1.1
+ 26 more Show less
4.1.2
5.0.0
5.0.1
5.1.0
5.1.1
5.1.2
5.2.0
5.2.0.post1
5.3.0
5.4.0
5.4.1
5.4.2
5.4.2.post1
5.4.3
5.4.4
5.4.5
5.4.6
5.5.0
5.5.1
5.6.0
5.6.1
5.6.2
5.6.3
5.6.4
5.6.5
5.7.0
Fixed in
5.7.1
References
Updated Sep 01, 2026 · Source: OSV.dev |
5.3.0
minor
Dependencies (4)
|
|
5.2.0
minor
3 CVEs
CVE-2026-26209
GHSA-3c37-wwvx-h642
PYSEC-2026-2123
Mar 23, 2026
cbor2 has a Denial of Service via Uncontrolled Recursion in cbor2.loads
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Summary
Details
PoC
Impact
CreditThis issue was discovered by Kevin Tu of TMIR at ByteDance. The patch was developed by @agronholm. Affected versions
1.0.0
1.1.0
2.0.0
3.0.0
3.0.1
3.0.2
3.0.3
3.0.4
4.0.0
4.0.1
4.1.0
4.1.1
+ 28 more Show less
4.1.2
5.0.0
5.0.1
5.1.0
5.1.1
5.1.2
5.2.0
5.2.0.post1
5.3.0
5.4.0
5.4.1
5.4.2
5.4.2.post1
5.4.3
5.4.4
5.4.5
5.4.6
5.5.0
5.5.1
5.6.0
5.6.1
5.6.2
5.6.3
5.6.4
5.6.5
5.7.0
5.7.1
5.8.0
Fixed in
5.9.0
References
Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-68131
GHSA-wcj4-jw5j-44wh
PYSEC-2025-90
Dec 31, 2025
CBORDecoder reuse can leak shareable values across decode calls
Medium
Network
Low
None
None
SummaryWhen a CBORDecoder instance is reused across multiple decode operations, values marked with the shareable tag (28) persist in memory and can be accessed by subsequent CBOR messages using the sharedref tag (29). This allows an attacker-controlled message to read data from previously decoded messages if the decoder is reused across trust boundaries. DetailsThe issue is in the decoder's handling of the shareables list, which stores values tagged with CBOR tag 28 (shareable) for later reference by tag 29 (sharedref). When decode_from_bytes() is called or when .fp is set to a new stream, the shareables list is not cleared. This allows references to persist across separate decode operations. The issue exists in both the C extension and the pure Python decoder. In the C extension (source/decoder.c), the _CBORDecoder_set_fp function (line ~202) updates the file pointer but does not reset the shareables state:
In the pure Python decoder (cbor2/_decoder.py), the fp setter similarly fails to clear self._shareables. Similarly, decode_from_bytes() in both implementations saves and restores the read pointer but does not clear the shareables list between decodes. The shareable/sharedref tags are defined in the CBOR value sharing extension (http://cbor.schmorp.de/value-sharing) with scope limited to a single CBOR data item, not across separate messages. PoC
No special configuration required. Affects any application that reuses a CBORDecoder instance to decode messages from different sources. ImpactInformation disclosure. Applications that reuse a CBORDecoder across trust boundaries are vulnerable if the trusted messages use value sharing (tag 28) and an attacker can send messages containing shared references (tag 29). An attacker who can send a crafted CBOR message containing a sharedref tag can read values from previously decoded messages, potentially exposing sensitive data such as credentials, tokens, or private user data. RelatedA similar issue in the encoder could produce invalid CBOR with dangling shared references:
While primarily a correctness bug, it could cause denial of service if invalid CBOR is transmitted to downstream systems that fail to parse it, or cause silent data corruption if the dangling reference happens to resolve to an unrelated value. It can also be considered a memory leak in both the decoder and encoder as references are held that will never be released as long as the decoder/encoder remains alive. Suggested resolutionAdd dedicated boolean flags to track when an encode/decode operation is in progress. Reset shared state only when the flag is False (top-level call). This ensures state is reset for standalone calls while preserving shared references for nested calls from hooks (which need access to the registry for cyclic structures). Decoder (_decoding flag):
Encoder (_encoding flag):
Affected versions
3.0.0
3.0.1
3.0.2
3.0.3
3.0.4
4.0.0
4.0.1
4.1.0
4.1.1
4.1.2
5.0.0
5.0.1
+ 24 more Show less
5.1.0
5.1.1
5.1.2
5.2.0
5.2.0.post1
5.3.0
5.4.0
5.4.1
5.4.2
5.4.2.post1
5.4.3
5.4.4
5.4.5
5.4.6
5.5.0
5.5.1
5.6.0
5.6.1
5.6.2
5.6.3
5.6.4
5.6.5
5.7.0
5.7.1
Fixed in
5.8.0
References
Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-64076
GHSA-9q9c-vjxh-p795
PYSEC-2025-238
Nov 18, 2025
cbor2 C extension decoder flaws can cause denial of service
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Multiple vulnerabilities exist in cbor2 through version 5.7.0 in the decode_definite_long_string() function of the C extension decoder (source/decoder.c):
Both vulnerabilities can be exploited remotely without authentication by sending specially-crafted CBOR data containing definite-length text strings with multi-byte UTF-8 characters positioned at 65536-byte chunk boundaries. Successful exploitation results in denial of service through process crashes (CBORDecodeEOF exceptions) or memory exhaustion. The vulnerabilities affect all applications using cbor2's C extension to process untrusted CBOR data, including web APIs, IoT data collectors, and message queue processors. Fixed in commit 851473490281f82d82560b2368284ef33cf6e8f9 pushed with released version 5.7.1. Affected versions
1.0.0
1.1.0
2.0.0
3.0.0
3.0.1
3.0.2
3.0.3
3.0.4
4.0.0
4.0.1
4.1.0
4.1.1
+ 26 more Show less
4.1.2
5.0.0
5.0.1
5.1.0
5.1.1
5.1.2
5.2.0
5.2.0.post1
5.3.0
5.4.0
5.4.1
5.4.2
5.4.2.post1
5.4.3
5.4.4
5.4.5
5.4.6
5.5.0
5.5.1
5.6.0
5.6.1
5.6.2
5.6.3
5.6.4
5.6.5
5.7.0
Fixed in
5.7.1
References
Updated Sep 01, 2026 · Source: OSV.dev |
5.2.0
minor
|
|
5.1.2
patch
3 CVEs
CVE-2026-26209
GHSA-3c37-wwvx-h642
PYSEC-2026-2123
Mar 23, 2026
cbor2 has a Denial of Service via Uncontrolled Recursion in cbor2.loads
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Summary
Details
PoC
Impact
CreditThis issue was discovered by Kevin Tu of TMIR at ByteDance. The patch was developed by @agronholm. Affected versions
1.0.0
1.1.0
2.0.0
3.0.0
3.0.1
3.0.2
3.0.3
3.0.4
4.0.0
4.0.1
4.1.0
4.1.1
+ 28 more Show less
4.1.2
5.0.0
5.0.1
5.1.0
5.1.1
5.1.2
5.2.0
5.2.0.post1
5.3.0
5.4.0
5.4.1
5.4.2
5.4.2.post1
5.4.3
5.4.4
5.4.5
5.4.6
5.5.0
5.5.1
5.6.0
5.6.1
5.6.2
5.6.3
5.6.4
5.6.5
5.7.0
5.7.1
5.8.0
Fixed in
5.9.0
References
Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-68131
GHSA-wcj4-jw5j-44wh
PYSEC-2025-90
Dec 31, 2025
CBORDecoder reuse can leak shareable values across decode calls
Medium
Network
Low
None
None
SummaryWhen a CBORDecoder instance is reused across multiple decode operations, values marked with the shareable tag (28) persist in memory and can be accessed by subsequent CBOR messages using the sharedref tag (29). This allows an attacker-controlled message to read data from previously decoded messages if the decoder is reused across trust boundaries. DetailsThe issue is in the decoder's handling of the shareables list, which stores values tagged with CBOR tag 28 (shareable) for later reference by tag 29 (sharedref). When decode_from_bytes() is called or when .fp is set to a new stream, the shareables list is not cleared. This allows references to persist across separate decode operations. The issue exists in both the C extension and the pure Python decoder. In the C extension (source/decoder.c), the _CBORDecoder_set_fp function (line ~202) updates the file pointer but does not reset the shareables state:
In the pure Python decoder (cbor2/_decoder.py), the fp setter similarly fails to clear self._shareables. Similarly, decode_from_bytes() in both implementations saves and restores the read pointer but does not clear the shareables list between decodes. The shareable/sharedref tags are defined in the CBOR value sharing extension (http://cbor.schmorp.de/value-sharing) with scope limited to a single CBOR data item, not across separate messages. PoC
No special configuration required. Affects any application that reuses a CBORDecoder instance to decode messages from different sources. ImpactInformation disclosure. Applications that reuse a CBORDecoder across trust boundaries are vulnerable if the trusted messages use value sharing (tag 28) and an attacker can send messages containing shared references (tag 29). An attacker who can send a crafted CBOR message containing a sharedref tag can read values from previously decoded messages, potentially exposing sensitive data such as credentials, tokens, or private user data. RelatedA similar issue in the encoder could produce invalid CBOR with dangling shared references:
While primarily a correctness bug, it could cause denial of service if invalid CBOR is transmitted to downstream systems that fail to parse it, or cause silent data corruption if the dangling reference happens to resolve to an unrelated value. It can also be considered a memory leak in both the decoder and encoder as references are held that will never be released as long as the decoder/encoder remains alive. Suggested resolutionAdd dedicated boolean flags to track when an encode/decode operation is in progress. Reset shared state only when the flag is False (top-level call). This ensures state is reset for standalone calls while preserving shared references for nested calls from hooks (which need access to the registry for cyclic structures). Decoder (_decoding flag):
Encoder (_encoding flag):
Affected versions
3.0.0
3.0.1
3.0.2
3.0.3
3.0.4
4.0.0
4.0.1
4.1.0
4.1.1
4.1.2
5.0.0
5.0.1
+ 24 more Show less
5.1.0
5.1.1
5.1.2
5.2.0
5.2.0.post1
5.3.0
5.4.0
5.4.1
5.4.2
5.4.2.post1
5.4.3
5.4.4
5.4.5
5.4.6
5.5.0
5.5.1
5.6.0
5.6.1
5.6.2
5.6.3
5.6.4
5.6.5
5.7.0
5.7.1
Fixed in
5.8.0
References
Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-64076
GHSA-9q9c-vjxh-p795
PYSEC-2025-238
Nov 18, 2025
cbor2 C extension decoder flaws can cause denial of service
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Multiple vulnerabilities exist in cbor2 through version 5.7.0 in the decode_definite_long_string() function of the C extension decoder (source/decoder.c):
Both vulnerabilities can be exploited remotely without authentication by sending specially-crafted CBOR data containing definite-length text strings with multi-byte UTF-8 characters positioned at 65536-byte chunk boundaries. Successful exploitation results in denial of service through process crashes (CBORDecodeEOF exceptions) or memory exhaustion. The vulnerabilities affect all applications using cbor2's C extension to process untrusted CBOR data, including web APIs, IoT data collectors, and message queue processors. Fixed in commit 851473490281f82d82560b2368284ef33cf6e8f9 pushed with released version 5.7.1. Affected versions
1.0.0
1.1.0
2.0.0
3.0.0
3.0.1
3.0.2
3.0.3
3.0.4
4.0.0
4.0.1
4.1.0
4.1.1
+ 26 more Show less
4.1.2
5.0.0
5.0.1
5.1.0
5.1.1
5.1.2
5.2.0
5.2.0.post1
5.3.0
5.4.0
5.4.1
5.4.2
5.4.2.post1
5.4.3
5.4.4
5.4.5
5.4.6
5.5.0
5.5.1
5.6.0
5.6.1
5.6.2
5.6.3
5.6.4
5.6.5
5.7.0
Fixed in
5.7.1
References
Updated Sep 01, 2026 · Source: OSV.dev |
5.1.2
patch
|
|
5.1.1
patch
3 CVEs
CVE-2026-26209
GHSA-3c37-wwvx-h642
PYSEC-2026-2123
Mar 23, 2026
cbor2 has a Denial of Service via Uncontrolled Recursion in cbor2.loads
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Summary
Details
PoC
Impact
CreditThis issue was discovered by Kevin Tu of TMIR at ByteDance. The patch was developed by @agronholm. Affected versions
1.0.0
1.1.0
2.0.0
3.0.0
3.0.1
3.0.2
3.0.3
3.0.4
4.0.0
4.0.1
4.1.0
4.1.1
+ 28 more Show less
4.1.2
5.0.0
5.0.1
5.1.0
5.1.1
5.1.2
5.2.0
5.2.0.post1
5.3.0
5.4.0
5.4.1
5.4.2
5.4.2.post1
5.4.3
5.4.4
5.4.5
5.4.6
5.5.0
5.5.1
5.6.0
5.6.1
5.6.2
5.6.3
5.6.4
5.6.5
5.7.0
5.7.1
5.8.0
Fixed in
5.9.0
References
Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-68131
GHSA-wcj4-jw5j-44wh
PYSEC-2025-90
Dec 31, 2025
CBORDecoder reuse can leak shareable values across decode calls
Medium
Network
Low
None
None
SummaryWhen a CBORDecoder instance is reused across multiple decode operations, values marked with the shareable tag (28) persist in memory and can be accessed by subsequent CBOR messages using the sharedref tag (29). This allows an attacker-controlled message to read data from previously decoded messages if the decoder is reused across trust boundaries. DetailsThe issue is in the decoder's handling of the shareables list, which stores values tagged with CBOR tag 28 (shareable) for later reference by tag 29 (sharedref). When decode_from_bytes() is called or when .fp is set to a new stream, the shareables list is not cleared. This allows references to persist across separate decode operations. The issue exists in both the C extension and the pure Python decoder. In the C extension (source/decoder.c), the _CBORDecoder_set_fp function (line ~202) updates the file pointer but does not reset the shareables state:
In the pure Python decoder (cbor2/_decoder.py), the fp setter similarly fails to clear self._shareables. Similarly, decode_from_bytes() in both implementations saves and restores the read pointer but does not clear the shareables list between decodes. The shareable/sharedref tags are defined in the CBOR value sharing extension (http://cbor.schmorp.de/value-sharing) with scope limited to a single CBOR data item, not across separate messages. PoC
No special configuration required. Affects any application that reuses a CBORDecoder instance to decode messages from different sources. ImpactInformation disclosure. Applications that reuse a CBORDecoder across trust boundaries are vulnerable if the trusted messages use value sharing (tag 28) and an attacker can send messages containing shared references (tag 29). An attacker who can send a crafted CBOR message containing a sharedref tag can read values from previously decoded messages, potentially exposing sensitive data such as credentials, tokens, or private user data. RelatedA similar issue in the encoder could produce invalid CBOR with dangling shared references:
While primarily a correctness bug, it could cause denial of service if invalid CBOR is transmitted to downstream systems that fail to parse it, or cause silent data corruption if the dangling reference happens to resolve to an unrelated value. It can also be considered a memory leak in both the decoder and encoder as references are held that will never be released as long as the decoder/encoder remains alive. Suggested resolutionAdd dedicated boolean flags to track when an encode/decode operation is in progress. Reset shared state only when the flag is False (top-level call). This ensures state is reset for standalone calls while preserving shared references for nested calls from hooks (which need access to the registry for cyclic structures). Decoder (_decoding flag):
Encoder (_encoding flag):
Affected versions
3.0.0
3.0.1
3.0.2
3.0.3
3.0.4
4.0.0
4.0.1
4.1.0
4.1.1
4.1.2
5.0.0
5.0.1
+ 24 more Show less
5.1.0
5.1.1
5.1.2
5.2.0
5.2.0.post1
5.3.0
5.4.0
5.4.1
5.4.2
5.4.2.post1
5.4.3
5.4.4
5.4.5
5.4.6
5.5.0
5.5.1
5.6.0
5.6.1
5.6.2
5.6.3
5.6.4
5.6.5
5.7.0
5.7.1
Fixed in
5.8.0
References
Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-64076
GHSA-9q9c-vjxh-p795
PYSEC-2025-238
Nov 18, 2025
cbor2 C extension decoder flaws can cause denial of service
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Multiple vulnerabilities exist in cbor2 through version 5.7.0 in the decode_definite_long_string() function of the C extension decoder (source/decoder.c):
Both vulnerabilities can be exploited remotely without authentication by sending specially-crafted CBOR data containing definite-length text strings with multi-byte UTF-8 characters positioned at 65536-byte chunk boundaries. Successful exploitation results in denial of service through process crashes (CBORDecodeEOF exceptions) or memory exhaustion. The vulnerabilities affect all applications using cbor2's C extension to process untrusted CBOR data, including web APIs, IoT data collectors, and message queue processors. Fixed in commit 851473490281f82d82560b2368284ef33cf6e8f9 pushed with released version 5.7.1. Affected versions
1.0.0
1.1.0
2.0.0
3.0.0
3.0.1
3.0.2
3.0.3
3.0.4
4.0.0
4.0.1
4.1.0
4.1.1
+ 26 more Show less
4.1.2
5.0.0
5.0.1
5.1.0
5.1.1
5.1.2
5.2.0
5.2.0.post1
5.3.0
5.4.0
5.4.1
5.4.2
5.4.2.post1
5.4.3
5.4.4
5.4.5
5.4.6
5.5.0
5.5.1
5.6.0
5.6.1
5.6.2
5.6.3
5.6.4
5.6.5
5.7.0
Fixed in
5.7.1
References
Updated Sep 01, 2026 · Source: OSV.dev |
5.1.1
patch
|
|
5.1.0
minor
3 CVEs
CVE-2026-26209
GHSA-3c37-wwvx-h642
PYSEC-2026-2123
Mar 23, 2026
cbor2 has a Denial of Service via Uncontrolled Recursion in cbor2.loads
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Summary
Details
PoC
Impact
CreditThis issue was discovered by Kevin Tu of TMIR at ByteDance. The patch was developed by @agronholm. Affected versions
1.0.0
1.1.0
2.0.0
3.0.0
3.0.1
3.0.2
3.0.3
3.0.4
4.0.0
4.0.1
4.1.0
4.1.1
+ 28 more Show less
4.1.2
5.0.0
5.0.1
5.1.0
5.1.1
5.1.2
5.2.0
5.2.0.post1
5.3.0
5.4.0
5.4.1
5.4.2
5.4.2.post1
5.4.3
5.4.4
5.4.5
5.4.6
5.5.0
5.5.1
5.6.0
5.6.1
5.6.2
5.6.3
5.6.4
5.6.5
5.7.0
5.7.1
5.8.0
Fixed in
5.9.0
References
Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-68131
GHSA-wcj4-jw5j-44wh
PYSEC-2025-90
Dec 31, 2025
CBORDecoder reuse can leak shareable values across decode calls
Medium
Network
Low
None
None
SummaryWhen a CBORDecoder instance is reused across multiple decode operations, values marked with the shareable tag (28) persist in memory and can be accessed by subsequent CBOR messages using the sharedref tag (29). This allows an attacker-controlled message to read data from previously decoded messages if the decoder is reused across trust boundaries. DetailsThe issue is in the decoder's handling of the shareables list, which stores values tagged with CBOR tag 28 (shareable) for later reference by tag 29 (sharedref). When decode_from_bytes() is called or when .fp is set to a new stream, the shareables list is not cleared. This allows references to persist across separate decode operations. The issue exists in both the C extension and the pure Python decoder. In the C extension (source/decoder.c), the _CBORDecoder_set_fp function (line ~202) updates the file pointer but does not reset the shareables state:
In the pure Python decoder (cbor2/_decoder.py), the fp setter similarly fails to clear self._shareables. Similarly, decode_from_bytes() in both implementations saves and restores the read pointer but does not clear the shareables list between decodes. The shareable/sharedref tags are defined in the CBOR value sharing extension (http://cbor.schmorp.de/value-sharing) with scope limited to a single CBOR data item, not across separate messages. PoC
No special configuration required. Affects any application that reuses a CBORDecoder instance to decode messages from different sources. ImpactInformation disclosure. Applications that reuse a CBORDecoder across trust boundaries are vulnerable if the trusted messages use value sharing (tag 28) and an attacker can send messages containing shared references (tag 29). An attacker who can send a crafted CBOR message containing a sharedref tag can read values from previously decoded messages, potentially exposing sensitive data such as credentials, tokens, or private user data. RelatedA similar issue in the encoder could produce invalid CBOR with dangling shared references:
While primarily a correctness bug, it could cause denial of service if invalid CBOR is transmitted to downstream systems that fail to parse it, or cause silent data corruption if the dangling reference happens to resolve to an unrelated value. It can also be considered a memory leak in both the decoder and encoder as references are held that will never be released as long as the decoder/encoder remains alive. Suggested resolutionAdd dedicated boolean flags to track when an encode/decode operation is in progress. Reset shared state only when the flag is False (top-level call). This ensures state is reset for standalone calls while preserving shared references for nested calls from hooks (which need access to the registry for cyclic structures). Decoder (_decoding flag):
Encoder (_encoding flag):
Affected versions
3.0.0
3.0.1
3.0.2
3.0.3
3.0.4
4.0.0
4.0.1
4.1.0
4.1.1
4.1.2
5.0.0
5.0.1
+ 24 more Show less
5.1.0
5.1.1
5.1.2
5.2.0
5.2.0.post1
5.3.0
5.4.0
5.4.1
5.4.2
5.4.2.post1
5.4.3
5.4.4
5.4.5
5.4.6
5.5.0
5.5.1
5.6.0
5.6.1
5.6.2
5.6.3
5.6.4
5.6.5
5.7.0
5.7.1
Fixed in
5.8.0
References
Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-64076
GHSA-9q9c-vjxh-p795
PYSEC-2025-238
Nov 18, 2025
cbor2 C extension decoder flaws can cause denial of service
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Multiple vulnerabilities exist in cbor2 through version 5.7.0 in the decode_definite_long_string() function of the C extension decoder (source/decoder.c):
Both vulnerabilities can be exploited remotely without authentication by sending specially-crafted CBOR data containing definite-length text strings with multi-byte UTF-8 characters positioned at 65536-byte chunk boundaries. Successful exploitation results in denial of service through process crashes (CBORDecodeEOF exceptions) or memory exhaustion. The vulnerabilities affect all applications using cbor2's C extension to process untrusted CBOR data, including web APIs, IoT data collectors, and message queue processors. Fixed in commit 851473490281f82d82560b2368284ef33cf6e8f9 pushed with released version 5.7.1. Affected versions
1.0.0
1.1.0
2.0.0
3.0.0
3.0.1
3.0.2
3.0.3
3.0.4
4.0.0
4.0.1
4.1.0
4.1.1
+ 26 more Show less
4.1.2
5.0.0
5.0.1
5.1.0
5.1.1
5.1.2
5.2.0
5.2.0.post1
5.3.0
5.4.0
5.4.1
5.4.2
5.4.2.post1
5.4.3
5.4.4
5.4.5
5.4.6
5.5.0
5.5.1
5.6.0
5.6.1
5.6.2
5.6.3
5.6.4
5.6.5
5.7.0
Fixed in
5.7.1
References
Updated Sep 01, 2026 · Source: OSV.dev |
5.1.0
minor
|
|
5.0.1
patch
3 CVEs
CVE-2026-26209
GHSA-3c37-wwvx-h642
PYSEC-2026-2123
Mar 23, 2026
cbor2 has a Denial of Service via Uncontrolled Recursion in cbor2.loads
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Summary
Details
PoC
Impact
CreditThis issue was discovered by Kevin Tu of TMIR at ByteDance. The patch was developed by @agronholm. Affected versions
1.0.0
1.1.0
2.0.0
3.0.0
3.0.1
3.0.2
3.0.3
3.0.4
4.0.0
4.0.1
4.1.0
4.1.1
+ 28 more Show less
4.1.2
5.0.0
5.0.1
5.1.0
5.1.1
5.1.2
5.2.0
5.2.0.post1
5.3.0
5.4.0
5.4.1
5.4.2
5.4.2.post1
5.4.3
5.4.4
5.4.5
5.4.6
5.5.0
5.5.1
5.6.0
5.6.1
5.6.2
5.6.3
5.6.4
5.6.5
5.7.0
5.7.1
5.8.0
Fixed in
5.9.0
References
Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-68131
GHSA-wcj4-jw5j-44wh
PYSEC-2025-90
Dec 31, 2025
CBORDecoder reuse can leak shareable values across decode calls
Medium
Network
Low
None
None
SummaryWhen a CBORDecoder instance is reused across multiple decode operations, values marked with the shareable tag (28) persist in memory and can be accessed by subsequent CBOR messages using the sharedref tag (29). This allows an attacker-controlled message to read data from previously decoded messages if the decoder is reused across trust boundaries. DetailsThe issue is in the decoder's handling of the shareables list, which stores values tagged with CBOR tag 28 (shareable) for later reference by tag 29 (sharedref). When decode_from_bytes() is called or when .fp is set to a new stream, the shareables list is not cleared. This allows references to persist across separate decode operations. The issue exists in both the C extension and the pure Python decoder. In the C extension (source/decoder.c), the _CBORDecoder_set_fp function (line ~202) updates the file pointer but does not reset the shareables state:
In the pure Python decoder (cbor2/_decoder.py), the fp setter similarly fails to clear self._shareables. Similarly, decode_from_bytes() in both implementations saves and restores the read pointer but does not clear the shareables list between decodes. The shareable/sharedref tags are defined in the CBOR value sharing extension (http://cbor.schmorp.de/value-sharing) with scope limited to a single CBOR data item, not across separate messages. PoC
No special configuration required. Affects any application that reuses a CBORDecoder instance to decode messages from different sources. ImpactInformation disclosure. Applications that reuse a CBORDecoder across trust boundaries are vulnerable if the trusted messages use value sharing (tag 28) and an attacker can send messages containing shared references (tag 29). An attacker who can send a crafted CBOR message containing a sharedref tag can read values from previously decoded messages, potentially exposing sensitive data such as credentials, tokens, or private user data. RelatedA similar issue in the encoder could produce invalid CBOR with dangling shared references:
While primarily a correctness bug, it could cause denial of service if invalid CBOR is transmitted to downstream systems that fail to parse it, or cause silent data corruption if the dangling reference happens to resolve to an unrelated value. It can also be considered a memory leak in both the decoder and encoder as references are held that will never be released as long as the decoder/encoder remains alive. Suggested resolutionAdd dedicated boolean flags to track when an encode/decode operation is in progress. Reset shared state only when the flag is False (top-level call). This ensures state is reset for standalone calls while preserving shared references for nested calls from hooks (which need access to the registry for cyclic structures). Decoder (_decoding flag):
Encoder (_encoding flag):
Affected versions
3.0.0
3.0.1
3.0.2
3.0.3
3.0.4
4.0.0
4.0.1
4.1.0
4.1.1
4.1.2
5.0.0
5.0.1
+ 24 more Show less
5.1.0
5.1.1
5.1.2
5.2.0
5.2.0.post1
5.3.0
5.4.0
5.4.1
5.4.2
5.4.2.post1
5.4.3
5.4.4
5.4.5
5.4.6
5.5.0
5.5.1
5.6.0
5.6.1
5.6.2
5.6.3
5.6.4
5.6.5
5.7.0
5.7.1
Fixed in
5.8.0
References
Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-64076
GHSA-9q9c-vjxh-p795
PYSEC-2025-238
Nov 18, 2025
cbor2 C extension decoder flaws can cause denial of service
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Multiple vulnerabilities exist in cbor2 through version 5.7.0 in the decode_definite_long_string() function of the C extension decoder (source/decoder.c):
Both vulnerabilities can be exploited remotely without authentication by sending specially-crafted CBOR data containing definite-length text strings with multi-byte UTF-8 characters positioned at 65536-byte chunk boundaries. Successful exploitation results in denial of service through process crashes (CBORDecodeEOF exceptions) or memory exhaustion. The vulnerabilities affect all applications using cbor2's C extension to process untrusted CBOR data, including web APIs, IoT data collectors, and message queue processors. Fixed in commit 851473490281f82d82560b2368284ef33cf6e8f9 pushed with released version 5.7.1. Affected versions
1.0.0
1.1.0
2.0.0
3.0.0
3.0.1
3.0.2
3.0.3
3.0.4
4.0.0
4.0.1
4.1.0
4.1.1
+ 26 more Show less
4.1.2
5.0.0
5.0.1
5.1.0
5.1.1
5.1.2
5.2.0
5.2.0.post1
5.3.0
5.4.0
5.4.1
5.4.2
5.4.2.post1
5.4.3
5.4.4
5.4.5
5.4.6
5.5.0
5.5.1
5.6.0
5.6.1
5.6.2
5.6.3
5.6.4
5.6.5
5.7.0
Fixed in
5.7.1
References
Updated Sep 01, 2026 · Source: OSV.dev |
5.0.1
patch
|
|
5.0.0
major
3 CVEs
CVE-2026-26209
GHSA-3c37-wwvx-h642
PYSEC-2026-2123
Mar 23, 2026
cbor2 has a Denial of Service via Uncontrolled Recursion in cbor2.loads
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Summary
Details
PoC
Impact
CreditThis issue was discovered by Kevin Tu of TMIR at ByteDance. The patch was developed by @agronholm. Affected versions
1.0.0
1.1.0
2.0.0
3.0.0
3.0.1
3.0.2
3.0.3
3.0.4
4.0.0
4.0.1
4.1.0
4.1.1
+ 28 more Show less
4.1.2
5.0.0
5.0.1
5.1.0
5.1.1
5.1.2
5.2.0
5.2.0.post1
5.3.0
5.4.0
5.4.1
5.4.2
5.4.2.post1
5.4.3
5.4.4
5.4.5
5.4.6
5.5.0
5.5.1
5.6.0
5.6.1
5.6.2
5.6.3
5.6.4
5.6.5
5.7.0
5.7.1
5.8.0
Fixed in
5.9.0
References
Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-68131
GHSA-wcj4-jw5j-44wh
PYSEC-2025-90
Dec 31, 2025
CBORDecoder reuse can leak shareable values across decode calls
Medium
Network
Low
None
None
SummaryWhen a CBORDecoder instance is reused across multiple decode operations, values marked with the shareable tag (28) persist in memory and can be accessed by subsequent CBOR messages using the sharedref tag (29). This allows an attacker-controlled message to read data from previously decoded messages if the decoder is reused across trust boundaries. DetailsThe issue is in the decoder's handling of the shareables list, which stores values tagged with CBOR tag 28 (shareable) for later reference by tag 29 (sharedref). When decode_from_bytes() is called or when .fp is set to a new stream, the shareables list is not cleared. This allows references to persist across separate decode operations. The issue exists in both the C extension and the pure Python decoder. In the C extension (source/decoder.c), the _CBORDecoder_set_fp function (line ~202) updates the file pointer but does not reset the shareables state:
In the pure Python decoder (cbor2/_decoder.py), the fp setter similarly fails to clear self._shareables. Similarly, decode_from_bytes() in both implementations saves and restores the read pointer but does not clear the shareables list between decodes. The shareable/sharedref tags are defined in the CBOR value sharing extension (http://cbor.schmorp.de/value-sharing) with scope limited to a single CBOR data item, not across separate messages. PoC
No special configuration required. Affects any application that reuses a CBORDecoder instance to decode messages from different sources. ImpactInformation disclosure. Applications that reuse a CBORDecoder across trust boundaries are vulnerable if the trusted messages use value sharing (tag 28) and an attacker can send messages containing shared references (tag 29). An attacker who can send a crafted CBOR message containing a sharedref tag can read values from previously decoded messages, potentially exposing sensitive data such as credentials, tokens, or private user data. RelatedA similar issue in the encoder could produce invalid CBOR with dangling shared references:
While primarily a correctness bug, it could cause denial of service if invalid CBOR is transmitted to downstream systems that fail to parse it, or cause silent data corruption if the dangling reference happens to resolve to an unrelated value. It can also be considered a memory leak in both the decoder and encoder as references are held that will never be released as long as the decoder/encoder remains alive. Suggested resolutionAdd dedicated boolean flags to track when an encode/decode operation is in progress. Reset shared state only when the flag is False (top-level call). This ensures state is reset for standalone calls while preserving shared references for nested calls from hooks (which need access to the registry for cyclic structures). Decoder (_decoding flag):
Encoder (_encoding flag):
Affected versions
3.0.0
3.0.1
3.0.2
3.0.3
3.0.4
4.0.0
4.0.1
4.1.0
4.1.1
4.1.2
5.0.0
5.0.1
+ 24 more Show less
5.1.0
5.1.1
5.1.2
5.2.0
5.2.0.post1
5.3.0
5.4.0
5.4.1
5.4.2
5.4.2.post1
5.4.3
5.4.4
5.4.5
5.4.6
5.5.0
5.5.1
5.6.0
5.6.1
5.6.2
5.6.3
5.6.4
5.6.5
5.7.0
5.7.1
Fixed in
5.8.0
References
Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-64076
GHSA-9q9c-vjxh-p795
PYSEC-2025-238
Nov 18, 2025
cbor2 C extension decoder flaws can cause denial of service
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Multiple vulnerabilities exist in cbor2 through version 5.7.0 in the decode_definite_long_string() function of the C extension decoder (source/decoder.c):
Both vulnerabilities can be exploited remotely without authentication by sending specially-crafted CBOR data containing definite-length text strings with multi-byte UTF-8 characters positioned at 65536-byte chunk boundaries. Successful exploitation results in denial of service through process crashes (CBORDecodeEOF exceptions) or memory exhaustion. The vulnerabilities affect all applications using cbor2's C extension to process untrusted CBOR data, including web APIs, IoT data collectors, and message queue processors. Fixed in commit 851473490281f82d82560b2368284ef33cf6e8f9 pushed with released version 5.7.1. Affected versions
1.0.0
1.1.0
2.0.0
3.0.0
3.0.1
3.0.2
3.0.3
3.0.4
4.0.0
4.0.1
4.1.0
4.1.1
+ 26 more Show less
4.1.2
5.0.0
5.0.1
5.1.0
5.1.1
5.1.2
5.2.0
5.2.0.post1
5.3.0
5.4.0
5.4.1
5.4.2
5.4.2.post1
5.4.3
5.4.4
5.4.5
5.4.6
5.5.0
5.5.1
5.6.0
5.6.1
5.6.2
5.6.3
5.6.4
5.6.5
5.7.0
Fixed in
5.7.1
References
Updated Sep 01, 2026 · Source: OSV.dev |
5.0.0
major
|
|
4.1.2
patch
3 CVEs
CVE-2026-26209
GHSA-3c37-wwvx-h642
PYSEC-2026-2123
Mar 23, 2026
cbor2 has a Denial of Service via Uncontrolled Recursion in cbor2.loads
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Summary
Details
PoC
Impact
CreditThis issue was discovered by Kevin Tu of TMIR at ByteDance. The patch was developed by @agronholm. Affected versions
1.0.0
1.1.0
2.0.0
3.0.0
3.0.1
3.0.2
3.0.3
3.0.4
4.0.0
4.0.1
4.1.0
4.1.1
+ 28 more Show less
4.1.2
5.0.0
5.0.1
5.1.0
5.1.1
5.1.2
5.2.0
5.2.0.post1
5.3.0
5.4.0
5.4.1
5.4.2
5.4.2.post1
5.4.3
5.4.4
5.4.5
5.4.6
5.5.0
5.5.1
5.6.0
5.6.1
5.6.2
5.6.3
5.6.4
5.6.5
5.7.0
5.7.1
5.8.0
Fixed in
5.9.0
References
Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-68131
GHSA-wcj4-jw5j-44wh
PYSEC-2025-90
Dec 31, 2025
CBORDecoder reuse can leak shareable values across decode calls
Medium
Network
Low
None
None
SummaryWhen a CBORDecoder instance is reused across multiple decode operations, values marked with the shareable tag (28) persist in memory and can be accessed by subsequent CBOR messages using the sharedref tag (29). This allows an attacker-controlled message to read data from previously decoded messages if the decoder is reused across trust boundaries. DetailsThe issue is in the decoder's handling of the shareables list, which stores values tagged with CBOR tag 28 (shareable) for later reference by tag 29 (sharedref). When decode_from_bytes() is called or when .fp is set to a new stream, the shareables list is not cleared. This allows references to persist across separate decode operations. The issue exists in both the C extension and the pure Python decoder. In the C extension (source/decoder.c), the _CBORDecoder_set_fp function (line ~202) updates the file pointer but does not reset the shareables state:
In the pure Python decoder (cbor2/_decoder.py), the fp setter similarly fails to clear self._shareables. Similarly, decode_from_bytes() in both implementations saves and restores the read pointer but does not clear the shareables list between decodes. The shareable/sharedref tags are defined in the CBOR value sharing extension (http://cbor.schmorp.de/value-sharing) with scope limited to a single CBOR data item, not across separate messages. PoC
No special configuration required. Affects any application that reuses a CBORDecoder instance to decode messages from different sources. ImpactInformation disclosure. Applications that reuse a CBORDecoder across trust boundaries are vulnerable if the trusted messages use value sharing (tag 28) and an attacker can send messages containing shared references (tag 29). An attacker who can send a crafted CBOR message containing a sharedref tag can read values from previously decoded messages, potentially exposing sensitive data such as credentials, tokens, or private user data. RelatedA similar issue in the encoder could produce invalid CBOR with dangling shared references:
While primarily a correctness bug, it could cause denial of service if invalid CBOR is transmitted to downstream systems that fail to parse it, or cause silent data corruption if the dangling reference happens to resolve to an unrelated value. It can also be considered a memory leak in both the decoder and encoder as references are held that will never be released as long as the decoder/encoder remains alive. Suggested resolutionAdd dedicated boolean flags to track when an encode/decode operation is in progress. Reset shared state only when the flag is False (top-level call). This ensures state is reset for standalone calls while preserving shared references for nested calls from hooks (which need access to the registry for cyclic structures). Decoder (_decoding flag):
Encoder (_encoding flag):
Affected versions
3.0.0
3.0.1
3.0.2
3.0.3
3.0.4
4.0.0
4.0.1
4.1.0
4.1.1
4.1.2
5.0.0
5.0.1
+ 24 more Show less
5.1.0
5.1.1
5.1.2
5.2.0
5.2.0.post1
5.3.0
5.4.0
5.4.1
5.4.2
5.4.2.post1
5.4.3
5.4.4
5.4.5
5.4.6
5.5.0
5.5.1
5.6.0
5.6.1
5.6.2
5.6.3
5.6.4
5.6.5
5.7.0
5.7.1
Fixed in
5.8.0
References
Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-64076
GHSA-9q9c-vjxh-p795
PYSEC-2025-238
Nov 18, 2025
cbor2 C extension decoder flaws can cause denial of service
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Multiple vulnerabilities exist in cbor2 through version 5.7.0 in the decode_definite_long_string() function of the C extension decoder (source/decoder.c):
Both vulnerabilities can be exploited remotely without authentication by sending specially-crafted CBOR data containing definite-length text strings with multi-byte UTF-8 characters positioned at 65536-byte chunk boundaries. Successful exploitation results in denial of service through process crashes (CBORDecodeEOF exceptions) or memory exhaustion. The vulnerabilities affect all applications using cbor2's C extension to process untrusted CBOR data, including web APIs, IoT data collectors, and message queue processors. Fixed in commit 851473490281f82d82560b2368284ef33cf6e8f9 pushed with released version 5.7.1. Affected versions
1.0.0
1.1.0
2.0.0
3.0.0
3.0.1
3.0.2
3.0.3
3.0.4
4.0.0
4.0.1
4.1.0
4.1.1
+ 26 more Show less
4.1.2
5.0.0
5.0.1
5.1.0
5.1.1
5.1.2
5.2.0
5.2.0.post1
5.3.0
5.4.0
5.4.1
5.4.2
5.4.2.post1
5.4.3
5.4.4
5.4.5
5.4.6
5.5.0
5.5.1
5.6.0
5.6.1
5.6.2
5.6.3
5.6.4
5.6.5
5.7.0
Fixed in
5.7.1
References
Updated Sep 01, 2026 · Source: OSV.dev |
4.1.2
patch
Dependencies (2)
|
|
4.1.1
patch
3 CVEs
CVE-2026-26209
GHSA-3c37-wwvx-h642
PYSEC-2026-2123
Mar 23, 2026
cbor2 has a Denial of Service via Uncontrolled Recursion in cbor2.loads
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Summary
Details
PoC
Impact
CreditThis issue was discovered by Kevin Tu of TMIR at ByteDance. The patch was developed by @agronholm. Affected versions
1.0.0
1.1.0
2.0.0
3.0.0
3.0.1
3.0.2
3.0.3
3.0.4
4.0.0
4.0.1
4.1.0
4.1.1
+ 28 more Show less
4.1.2
5.0.0
5.0.1
5.1.0
5.1.1
5.1.2
5.2.0
5.2.0.post1
5.3.0
5.4.0
5.4.1
5.4.2
5.4.2.post1
5.4.3
5.4.4
5.4.5
5.4.6
5.5.0
5.5.1
5.6.0
5.6.1
5.6.2
5.6.3
5.6.4
5.6.5
5.7.0
5.7.1
5.8.0
Fixed in
5.9.0
References
Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-68131
GHSA-wcj4-jw5j-44wh
PYSEC-2025-90
Dec 31, 2025
CBORDecoder reuse can leak shareable values across decode calls
Medium
Network
Low
None
None
SummaryWhen a CBORDecoder instance is reused across multiple decode operations, values marked with the shareable tag (28) persist in memory and can be accessed by subsequent CBOR messages using the sharedref tag (29). This allows an attacker-controlled message to read data from previously decoded messages if the decoder is reused across trust boundaries. DetailsThe issue is in the decoder's handling of the shareables list, which stores values tagged with CBOR tag 28 (shareable) for later reference by tag 29 (sharedref). When decode_from_bytes() is called or when .fp is set to a new stream, the shareables list is not cleared. This allows references to persist across separate decode operations. The issue exists in both the C extension and the pure Python decoder. In the C extension (source/decoder.c), the _CBORDecoder_set_fp function (line ~202) updates the file pointer but does not reset the shareables state:
In the pure Python decoder (cbor2/_decoder.py), the fp setter similarly fails to clear self._shareables. Similarly, decode_from_bytes() in both implementations saves and restores the read pointer but does not clear the shareables list between decodes. The shareable/sharedref tags are defined in the CBOR value sharing extension (http://cbor.schmorp.de/value-sharing) with scope limited to a single CBOR data item, not across separate messages. PoC
No special configuration required. Affects any application that reuses a CBORDecoder instance to decode messages from different sources. ImpactInformation disclosure. Applications that reuse a CBORDecoder across trust boundaries are vulnerable if the trusted messages use value sharing (tag 28) and an attacker can send messages containing shared references (tag 29). An attacker who can send a crafted CBOR message containing a sharedref tag can read values from previously decoded messages, potentially exposing sensitive data such as credentials, tokens, or private user data. RelatedA similar issue in the encoder could produce invalid CBOR with dangling shared references:
While primarily a correctness bug, it could cause denial of service if invalid CBOR is transmitted to downstream systems that fail to parse it, or cause silent data corruption if the dangling reference happens to resolve to an unrelated value. It can also be considered a memory leak in both the decoder and encoder as references are held that will never be released as long as the decoder/encoder remains alive. Suggested resolutionAdd dedicated boolean flags to track when an encode/decode operation is in progress. Reset shared state only when the flag is False (top-level call). This ensures state is reset for standalone calls while preserving shared references for nested calls from hooks (which need access to the registry for cyclic structures). Decoder (_decoding flag):
Encoder (_encoding flag):
Affected versions
3.0.0
3.0.1
3.0.2
3.0.3
3.0.4
4.0.0
4.0.1
4.1.0
4.1.1
4.1.2
5.0.0
5.0.1
+ 24 more Show less
5.1.0
5.1.1
5.1.2
5.2.0
5.2.0.post1
5.3.0
5.4.0
5.4.1
5.4.2
5.4.2.post1
5.4.3
5.4.4
5.4.5
5.4.6
5.5.0
5.5.1
5.6.0
5.6.1
5.6.2
5.6.3
5.6.4
5.6.5
5.7.0
5.7.1
Fixed in
5.8.0
References
Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-64076
GHSA-9q9c-vjxh-p795
PYSEC-2025-238
Nov 18, 2025
cbor2 C extension decoder flaws can cause denial of service
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Multiple vulnerabilities exist in cbor2 through version 5.7.0 in the decode_definite_long_string() function of the C extension decoder (source/decoder.c):
Both vulnerabilities can be exploited remotely without authentication by sending specially-crafted CBOR data containing definite-length text strings with multi-byte UTF-8 characters positioned at 65536-byte chunk boundaries. Successful exploitation results in denial of service through process crashes (CBORDecodeEOF exceptions) or memory exhaustion. The vulnerabilities affect all applications using cbor2's C extension to process untrusted CBOR data, including web APIs, IoT data collectors, and message queue processors. Fixed in commit 851473490281f82d82560b2368284ef33cf6e8f9 pushed with released version 5.7.1. Affected versions
1.0.0
1.1.0
2.0.0
3.0.0
3.0.1
3.0.2
3.0.3
3.0.4
4.0.0
4.0.1
4.1.0
4.1.1
+ 26 more Show less
4.1.2
5.0.0
5.0.1
5.1.0
5.1.1
5.1.2
5.2.0
5.2.0.post1
5.3.0
5.4.0
5.4.1
5.4.2
5.4.2.post1
5.4.3
5.4.4
5.4.5
5.4.6
5.5.0
5.5.1
5.6.0
5.6.1
5.6.2
5.6.3
5.6.4
5.6.5
5.7.0
Fixed in
5.7.1
References
Updated Sep 01, 2026 · Source: OSV.dev |
4.1.1
patch
Dependencies (2)
|
|
4.1.0
minor
3 CVEs
CVE-2026-26209
GHSA-3c37-wwvx-h642
PYSEC-2026-2123
Mar 23, 2026
cbor2 has a Denial of Service via Uncontrolled Recursion in cbor2.loads
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Summary
Details
PoC
Impact
CreditThis issue was discovered by Kevin Tu of TMIR at ByteDance. The patch was developed by @agronholm. Affected versions
1.0.0
1.1.0
2.0.0
3.0.0
3.0.1
3.0.2
3.0.3
3.0.4
4.0.0
4.0.1
4.1.0
4.1.1
+ 28 more Show less
4.1.2
5.0.0
5.0.1
5.1.0
5.1.1
5.1.2
5.2.0
5.2.0.post1
5.3.0
5.4.0
5.4.1
5.4.2
5.4.2.post1
5.4.3
5.4.4
5.4.5
5.4.6
5.5.0
5.5.1
5.6.0
5.6.1
5.6.2
5.6.3
5.6.4
5.6.5
5.7.0
5.7.1
5.8.0
Fixed in
5.9.0
References
Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-68131
GHSA-wcj4-jw5j-44wh
PYSEC-2025-90
Dec 31, 2025
CBORDecoder reuse can leak shareable values across decode calls
Medium
Network
Low
None
None
SummaryWhen a CBORDecoder instance is reused across multiple decode operations, values marked with the shareable tag (28) persist in memory and can be accessed by subsequent CBOR messages using the sharedref tag (29). This allows an attacker-controlled message to read data from previously decoded messages if the decoder is reused across trust boundaries. DetailsThe issue is in the decoder's handling of the shareables list, which stores values tagged with CBOR tag 28 (shareable) for later reference by tag 29 (sharedref). When decode_from_bytes() is called or when .fp is set to a new stream, the shareables list is not cleared. This allows references to persist across separate decode operations. The issue exists in both the C extension and the pure Python decoder. In the C extension (source/decoder.c), the _CBORDecoder_set_fp function (line ~202) updates the file pointer but does not reset the shareables state:
In the pure Python decoder (cbor2/_decoder.py), the fp setter similarly fails to clear self._shareables. Similarly, decode_from_bytes() in both implementations saves and restores the read pointer but does not clear the shareables list between decodes. The shareable/sharedref tags are defined in the CBOR value sharing extension (http://cbor.schmorp.de/value-sharing) with scope limited to a single CBOR data item, not across separate messages. PoC
No special configuration required. Affects any application that reuses a CBORDecoder instance to decode messages from different sources. ImpactInformation disclosure. Applications that reuse a CBORDecoder across trust boundaries are vulnerable if the trusted messages use value sharing (tag 28) and an attacker can send messages containing shared references (tag 29). An attacker who can send a crafted CBOR message containing a sharedref tag can read values from previously decoded messages, potentially exposing sensitive data such as credentials, tokens, or private user data. RelatedA similar issue in the encoder could produce invalid CBOR with dangling shared references:
While primarily a correctness bug, it could cause denial of service if invalid CBOR is transmitted to downstream systems that fail to parse it, or cause silent data corruption if the dangling reference happens to resolve to an unrelated value. It can also be considered a memory leak in both the decoder and encoder as references are held that will never be released as long as the decoder/encoder remains alive. Suggested resolutionAdd dedicated boolean flags to track when an encode/decode operation is in progress. Reset shared state only when the flag is False (top-level call). This ensures state is reset for standalone calls while preserving shared references for nested calls from hooks (which need access to the registry for cyclic structures). Decoder (_decoding flag):
Encoder (_encoding flag):
Affected versions
3.0.0
3.0.1
3.0.2
3.0.3
3.0.4
4.0.0
4.0.1
4.1.0
4.1.1
4.1.2
5.0.0
5.0.1
+ 24 more Show less
5.1.0
5.1.1
5.1.2
5.2.0
5.2.0.post1
5.3.0
5.4.0
5.4.1
5.4.2
5.4.2.post1
5.4.3
5.4.4
5.4.5
5.4.6
5.5.0
5.5.1
5.6.0
5.6.1
5.6.2
5.6.3
5.6.4
5.6.5
5.7.0
5.7.1
Fixed in
5.8.0
References
Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-64076
GHSA-9q9c-vjxh-p795
PYSEC-2025-238
Nov 18, 2025
cbor2 C extension decoder flaws can cause denial of service
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Multiple vulnerabilities exist in cbor2 through version 5.7.0 in the decode_definite_long_string() function of the C extension decoder (source/decoder.c):
Both vulnerabilities can be exploited remotely without authentication by sending specially-crafted CBOR data containing definite-length text strings with multi-byte UTF-8 characters positioned at 65536-byte chunk boundaries. Successful exploitation results in denial of service through process crashes (CBORDecodeEOF exceptions) or memory exhaustion. The vulnerabilities affect all applications using cbor2's C extension to process untrusted CBOR data, including web APIs, IoT data collectors, and message queue processors. Fixed in commit 851473490281f82d82560b2368284ef33cf6e8f9 pushed with released version 5.7.1. Affected versions
1.0.0
1.1.0
2.0.0
3.0.0
3.0.1
3.0.2
3.0.3
3.0.4
4.0.0
4.0.1
4.1.0
4.1.1
+ 26 more Show less
4.1.2
5.0.0
5.0.1
5.1.0
5.1.1
5.1.2
5.2.0
5.2.0.post1
5.3.0
5.4.0
5.4.1
5.4.2
5.4.2.post1
5.4.3
5.4.4
5.4.5
5.4.6
5.5.0
5.5.1
5.6.0
5.6.1
5.6.2
5.6.3
5.6.4
5.6.5
5.7.0
Fixed in
5.7.1
References
Updated Sep 01, 2026 · Source: OSV.dev |
4.1.0
minor
Dependencies (2)
|
|
4.0.1
patch
3 CVEs
CVE-2026-26209
GHSA-3c37-wwvx-h642
PYSEC-2026-2123
Mar 23, 2026
cbor2 has a Denial of Service via Uncontrolled Recursion in cbor2.loads
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Summary
Details
PoC
Impact
CreditThis issue was discovered by Kevin Tu of TMIR at ByteDance. The patch was developed by @agronholm. Affected versions
1.0.0
1.1.0
2.0.0
3.0.0
3.0.1
3.0.2
3.0.3
3.0.4
4.0.0
4.0.1
4.1.0
4.1.1
+ 28 more Show less
4.1.2
5.0.0
5.0.1
5.1.0
5.1.1
5.1.2
5.2.0
5.2.0.post1
5.3.0
5.4.0
5.4.1
5.4.2
5.4.2.post1
5.4.3
5.4.4
5.4.5
5.4.6
5.5.0
5.5.1
5.6.0
5.6.1
5.6.2
5.6.3
5.6.4
5.6.5
5.7.0
5.7.1
5.8.0
Fixed in
5.9.0
References
Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-68131
GHSA-wcj4-jw5j-44wh
PYSEC-2025-90
Dec 31, 2025
CBORDecoder reuse can leak shareable values across decode calls
Medium
Network
Low
None
None
SummaryWhen a CBORDecoder instance is reused across multiple decode operations, values marked with the shareable tag (28) persist in memory and can be accessed by subsequent CBOR messages using the sharedref tag (29). This allows an attacker-controlled message to read data from previously decoded messages if the decoder is reused across trust boundaries. DetailsThe issue is in the decoder's handling of the shareables list, which stores values tagged with CBOR tag 28 (shareable) for later reference by tag 29 (sharedref). When decode_from_bytes() is called or when .fp is set to a new stream, the shareables list is not cleared. This allows references to persist across separate decode operations. The issue exists in both the C extension and the pure Python decoder. In the C extension (source/decoder.c), the _CBORDecoder_set_fp function (line ~202) updates the file pointer but does not reset the shareables state:
In the pure Python decoder (cbor2/_decoder.py), the fp setter similarly fails to clear self._shareables. Similarly, decode_from_bytes() in both implementations saves and restores the read pointer but does not clear the shareables list between decodes. The shareable/sharedref tags are defined in the CBOR value sharing extension (http://cbor.schmorp.de/value-sharing) with scope limited to a single CBOR data item, not across separate messages. PoC
No special configuration required. Affects any application that reuses a CBORDecoder instance to decode messages from different sources. ImpactInformation disclosure. Applications that reuse a CBORDecoder across trust boundaries are vulnerable if the trusted messages use value sharing (tag 28) and an attacker can send messages containing shared references (tag 29). An attacker who can send a crafted CBOR message containing a sharedref tag can read values from previously decoded messages, potentially exposing sensitive data such as credentials, tokens, or private user data. RelatedA similar issue in the encoder could produce invalid CBOR with dangling shared references:
While primarily a correctness bug, it could cause denial of service if invalid CBOR is transmitted to downstream systems that fail to parse it, or cause silent data corruption if the dangling reference happens to resolve to an unrelated value. It can also be considered a memory leak in both the decoder and encoder as references are held that will never be released as long as the decoder/encoder remains alive. Suggested resolutionAdd dedicated boolean flags to track when an encode/decode operation is in progress. Reset shared state only when the flag is False (top-level call). This ensures state is reset for standalone calls while preserving shared references for nested calls from hooks (which need access to the registry for cyclic structures). Decoder (_decoding flag):
Encoder (_encoding flag):
Affected versions
3.0.0
3.0.1
3.0.2
3.0.3
3.0.4
4.0.0
4.0.1
4.1.0
4.1.1
4.1.2
5.0.0
5.0.1
+ 24 more Show less
5.1.0
5.1.1
5.1.2
5.2.0
5.2.0.post1
5.3.0
5.4.0
5.4.1
5.4.2
5.4.2.post1
5.4.3
5.4.4
5.4.5
5.4.6
5.5.0
5.5.1
5.6.0
5.6.1
5.6.2
5.6.3
5.6.4
5.6.5
5.7.0
5.7.1
Fixed in
5.8.0
References
Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-64076
GHSA-9q9c-vjxh-p795
PYSEC-2025-238
Nov 18, 2025
cbor2 C extension decoder flaws can cause denial of service
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Multiple vulnerabilities exist in cbor2 through version 5.7.0 in the decode_definite_long_string() function of the C extension decoder (source/decoder.c):
Both vulnerabilities can be exploited remotely without authentication by sending specially-crafted CBOR data containing definite-length text strings with multi-byte UTF-8 characters positioned at 65536-byte chunk boundaries. Successful exploitation results in denial of service through process crashes (CBORDecodeEOF exceptions) or memory exhaustion. The vulnerabilities affect all applications using cbor2's C extension to process untrusted CBOR data, including web APIs, IoT data collectors, and message queue processors. Fixed in commit 851473490281f82d82560b2368284ef33cf6e8f9 pushed with released version 5.7.1. Affected versions
1.0.0
1.1.0
2.0.0
3.0.0
3.0.1
3.0.2
3.0.3
3.0.4
4.0.0
4.0.1
4.1.0
4.1.1
+ 26 more Show less
4.1.2
5.0.0
5.0.1
5.1.0
5.1.1
5.1.2
5.2.0
5.2.0.post1
5.3.0
5.4.0
5.4.1
5.4.2
5.4.2.post1
5.4.3
5.4.4
5.4.5
5.4.6
5.5.0
5.5.1
5.6.0
5.6.1
5.6.2
5.6.3
5.6.4
5.6.5
5.7.0
Fixed in
5.7.1
References
Updated Sep 01, 2026 · Source: OSV.dev |
4.0.1
patch
Dependencies (2)
|
|
4.0.0
major
3 CVEs
CVE-2026-26209
GHSA-3c37-wwvx-h642
PYSEC-2026-2123
Mar 23, 2026
cbor2 has a Denial of Service via Uncontrolled Recursion in cbor2.loads
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Summary
Details
PoC
Impact
CreditThis issue was discovered by Kevin Tu of TMIR at ByteDance. The patch was developed by @agronholm. Affected versions
1.0.0
1.1.0
2.0.0
3.0.0
3.0.1
3.0.2
3.0.3
3.0.4
4.0.0
4.0.1
4.1.0
4.1.1
+ 28 more Show less
4.1.2
5.0.0
5.0.1
5.1.0
5.1.1
5.1.2
5.2.0
5.2.0.post1
5.3.0
5.4.0
5.4.1
5.4.2
5.4.2.post1
5.4.3
5.4.4
5.4.5
5.4.6
5.5.0
5.5.1
5.6.0
5.6.1
5.6.2
5.6.3
5.6.4
5.6.5
5.7.0
5.7.1
5.8.0
Fixed in
5.9.0
References
Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-68131
GHSA-wcj4-jw5j-44wh
PYSEC-2025-90
Dec 31, 2025
CBORDecoder reuse can leak shareable values across decode calls
Medium
Network
Low
None
None
SummaryWhen a CBORDecoder instance is reused across multiple decode operations, values marked with the shareable tag (28) persist in memory and can be accessed by subsequent CBOR messages using the sharedref tag (29). This allows an attacker-controlled message to read data from previously decoded messages if the decoder is reused across trust boundaries. DetailsThe issue is in the decoder's handling of the shareables list, which stores values tagged with CBOR tag 28 (shareable) for later reference by tag 29 (sharedref). When decode_from_bytes() is called or when .fp is set to a new stream, the shareables list is not cleared. This allows references to persist across separate decode operations. The issue exists in both the C extension and the pure Python decoder. In the C extension (source/decoder.c), the _CBORDecoder_set_fp function (line ~202) updates the file pointer but does not reset the shareables state:
In the pure Python decoder (cbor2/_decoder.py), the fp setter similarly fails to clear self._shareables. Similarly, decode_from_bytes() in both implementations saves and restores the read pointer but does not clear the shareables list between decodes. The shareable/sharedref tags are defined in the CBOR value sharing extension (http://cbor.schmorp.de/value-sharing) with scope limited to a single CBOR data item, not across separate messages. PoC
No special configuration required. Affects any application that reuses a CBORDecoder instance to decode messages from different sources. ImpactInformation disclosure. Applications that reuse a CBORDecoder across trust boundaries are vulnerable if the trusted messages use value sharing (tag 28) and an attacker can send messages containing shared references (tag 29). An attacker who can send a crafted CBOR message containing a sharedref tag can read values from previously decoded messages, potentially exposing sensitive data such as credentials, tokens, or private user data. RelatedA similar issue in the encoder could produce invalid CBOR with dangling shared references:
While primarily a correctness bug, it could cause denial of service if invalid CBOR is transmitted to downstream systems that fail to parse it, or cause silent data corruption if the dangling reference happens to resolve to an unrelated value. It can also be considered a memory leak in both the decoder and encoder as references are held that will never be released as long as the decoder/encoder remains alive. Suggested resolutionAdd dedicated boolean flags to track when an encode/decode operation is in progress. Reset shared state only when the flag is False (top-level call). This ensures state is reset for standalone calls while preserving shared references for nested calls from hooks (which need access to the registry for cyclic structures). Decoder (_decoding flag):
Encoder (_encoding flag):
Affected versions
3.0.0
3.0.1
3.0.2
3.0.3
3.0.4
4.0.0
4.0.1
4.1.0
4.1.1
4.1.2
5.0.0
5.0.1
+ 24 more Show less
5.1.0
5.1.1
5.1.2
5.2.0
5.2.0.post1
5.3.0
5.4.0
5.4.1
5.4.2
5.4.2.post1
5.4.3
5.4.4
5.4.5
5.4.6
5.5.0
5.5.1
5.6.0
5.6.1
5.6.2
5.6.3
5.6.4
5.6.5
5.7.0
5.7.1
Fixed in
5.8.0
References
Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-64076
GHSA-9q9c-vjxh-p795
PYSEC-2025-238
Nov 18, 2025
cbor2 C extension decoder flaws can cause denial of service
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Multiple vulnerabilities exist in cbor2 through version 5.7.0 in the decode_definite_long_string() function of the C extension decoder (source/decoder.c):
Both vulnerabilities can be exploited remotely without authentication by sending specially-crafted CBOR data containing definite-length text strings with multi-byte UTF-8 characters positioned at 65536-byte chunk boundaries. Successful exploitation results in denial of service through process crashes (CBORDecodeEOF exceptions) or memory exhaustion. The vulnerabilities affect all applications using cbor2's C extension to process untrusted CBOR data, including web APIs, IoT data collectors, and message queue processors. Fixed in commit 851473490281f82d82560b2368284ef33cf6e8f9 pushed with released version 5.7.1. Affected versions
1.0.0
1.1.0
2.0.0
3.0.0
3.0.1
3.0.2
3.0.3
3.0.4
4.0.0
4.0.1
4.1.0
4.1.1
+ 26 more Show less
4.1.2
5.0.0
5.0.1
5.1.0
5.1.1
5.1.2
5.2.0
5.2.0.post1
5.3.0
5.4.0
5.4.1
5.4.2
5.4.2.post1
5.4.3
5.4.4
5.4.5
5.4.6
5.5.0
5.5.1
5.6.0
5.6.1
5.6.2
5.6.3
5.6.4
5.6.5
5.7.0
Fixed in
5.7.1
References
Updated Sep 01, 2026 · Source: OSV.dev |
4.0.0
major
Dependencies (2)
|
|
3.0.4
patch
3 CVEs
CVE-2026-26209
GHSA-3c37-wwvx-h642
PYSEC-2026-2123
Mar 23, 2026
cbor2 has a Denial of Service via Uncontrolled Recursion in cbor2.loads
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Summary
Details
PoC
Impact
CreditThis issue was discovered by Kevin Tu of TMIR at ByteDance. The patch was developed by @agronholm. Affected versions
1.0.0
1.1.0
2.0.0
3.0.0
3.0.1
3.0.2
3.0.3
3.0.4
4.0.0
4.0.1
4.1.0
4.1.1
+ 28 more Show less
4.1.2
5.0.0
5.0.1
5.1.0
5.1.1
5.1.2
5.2.0
5.2.0.post1
5.3.0
5.4.0
5.4.1
5.4.2
5.4.2.post1
5.4.3
5.4.4
5.4.5
5.4.6
5.5.0
5.5.1
5.6.0
5.6.1
5.6.2
5.6.3
5.6.4
5.6.5
5.7.0
5.7.1
5.8.0
Fixed in
5.9.0
References
Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-68131
GHSA-wcj4-jw5j-44wh
PYSEC-2025-90
Dec 31, 2025
CBORDecoder reuse can leak shareable values across decode calls
Medium
Network
Low
None
None
SummaryWhen a CBORDecoder instance is reused across multiple decode operations, values marked with the shareable tag (28) persist in memory and can be accessed by subsequent CBOR messages using the sharedref tag (29). This allows an attacker-controlled message to read data from previously decoded messages if the decoder is reused across trust boundaries. DetailsThe issue is in the decoder's handling of the shareables list, which stores values tagged with CBOR tag 28 (shareable) for later reference by tag 29 (sharedref). When decode_from_bytes() is called or when .fp is set to a new stream, the shareables list is not cleared. This allows references to persist across separate decode operations. The issue exists in both the C extension and the pure Python decoder. In the C extension (source/decoder.c), the _CBORDecoder_set_fp function (line ~202) updates the file pointer but does not reset the shareables state:
In the pure Python decoder (cbor2/_decoder.py), the fp setter similarly fails to clear self._shareables. Similarly, decode_from_bytes() in both implementations saves and restores the read pointer but does not clear the shareables list between decodes. The shareable/sharedref tags are defined in the CBOR value sharing extension (http://cbor.schmorp.de/value-sharing) with scope limited to a single CBOR data item, not across separate messages. PoC
No special configuration required. Affects any application that reuses a CBORDecoder instance to decode messages from different sources. ImpactInformation disclosure. Applications that reuse a CBORDecoder across trust boundaries are vulnerable if the trusted messages use value sharing (tag 28) and an attacker can send messages containing shared references (tag 29). An attacker who can send a crafted CBOR message containing a sharedref tag can read values from previously decoded messages, potentially exposing sensitive data such as credentials, tokens, or private user data. RelatedA similar issue in the encoder could produce invalid CBOR with dangling shared references:
While primarily a correctness bug, it could cause denial of service if invalid CBOR is transmitted to downstream systems that fail to parse it, or cause silent data corruption if the dangling reference happens to resolve to an unrelated value. It can also be considered a memory leak in both the decoder and encoder as references are held that will never be released as long as the decoder/encoder remains alive. Suggested resolutionAdd dedicated boolean flags to track when an encode/decode operation is in progress. Reset shared state only when the flag is False (top-level call). This ensures state is reset for standalone calls while preserving shared references for nested calls from hooks (which need access to the registry for cyclic structures). Decoder (_decoding flag):
Encoder (_encoding flag):
Affected versions
3.0.0
3.0.1
3.0.2
3.0.3
3.0.4
4.0.0
4.0.1
4.1.0
4.1.1
4.1.2
5.0.0
5.0.1
+ 24 more Show less
5.1.0
5.1.1
5.1.2
5.2.0
5.2.0.post1
5.3.0
5.4.0
5.4.1
5.4.2
5.4.2.post1
5.4.3
5.4.4
5.4.5
5.4.6
5.5.0
5.5.1
5.6.0
5.6.1
5.6.2
5.6.3
5.6.4
5.6.5
5.7.0
5.7.1
Fixed in
5.8.0
References
Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-64076
GHSA-9q9c-vjxh-p795
PYSEC-2025-238
Nov 18, 2025
cbor2 C extension decoder flaws can cause denial of service
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Multiple vulnerabilities exist in cbor2 through version 5.7.0 in the decode_definite_long_string() function of the C extension decoder (source/decoder.c):
Both vulnerabilities can be exploited remotely without authentication by sending specially-crafted CBOR data containing definite-length text strings with multi-byte UTF-8 characters positioned at 65536-byte chunk boundaries. Successful exploitation results in denial of service through process crashes (CBORDecodeEOF exceptions) or memory exhaustion. The vulnerabilities affect all applications using cbor2's C extension to process untrusted CBOR data, including web APIs, IoT data collectors, and message queue processors. Fixed in commit 851473490281f82d82560b2368284ef33cf6e8f9 pushed with released version 5.7.1. Affected versions
1.0.0
1.1.0
2.0.0
3.0.0
3.0.1
3.0.2
3.0.3
3.0.4
4.0.0
4.0.1
4.1.0
4.1.1
+ 26 more Show less
4.1.2
5.0.0
5.0.1
5.1.0
5.1.1
5.1.2
5.2.0
5.2.0.post1
5.3.0
5.4.0
5.4.1
5.4.2
5.4.2.post1
5.4.3
5.4.4
5.4.5
5.4.6
5.5.0
5.5.1
5.6.0
5.6.1
5.6.2
5.6.3
5.6.4
5.6.5
5.7.0
Fixed in
5.7.1
References
Updated Sep 01, 2026 · Source: OSV.dev |
3.0.4
patch
|
|
3.0.3
patch
3 CVEs
CVE-2026-26209
GHSA-3c37-wwvx-h642
PYSEC-2026-2123
Mar 23, 2026
cbor2 has a Denial of Service via Uncontrolled Recursion in cbor2.loads
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Summary
Details
PoC
Impact
CreditThis issue was discovered by Kevin Tu of TMIR at ByteDance. The patch was developed by @agronholm. Affected versions
1.0.0
1.1.0
2.0.0
3.0.0
3.0.1
3.0.2
3.0.3
3.0.4
4.0.0
4.0.1
4.1.0
4.1.1
+ 28 more Show less
4.1.2
5.0.0
5.0.1
5.1.0
5.1.1
5.1.2
5.2.0
5.2.0.post1
5.3.0
5.4.0
5.4.1
5.4.2
5.4.2.post1
5.4.3
5.4.4
5.4.5
5.4.6
5.5.0
5.5.1
5.6.0
5.6.1
5.6.2
5.6.3
5.6.4
5.6.5
5.7.0
5.7.1
5.8.0
Fixed in
5.9.0
References
Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-68131
GHSA-wcj4-jw5j-44wh
PYSEC-2025-90
Dec 31, 2025
CBORDecoder reuse can leak shareable values across decode calls
Medium
Network
Low
None
None
SummaryWhen a CBORDecoder instance is reused across multiple decode operations, values marked with the shareable tag (28) persist in memory and can be accessed by subsequent CBOR messages using the sharedref tag (29). This allows an attacker-controlled message to read data from previously decoded messages if the decoder is reused across trust boundaries. DetailsThe issue is in the decoder's handling of the shareables list, which stores values tagged with CBOR tag 28 (shareable) for later reference by tag 29 (sharedref). When decode_from_bytes() is called or when .fp is set to a new stream, the shareables list is not cleared. This allows references to persist across separate decode operations. The issue exists in both the C extension and the pure Python decoder. In the C extension (source/decoder.c), the _CBORDecoder_set_fp function (line ~202) updates the file pointer but does not reset the shareables state:
In the pure Python decoder (cbor2/_decoder.py), the fp setter similarly fails to clear self._shareables. Similarly, decode_from_bytes() in both implementations saves and restores the read pointer but does not clear the shareables list between decodes. The shareable/sharedref tags are defined in the CBOR value sharing extension (http://cbor.schmorp.de/value-sharing) with scope limited to a single CBOR data item, not across separate messages. PoC
No special configuration required. Affects any application that reuses a CBORDecoder instance to decode messages from different sources. ImpactInformation disclosure. Applications that reuse a CBORDecoder across trust boundaries are vulnerable if the trusted messages use value sharing (tag 28) and an attacker can send messages containing shared references (tag 29). An attacker who can send a crafted CBOR message containing a sharedref tag can read values from previously decoded messages, potentially exposing sensitive data such as credentials, tokens, or private user data. RelatedA similar issue in the encoder could produce invalid CBOR with dangling shared references:
While primarily a correctness bug, it could cause denial of service if invalid CBOR is transmitted to downstream systems that fail to parse it, or cause silent data corruption if the dangling reference happens to resolve to an unrelated value. It can also be considered a memory leak in both the decoder and encoder as references are held that will never be released as long as the decoder/encoder remains alive. Suggested resolutionAdd dedicated boolean flags to track when an encode/decode operation is in progress. Reset shared state only when the flag is False (top-level call). This ensures state is reset for standalone calls while preserving shared references for nested calls from hooks (which need access to the registry for cyclic structures). Decoder (_decoding flag):
Encoder (_encoding flag):
Affected versions
3.0.0
3.0.1
3.0.2
3.0.3
3.0.4
4.0.0
4.0.1
4.1.0
4.1.1
4.1.2
5.0.0
5.0.1
+ 24 more Show less
5.1.0
5.1.1
5.1.2
5.2.0
5.2.0.post1
5.3.0
5.4.0
5.4.1
5.4.2
5.4.2.post1
5.4.3
5.4.4
5.4.5
5.4.6
5.5.0
5.5.1
5.6.0
5.6.1
5.6.2
5.6.3
5.6.4
5.6.5
5.7.0
5.7.1
Fixed in
5.8.0
References
Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-64076
GHSA-9q9c-vjxh-p795
PYSEC-2025-238
Nov 18, 2025
cbor2 C extension decoder flaws can cause denial of service
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Multiple vulnerabilities exist in cbor2 through version 5.7.0 in the decode_definite_long_string() function of the C extension decoder (source/decoder.c):
Both vulnerabilities can be exploited remotely without authentication by sending specially-crafted CBOR data containing definite-length text strings with multi-byte UTF-8 characters positioned at 65536-byte chunk boundaries. Successful exploitation results in denial of service through process crashes (CBORDecodeEOF exceptions) or memory exhaustion. The vulnerabilities affect all applications using cbor2's C extension to process untrusted CBOR data, including web APIs, IoT data collectors, and message queue processors. Fixed in commit 851473490281f82d82560b2368284ef33cf6e8f9 pushed with released version 5.7.1. Affected versions
1.0.0
1.1.0
2.0.0
3.0.0
3.0.1
3.0.2
3.0.3
3.0.4
4.0.0
4.0.1
4.1.0
4.1.1
+ 26 more Show less
4.1.2
5.0.0
5.0.1
5.1.0
5.1.1
5.1.2
5.2.0
5.2.0.post1
5.3.0
5.4.0
5.4.1
5.4.2
5.4.2.post1
5.4.3
5.4.4
5.4.5
5.4.6
5.5.0
5.5.1
5.6.0
5.6.1
5.6.2
5.6.3
5.6.4
5.6.5
5.7.0
Fixed in
5.7.1
References
Updated Sep 01, 2026 · Source: OSV.dev |
3.0.3
patch
|
|
3.0.2
patch
3 CVEs
CVE-2026-26209
GHSA-3c37-wwvx-h642
PYSEC-2026-2123
Mar 23, 2026
cbor2 has a Denial of Service via Uncontrolled Recursion in cbor2.loads
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Summary
Details
PoC
Impact
CreditThis issue was discovered by Kevin Tu of TMIR at ByteDance. The patch was developed by @agronholm. Affected versions
1.0.0
1.1.0
2.0.0
3.0.0
3.0.1
3.0.2
3.0.3
3.0.4
4.0.0
4.0.1
4.1.0
4.1.1
+ 28 more Show less
4.1.2
5.0.0
5.0.1
5.1.0
5.1.1
5.1.2
5.2.0
5.2.0.post1
5.3.0
5.4.0
5.4.1
5.4.2
5.4.2.post1
5.4.3
5.4.4
5.4.5
5.4.6
5.5.0
5.5.1
5.6.0
5.6.1
5.6.2
5.6.3
5.6.4
5.6.5
5.7.0
5.7.1
5.8.0
Fixed in
5.9.0
References
Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-68131
GHSA-wcj4-jw5j-44wh
PYSEC-2025-90
Dec 31, 2025
CBORDecoder reuse can leak shareable values across decode calls
Medium
Network
Low
None
None
SummaryWhen a CBORDecoder instance is reused across multiple decode operations, values marked with the shareable tag (28) persist in memory and can be accessed by subsequent CBOR messages using the sharedref tag (29). This allows an attacker-controlled message to read data from previously decoded messages if the decoder is reused across trust boundaries. DetailsThe issue is in the decoder's handling of the shareables list, which stores values tagged with CBOR tag 28 (shareable) for later reference by tag 29 (sharedref). When decode_from_bytes() is called or when .fp is set to a new stream, the shareables list is not cleared. This allows references to persist across separate decode operations. The issue exists in both the C extension and the pure Python decoder. In the C extension (source/decoder.c), the _CBORDecoder_set_fp function (line ~202) updates the file pointer but does not reset the shareables state:
In the pure Python decoder (cbor2/_decoder.py), the fp setter similarly fails to clear self._shareables. Similarly, decode_from_bytes() in both implementations saves and restores the read pointer but does not clear the shareables list between decodes. The shareable/sharedref tags are defined in the CBOR value sharing extension (http://cbor.schmorp.de/value-sharing) with scope limited to a single CBOR data item, not across separate messages. PoC
No special configuration required. Affects any application that reuses a CBORDecoder instance to decode messages from different sources. ImpactInformation disclosure. Applications that reuse a CBORDecoder across trust boundaries are vulnerable if the trusted messages use value sharing (tag 28) and an attacker can send messages containing shared references (tag 29). An attacker who can send a crafted CBOR message containing a sharedref tag can read values from previously decoded messages, potentially exposing sensitive data such as credentials, tokens, or private user data. RelatedA similar issue in the encoder could produce invalid CBOR with dangling shared references:
While primarily a correctness bug, it could cause denial of service if invalid CBOR is transmitted to downstream systems that fail to parse it, or cause silent data corruption if the dangling reference happens to resolve to an unrelated value. It can also be considered a memory leak in both the decoder and encoder as references are held that will never be released as long as the decoder/encoder remains alive. Suggested resolutionAdd dedicated boolean flags to track when an encode/decode operation is in progress. Reset shared state only when the flag is False (top-level call). This ensures state is reset for standalone calls while preserving shared references for nested calls from hooks (which need access to the registry for cyclic structures). Decoder (_decoding flag):
Encoder (_encoding flag):
Affected versions
3.0.0
3.0.1
3.0.2
3.0.3
3.0.4
4.0.0
4.0.1
4.1.0
4.1.1
4.1.2
5.0.0
5.0.1
+ 24 more Show less
5.1.0
5.1.1
5.1.2
5.2.0
5.2.0.post1
5.3.0
5.4.0
5.4.1
5.4.2
5.4.2.post1
5.4.3
5.4.4
5.4.5
5.4.6
5.5.0
5.5.1
5.6.0
5.6.1
5.6.2
5.6.3
5.6.4
5.6.5
5.7.0
5.7.1
Fixed in
5.8.0
References
Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-64076
GHSA-9q9c-vjxh-p795
PYSEC-2025-238
Nov 18, 2025
cbor2 C extension decoder flaws can cause denial of service
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Multiple vulnerabilities exist in cbor2 through version 5.7.0 in the decode_definite_long_string() function of the C extension decoder (source/decoder.c):
Both vulnerabilities can be exploited remotely without authentication by sending specially-crafted CBOR data containing definite-length text strings with multi-byte UTF-8 characters positioned at 65536-byte chunk boundaries. Successful exploitation results in denial of service through process crashes (CBORDecodeEOF exceptions) or memory exhaustion. The vulnerabilities affect all applications using cbor2's C extension to process untrusted CBOR data, including web APIs, IoT data collectors, and message queue processors. Fixed in commit 851473490281f82d82560b2368284ef33cf6e8f9 pushed with released version 5.7.1. Affected versions
1.0.0
1.1.0
2.0.0
3.0.0
3.0.1
3.0.2
3.0.3
3.0.4
4.0.0
4.0.1
4.1.0
4.1.1
+ 26 more Show less
4.1.2
5.0.0
5.0.1
5.1.0
5.1.1
5.1.2
5.2.0
5.2.0.post1
5.3.0
5.4.0
5.4.1
5.4.2
5.4.2.post1
5.4.3
5.4.4
5.4.5
5.4.6
5.5.0
5.5.1
5.6.0
5.6.1
5.6.2
5.6.3
5.6.4
5.6.5
5.7.0
Fixed in
5.7.1
References
Updated Sep 01, 2026 · Source: OSV.dev |
3.0.2
patch
|
|
3.0.1
patch
3 CVEs
CVE-2026-26209
GHSA-3c37-wwvx-h642
PYSEC-2026-2123
Mar 23, 2026
cbor2 has a Denial of Service via Uncontrolled Recursion in cbor2.loads
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Summary
Details
PoC
Impact
CreditThis issue was discovered by Kevin Tu of TMIR at ByteDance. The patch was developed by @agronholm. Affected versions
1.0.0
1.1.0
2.0.0
3.0.0
3.0.1
3.0.2
3.0.3
3.0.4
4.0.0
4.0.1
4.1.0
4.1.1
+ 28 more Show less
4.1.2
5.0.0
5.0.1
5.1.0
5.1.1
5.1.2
5.2.0
5.2.0.post1
5.3.0
5.4.0
5.4.1
5.4.2
5.4.2.post1
5.4.3
5.4.4
5.4.5
5.4.6
5.5.0
5.5.1
5.6.0
5.6.1
5.6.2
5.6.3
5.6.4
5.6.5
5.7.0
5.7.1
5.8.0
Fixed in
5.9.0
References
Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-68131
GHSA-wcj4-jw5j-44wh
PYSEC-2025-90
Dec 31, 2025
CBORDecoder reuse can leak shareable values across decode calls
Medium
Network
Low
None
None
SummaryWhen a CBORDecoder instance is reused across multiple decode operations, values marked with the shareable tag (28) persist in memory and can be accessed by subsequent CBOR messages using the sharedref tag (29). This allows an attacker-controlled message to read data from previously decoded messages if the decoder is reused across trust boundaries. DetailsThe issue is in the decoder's handling of the shareables list, which stores values tagged with CBOR tag 28 (shareable) for later reference by tag 29 (sharedref). When decode_from_bytes() is called or when .fp is set to a new stream, the shareables list is not cleared. This allows references to persist across separate decode operations. The issue exists in both the C extension and the pure Python decoder. In the C extension (source/decoder.c), the _CBORDecoder_set_fp function (line ~202) updates the file pointer but does not reset the shareables state:
In the pure Python decoder (cbor2/_decoder.py), the fp setter similarly fails to clear self._shareables. Similarly, decode_from_bytes() in both implementations saves and restores the read pointer but does not clear the shareables list between decodes. The shareable/sharedref tags are defined in the CBOR value sharing extension (http://cbor.schmorp.de/value-sharing) with scope limited to a single CBOR data item, not across separate messages. PoC
No special configuration required. Affects any application that reuses a CBORDecoder instance to decode messages from different sources. ImpactInformation disclosure. Applications that reuse a CBORDecoder across trust boundaries are vulnerable if the trusted messages use value sharing (tag 28) and an attacker can send messages containing shared references (tag 29). An attacker who can send a crafted CBOR message containing a sharedref tag can read values from previously decoded messages, potentially exposing sensitive data such as credentials, tokens, or private user data. RelatedA similar issue in the encoder could produce invalid CBOR with dangling shared references:
While primarily a correctness bug, it could cause denial of service if invalid CBOR is transmitted to downstream systems that fail to parse it, or cause silent data corruption if the dangling reference happens to resolve to an unrelated value. It can also be considered a memory leak in both the decoder and encoder as references are held that will never be released as long as the decoder/encoder remains alive. Suggested resolutionAdd dedicated boolean flags to track when an encode/decode operation is in progress. Reset shared state only when the flag is False (top-level call). This ensures state is reset for standalone calls while preserving shared references for nested calls from hooks (which need access to the registry for cyclic structures). Decoder (_decoding flag):
Encoder (_encoding flag):
Affected versions
3.0.0
3.0.1
3.0.2
3.0.3
3.0.4
4.0.0
4.0.1
4.1.0
4.1.1
4.1.2
5.0.0
5.0.1
+ 24 more Show less
5.1.0
5.1.1
5.1.2
5.2.0
5.2.0.post1
5.3.0
5.4.0
5.4.1
5.4.2
5.4.2.post1
5.4.3
5.4.4
5.4.5
5.4.6
5.5.0
5.5.1
5.6.0
5.6.1
5.6.2
5.6.3
5.6.4
5.6.5
5.7.0
5.7.1
Fixed in
5.8.0
References
Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-64076
GHSA-9q9c-vjxh-p795
PYSEC-2025-238
Nov 18, 2025
cbor2 C extension decoder flaws can cause denial of service
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Multiple vulnerabilities exist in cbor2 through version 5.7.0 in the decode_definite_long_string() function of the C extension decoder (source/decoder.c):
Both vulnerabilities can be exploited remotely without authentication by sending specially-crafted CBOR data containing definite-length text strings with multi-byte UTF-8 characters positioned at 65536-byte chunk boundaries. Successful exploitation results in denial of service through process crashes (CBORDecodeEOF exceptions) or memory exhaustion. The vulnerabilities affect all applications using cbor2's C extension to process untrusted CBOR data, including web APIs, IoT data collectors, and message queue processors. Fixed in commit 851473490281f82d82560b2368284ef33cf6e8f9 pushed with released version 5.7.1. Affected versions
1.0.0
1.1.0
2.0.0
3.0.0
3.0.1
3.0.2
3.0.3
3.0.4
4.0.0
4.0.1
4.1.0
4.1.1
+ 26 more Show less
4.1.2
5.0.0
5.0.1
5.1.0
5.1.1
5.1.2
5.2.0
5.2.0.post1
5.3.0
5.4.0
5.4.1
5.4.2
5.4.2.post1
5.4.3
5.4.4
5.4.5
5.4.6
5.5.0
5.5.1
5.6.0
5.6.1
5.6.2
5.6.3
5.6.4
5.6.5
5.7.0
Fixed in
5.7.1
References
Updated Sep 01, 2026 · Source: OSV.dev |
3.0.1
patch
|
|
3.0.0
major
3 CVEs
CVE-2026-26209
GHSA-3c37-wwvx-h642
PYSEC-2026-2123
Mar 23, 2026
cbor2 has a Denial of Service via Uncontrolled Recursion in cbor2.loads
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Summary
Details
PoC
Impact
CreditThis issue was discovered by Kevin Tu of TMIR at ByteDance. The patch was developed by @agronholm. Affected versions
1.0.0
1.1.0
2.0.0
3.0.0
3.0.1
3.0.2
3.0.3
3.0.4
4.0.0
4.0.1
4.1.0
4.1.1
+ 28 more Show less
4.1.2
5.0.0
5.0.1
5.1.0
5.1.1
5.1.2
5.2.0
5.2.0.post1
5.3.0
5.4.0
5.4.1
5.4.2
5.4.2.post1
5.4.3
5.4.4
5.4.5
5.4.6
5.5.0
5.5.1
5.6.0
5.6.1
5.6.2
5.6.3
5.6.4
5.6.5
5.7.0
5.7.1
5.8.0
Fixed in
5.9.0
References
Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-68131
GHSA-wcj4-jw5j-44wh
PYSEC-2025-90
Dec 31, 2025
CBORDecoder reuse can leak shareable values across decode calls
Medium
Network
Low
None
None
SummaryWhen a CBORDecoder instance is reused across multiple decode operations, values marked with the shareable tag (28) persist in memory and can be accessed by subsequent CBOR messages using the sharedref tag (29). This allows an attacker-controlled message to read data from previously decoded messages if the decoder is reused across trust boundaries. DetailsThe issue is in the decoder's handling of the shareables list, which stores values tagged with CBOR tag 28 (shareable) for later reference by tag 29 (sharedref). When decode_from_bytes() is called or when .fp is set to a new stream, the shareables list is not cleared. This allows references to persist across separate decode operations. The issue exists in both the C extension and the pure Python decoder. In the C extension (source/decoder.c), the _CBORDecoder_set_fp function (line ~202) updates the file pointer but does not reset the shareables state:
In the pure Python decoder (cbor2/_decoder.py), the fp setter similarly fails to clear self._shareables. Similarly, decode_from_bytes() in both implementations saves and restores the read pointer but does not clear the shareables list between decodes. The shareable/sharedref tags are defined in the CBOR value sharing extension (http://cbor.schmorp.de/value-sharing) with scope limited to a single CBOR data item, not across separate messages. PoC
No special configuration required. Affects any application that reuses a CBORDecoder instance to decode messages from different sources. ImpactInformation disclosure. Applications that reuse a CBORDecoder across trust boundaries are vulnerable if the trusted messages use value sharing (tag 28) and an attacker can send messages containing shared references (tag 29). An attacker who can send a crafted CBOR message containing a sharedref tag can read values from previously decoded messages, potentially exposing sensitive data such as credentials, tokens, or private user data. RelatedA similar issue in the encoder could produce invalid CBOR with dangling shared references:
While primarily a correctness bug, it could cause denial of service if invalid CBOR is transmitted to downstream systems that fail to parse it, or cause silent data corruption if the dangling reference happens to resolve to an unrelated value. It can also be considered a memory leak in both the decoder and encoder as references are held that will never be released as long as the decoder/encoder remains alive. Suggested resolutionAdd dedicated boolean flags to track when an encode/decode operation is in progress. Reset shared state only when the flag is False (top-level call). This ensures state is reset for standalone calls while preserving shared references for nested calls from hooks (which need access to the registry for cyclic structures). Decoder (_decoding flag):
Encoder (_encoding flag):
Affected versions
3.0.0
3.0.1
3.0.2
3.0.3
3.0.4
4.0.0
4.0.1
4.1.0
4.1.1
4.1.2
5.0.0
5.0.1
+ 24 more Show less
5.1.0
5.1.1
5.1.2
5.2.0
5.2.0.post1
5.3.0
5.4.0
5.4.1
5.4.2
5.4.2.post1
5.4.3
5.4.4
5.4.5
5.4.6
5.5.0
5.5.1
5.6.0
5.6.1
5.6.2
5.6.3
5.6.4
5.6.5
5.7.0
5.7.1
Fixed in
5.8.0
References
Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-64076
GHSA-9q9c-vjxh-p795
PYSEC-2025-238
Nov 18, 2025
cbor2 C extension decoder flaws can cause denial of service
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Multiple vulnerabilities exist in cbor2 through version 5.7.0 in the decode_definite_long_string() function of the C extension decoder (source/decoder.c):
Both vulnerabilities can be exploited remotely without authentication by sending specially-crafted CBOR data containing definite-length text strings with multi-byte UTF-8 characters positioned at 65536-byte chunk boundaries. Successful exploitation results in denial of service through process crashes (CBORDecodeEOF exceptions) or memory exhaustion. The vulnerabilities affect all applications using cbor2's C extension to process untrusted CBOR data, including web APIs, IoT data collectors, and message queue processors. Fixed in commit 851473490281f82d82560b2368284ef33cf6e8f9 pushed with released version 5.7.1. Affected versions
1.0.0
1.1.0
2.0.0
3.0.0
3.0.1
3.0.2
3.0.3
3.0.4
4.0.0
4.0.1
4.1.0
4.1.1
+ 26 more Show less
4.1.2
5.0.0
5.0.1
5.1.0
5.1.1
5.1.2
5.2.0
5.2.0.post1
5.3.0
5.4.0
5.4.1
5.4.2
5.4.2.post1
5.4.3
5.4.4
5.4.5
5.4.6
5.5.0
5.5.1
5.6.0
5.6.1
5.6.2
5.6.3
5.6.4
5.6.5
5.7.0
Fixed in
5.7.1
References
Updated Sep 01, 2026 · Source: OSV.dev |
3.0.0
major
|
|
2.0.0
major
2 CVEs
CVE-2026-26209
GHSA-3c37-wwvx-h642
PYSEC-2026-2123
Mar 23, 2026
cbor2 has a Denial of Service via Uncontrolled Recursion in cbor2.loads
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Summary
Details
PoC
Impact
CreditThis issue was discovered by Kevin Tu of TMIR at ByteDance. The patch was developed by @agronholm. Affected versions
1.0.0
1.1.0
2.0.0
3.0.0
3.0.1
3.0.2
3.0.3
3.0.4
4.0.0
4.0.1
4.1.0
4.1.1
+ 28 more Show less
4.1.2
5.0.0
5.0.1
5.1.0
5.1.1
5.1.2
5.2.0
5.2.0.post1
5.3.0
5.4.0
5.4.1
5.4.2
5.4.2.post1
5.4.3
5.4.4
5.4.5
5.4.6
5.5.0
5.5.1
5.6.0
5.6.1
5.6.2
5.6.3
5.6.4
5.6.5
5.7.0
5.7.1
5.8.0
Fixed in
5.9.0
References
Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-64076
GHSA-9q9c-vjxh-p795
PYSEC-2025-238
Nov 18, 2025
cbor2 C extension decoder flaws can cause denial of service
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Multiple vulnerabilities exist in cbor2 through version 5.7.0 in the decode_definite_long_string() function of the C extension decoder (source/decoder.c):
Both vulnerabilities can be exploited remotely without authentication by sending specially-crafted CBOR data containing definite-length text strings with multi-byte UTF-8 characters positioned at 65536-byte chunk boundaries. Successful exploitation results in denial of service through process crashes (CBORDecodeEOF exceptions) or memory exhaustion. The vulnerabilities affect all applications using cbor2's C extension to process untrusted CBOR data, including web APIs, IoT data collectors, and message queue processors. Fixed in commit 851473490281f82d82560b2368284ef33cf6e8f9 pushed with released version 5.7.1. Affected versions
1.0.0
1.1.0
2.0.0
3.0.0
3.0.1
3.0.2
3.0.3
3.0.4
4.0.0
4.0.1
4.1.0
4.1.1
+ 26 more Show less
4.1.2
5.0.0
5.0.1
5.1.0
5.1.1
5.1.2
5.2.0
5.2.0.post1
5.3.0
5.4.0
5.4.1
5.4.2
5.4.2.post1
5.4.3
5.4.4
5.4.5
5.4.6
5.5.0
5.5.1
5.6.0
5.6.1
5.6.2
5.6.3
5.6.4
5.6.5
5.7.0
Fixed in
5.7.1
References
Updated Sep 01, 2026 · Source: OSV.dev |
2.0.0
major
|
|
1.1.0
minor
2 CVEs
CVE-2026-26209
GHSA-3c37-wwvx-h642
PYSEC-2026-2123
Mar 23, 2026
cbor2 has a Denial of Service via Uncontrolled Recursion in cbor2.loads
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Summary
Details
PoC
Impact
CreditThis issue was discovered by Kevin Tu of TMIR at ByteDance. The patch was developed by @agronholm. Affected versions
1.0.0
1.1.0
2.0.0
3.0.0
3.0.1
3.0.2
3.0.3
3.0.4
4.0.0
4.0.1
4.1.0
4.1.1
+ 28 more Show less
4.1.2
5.0.0
5.0.1
5.1.0
5.1.1
5.1.2
5.2.0
5.2.0.post1
5.3.0
5.4.0
5.4.1
5.4.2
5.4.2.post1
5.4.3
5.4.4
5.4.5
5.4.6
5.5.0
5.5.1
5.6.0
5.6.1
5.6.2
5.6.3
5.6.4
5.6.5
5.7.0
5.7.1
5.8.0
Fixed in
5.9.0
References
Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-64076
GHSA-9q9c-vjxh-p795
PYSEC-2025-238
Nov 18, 2025
cbor2 C extension decoder flaws can cause denial of service
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Multiple vulnerabilities exist in cbor2 through version 5.7.0 in the decode_definite_long_string() function of the C extension decoder (source/decoder.c):
Both vulnerabilities can be exploited remotely without authentication by sending specially-crafted CBOR data containing definite-length text strings with multi-byte UTF-8 characters positioned at 65536-byte chunk boundaries. Successful exploitation results in denial of service through process crashes (CBORDecodeEOF exceptions) or memory exhaustion. The vulnerabilities affect all applications using cbor2's C extension to process untrusted CBOR data, including web APIs, IoT data collectors, and message queue processors. Fixed in commit 851473490281f82d82560b2368284ef33cf6e8f9 pushed with released version 5.7.1. Affected versions
1.0.0
1.1.0
2.0.0
3.0.0
3.0.1
3.0.2
3.0.3
3.0.4
4.0.0
4.0.1
4.1.0
4.1.1
+ 26 more Show less
4.1.2
5.0.0
5.0.1
5.1.0
5.1.1
5.1.2
5.2.0
5.2.0.post1
5.3.0
5.4.0
5.4.1
5.4.2
5.4.2.post1
5.4.3
5.4.4
5.4.5
5.4.6
5.5.0
5.5.1
5.6.0
5.6.1
5.6.2
5.6.3
5.6.4
5.6.5
5.7.0
Fixed in
5.7.1
References
Updated Sep 01, 2026 · Source: OSV.dev |
1.1.0
minor
|
|
1.0.0
initial
2 CVEs
CVE-2026-26209
GHSA-3c37-wwvx-h642
PYSEC-2026-2123
Mar 23, 2026
cbor2 has a Denial of Service via Uncontrolled Recursion in cbor2.loads
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Summary
Details
PoC
Impact
CreditThis issue was discovered by Kevin Tu of TMIR at ByteDance. The patch was developed by @agronholm. Affected versions
1.0.0
1.1.0
2.0.0
3.0.0
3.0.1
3.0.2
3.0.3
3.0.4
4.0.0
4.0.1
4.1.0
4.1.1
+ 28 more Show less
4.1.2
5.0.0
5.0.1
5.1.0
5.1.1
5.1.2
5.2.0
5.2.0.post1
5.3.0
5.4.0
5.4.1
5.4.2
5.4.2.post1
5.4.3
5.4.4
5.4.5
5.4.6
5.5.0
5.5.1
5.6.0
5.6.1
5.6.2
5.6.3
5.6.4
5.6.5
5.7.0
5.7.1
5.8.0
Fixed in
5.9.0
References
Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-64076
GHSA-9q9c-vjxh-p795
PYSEC-2025-238
Nov 18, 2025
cbor2 C extension decoder flaws can cause denial of service
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Multiple vulnerabilities exist in cbor2 through version 5.7.0 in the decode_definite_long_string() function of the C extension decoder (source/decoder.c):
Both vulnerabilities can be exploited remotely without authentication by sending specially-crafted CBOR data containing definite-length text strings with multi-byte UTF-8 characters positioned at 65536-byte chunk boundaries. Successful exploitation results in denial of service through process crashes (CBORDecodeEOF exceptions) or memory exhaustion. The vulnerabilities affect all applications using cbor2's C extension to process untrusted CBOR data, including web APIs, IoT data collectors, and message queue processors. Fixed in commit 851473490281f82d82560b2368284ef33cf6e8f9 pushed with released version 5.7.1. Affected versions
1.0.0
1.1.0
2.0.0
3.0.0
3.0.1
3.0.2
3.0.3
3.0.4
4.0.0
4.0.1
4.1.0
4.1.1
+ 26 more Show less
4.1.2
5.0.0
5.0.1
5.1.0
5.1.1
5.1.2
5.2.0
5.2.0.post1
5.3.0
5.4.0
5.4.1
5.4.2
5.4.2.post1
5.4.3
5.4.4
5.4.5
5.4.6
5.5.0
5.5.1
5.6.0
5.6.1
5.6.2
5.6.3
5.6.4
5.6.5
5.7.0
Fixed in
5.7.1
References
Updated Sep 01, 2026 · Source: OSV.dev |
1.0.0
initial
|