Skip to content
Fencer Vulns
medium 5.9

CVE-2019-15608 json

TOCTOU Race Condition in Yarn

published 2020-03-15 6 y ago modified 2026-09-10 1 mo ago also GHSA-hjxc-462x-x77j , EUVD-2022-1051

cvss
5.9
version 3.1, NVD
cisa kev
Not listed
not in CISA's catalog
epss
1.8%
EPSS 1.8% chance of exploitation in 30 days, percentile 79%
public exploits
0
none known

Summary

The package integrity validation in yarn < 1.19.0 contains a TOCTOU vulnerability where the hash is computed before writing a package to cache. It's not computed again when reading from the cache. This may lead to a cache pollution attack.

Patch / fix

  • npm yarn 1.19.0
  • yarnpkg yarn 1.19.0
  • node-yarnpkg Debian 14, Debian 13, Debian 12 1.19.1-1

debian advisories DEBIAN-CVE-2019-15608

Vendor advisories

What the vendors themselves say about their products: affected, fixed or not affected, and what to do.

red hat product security vex CVE-2019-15608 updated cvss 4.4

yarn: TOCTOU vulnerability leads to cache pollution

  • Red Hat Quay 3 yarn
    not affected: vulnerable code not present

Red Hat CSAF VEX © Red Hat, Inc., from https://security.access.redhat.com/data/csaf/v2/vex/; changed: reduced to product statuses and remediations. CC BY 4.0 · csaf

Exploit prediction

1.84% chance of exploitation in the next 30 days, higher than 79% of all scored CVEs (FIRST EPSS, 2026-11-08).

Exploits and checks

  • hackerone.com https://hackerone.com/reports/703138 referenced PoC, tagged "exploit" by a source, unverified

CVSS scores

assigned by version score vector
NVD 3.1 5.9 CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:N
NVD 2.0 4.3 AV:N/AC:M/Au:N/C:N/I:P/A:N
GitHub 3.1 5.9 CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:N

Affected packages

ecosystem package affected fixed in
npm yarn
<1.19.0
1.19.0

Affected products

  • n/a yarn

Classification

Weakness
  • CWE-840 Business Logic Errors
  • CWE-367 Time-of-check Time-of-use (TOCTOU) Race Condition

References

Sources

Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.