Process crash via unchecked numeric argument coercion
Published Jul 10, 2024 · Updated Jan 26, 2025
Denial of service in @discordjs/opus before 0.10.0 allows remote attackers to crash a Node.js process via crafted API arguments. The OpusEncoder constructor, setBitrate, applyEncoderCTL, and applyDecoderCTL coerce arguments with N-API ToNumber without first requiring numeric values; an object with a noncallable toString property makes N-API abort instead of raising a catchable JavaScript exception. Exploitation requires an application to pass attacker-controlled values into one of these library APIs, and the resulting impact is limited to termination of that hosting process.
Summary
What happened
Denial of service in @discordjs/opus before 0.10.0 allows remote attackers to crash a Node.js process via crafted API arguments. The OpusEncoder constructor, setBitrate, applyEncoderCTL, and applyDecoderCTL coerce arguments with N-API ToNumber without first requiring numeric values; an object with a noncallable toString property makes N-API abort instead of raising a catchable JavaScript exception. Exploitation requires an application to pass attacker-controlled values into one of these library APIs, and the resulting impact is limited to termination of that hosting process.
The record
- CVE
- CVE-2024-21521
- Published
- Jul 10, 2024
- Updated
- Jan 26, 2025
- Vendor
- Discord.js
- Product
- @discordjs/opus
- Classifications
- CWE-20, CWE-400, T1499.004
- Attack vector
- network
- Privileges
- unauthenticated
Timeline
How it unfolded
- Jul 10, 2024CVE publishedPublication date reported by the CVE source.
- Jan 26, 2025Record updatedLatest update available in the CVE record.
Exploitability
Present is not the same as exploitable
Compare your product and version with the public record. A matching version still requires validation against your environment.
Is a vulnerable build present?
Compare these published version ranges with your installed build and any vendor patches.
- Affected versionversion=0 <=*
- Affected versionversion=0 <*
What conditions does exploitation require?
What is affected?
Published CVSS scores
CVSS describes severity. EPSS estimates exploitation probability.
Attacks
What attackers are doing with it
Daily unique IPs observed by Shadowserver honeypots for known exploited vulnerabilities (KEVs). Missing observations do not establish an absence of attacks.
Weakness, pattern, technique
Public exploit references
- Denial of Service proof of concept for @discordjs/opus 0.9.0proof of concept · demonstrated
Labels summarize the accepted research assessment. They do not indicate a test against your environment.
Technologies
Your stack
See the directory against your own environment.
Your stack
Check the software in your environment
Book a demo to see how Hinoki identifies affected software and validates exploitability in your environment.
Book a demo