CVE-2019-16761: slp-validate validation bypass in script parsing

CVE-2019-16761 · Severity: low · CVSS 3.1 · Published 2019-11-15

slp-validate is a JavaScript library used to validate Bitcoin transactions against the Simple Ledger Protocol (SLP) consensus rules. A validation bypass vulnerability allows attackers to craft malicious Bitcoin scripts that cause the validator to produce incorrect results, potentially triggering a hard-fork from the SLP consensus and disrupting transaction validation for users relying on this library.

Technologies: slp-validate (npm). Vendors: npm.

Quick answers

Is CVE-2019-16761 exploited in the wild?
No. Junglewise Threat Intelligence has no report of CVE-2019-16761 being exploited in the wild.
How severe is CVE-2019-16761?
Low severity, with a CVSS score of 3.1, published 15 November 2019.
Which products and versions are affected?
slp-validate (npm) SEMVER:introduced=1.0.0,fixed=1.0.1.
Is there a fix for CVE-2019-16761?
Yes. slp-validate (npm): upgrade to 1.0.1 or later. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.
How is CVE-2019-16761 attacked?
It is attacked over the network, in a software library.
Am I affected by CVE-2019-16761?
Check whether you run slp-validate (npm) at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

How to fix

  • slp-validate (npm): upgrade to 1.0.1 or later
    npm install slp-validate@1.0.1

Technical details

The vulnerability exists in slp-validate versions prior to 1.0.1 and is caused by a string encoding parsing discrepancy in Bitcoin script validation. A specially crafted Bitcoin script can cause the validation result to diverge from the SLP consensus rules, allowing an attacker to bypass validation logic without authentication. The vulnerable component is the script parser; the attack vector is network-based via submission of malicious Bitcoin transactions. An attacker can create transactions that are incorrectly validated, potentially causing consensus splits or acceptance of invalid transactions. The fix is available in version 1.0.1 and later.

Affected products

  • Simple Ledger slp-validate 1.0.0

Identifiers

  • CVE-2019-16761
  • GHSA-wmx6-vxcf-c3gr

Timeline

  • 2019-11-15: disclosed
  • 2019-11-15: patched: Version 1.0.1 released

References

This page as Markdown. Free to reuse under CC BY 4.0 with a link back.