CVE-2023-39914
High · 7.5CVSS
7.5
EPSS
0.7%
Published
Sep 13, 2023
CISA due date
—
Cloudanix analysis
A data-handling library can crash programs that use it when they receive bad input, which may interrupt services until they are restarted.
- Exploitation
- Remote Unauthenticated
- Attacker needs
- None
- Complexity
- Low
- Impact
- Denial Of Service
- Component
- Library
- Class
- Improper Input Validation
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
The bcder library panics instead of returning an error when decoding certain malformed input data, affecting both immediate decoding and delayed-decoded types, resulting in process termination.
Why it matters to the business
Applications relying on the library for untrusted input can be forced into unplanned crashes, causing service outages and reduced availability until the process is restarted.
How an attack unfolds
An attacker identifies a network service or application that uses the vulnerable bcder version to parse BER/DER data, crafts and sends specially malformed input, triggering a panic that crashes the process and denies service to legitimate users.
How to fix it
Upgrade to a patched version of bcder once released; in the interim, place strict input validation or sandboxing in front of any decoding paths and monitor for repeated crashes.
How to confirm the fix worked
Test that the library rejects malformed inputs with errors rather than panicking; review application logs and process health after supplying known-bad test vectors.
Typical attack path
- Locate a target application or service that accepts network input processed by bcder
- Craft invalid BER/DER data that triggers the panic path
- Transmit the malicious data to the target
- Observe process termination and resulting denial of service
How to detect it
Monitor application and system logs for unexpected process terminations or panic messages originating from bcder decoding functions; correlate with inbound traffic containing unusual BER/DER structures.
What your security team should do
- Prioritize upgrading bcder as soon as a fixed release is published
- Add defensive input filtering or rate limiting around any decoding entry points
- Implement process supervision and automatic restarts to limit outage duration
- Scan dependency trees for bcder usage across the environment
The record
NLnet Labs’ bcder library up to and including version 0.7.2 panics while decoding certain invalid input data rather than rejecting the data with an error. This can affect both the actual decoding stage as well as accessing content of types that utilized delayed decoding.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| crates.io | bcder | 0 | 0.7.3 |
| crates.io | bcder | 0.0.0-0 | 0.7.3 |
| Debian:12 | rust-bcder | 0 | No fix |
| Debian:13 | rust-bcder | 0 | 0.7.3-1 |
| Ubuntu:24.04:LTS | rust-bcder | 0 | No fix |
| Ubuntu:24.10 | rust-bcder | 0 | 0.7.3-1 |