7.5high

CVE-2017-16031

Insecure randomness in socket.io

Also known as GHSA-qv2v-m59f-v5fw

Published 8 y ago · modified 4 mo ago · JSON

CVSS
7.5
v3.0 · NVD
CISA KEV
No
not known exploited
EPSS
2.0%
percentile 80%
Public exploits
0
none known

Summary

Socket.io is a realtime application framework that provides communication via websockets. Because socket.io 0.9.6 and earlier depends on `Math.random()` to create socket IDs, the IDs are predictable. An attacker is able to guess the socket ID and gain access to socket.io servers, potentially obtaining sensitive information.

Exploit prediction (EPSS)

1.97% probability of exploitation in the next 30 days, higher than 80% of all scored CVEs.

CVSS scores

Assigned byVersionScoreVector
NVD3.07.5CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
NVD2.05.0AV:N/AC:L/Au:N/C:P/I:N/A:N
GitHub3.07.5CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N

Affected packages

EcosystemPackageAffectedFixed in
npmsocket.io
<0.9.7
0.9.7

Affected products

  • HackerOne socket.io node module

Classification

Weakness
  • CWE-330 Use of Insufficiently Random Values

References

  • github.com /socketio/socket.io/commit/67b4eb9abdf111dfa9be4176d1709374a2b4ded8 · x_refsource_MISC, x_transferred
  • github.com /socketio/socket.io/issues/856 · x_refsource_MISC, x_transferred
  • github.com /socketio/socket.io/pull/857 · x_refsource_MISC, x_transferred
  • nodesecurity.io /advisories/321 · x_refsource_MISC, x_transferred
  • nvd.nist.gov /vuln/detail/CVE-2017-16031 · advisory
  • github.com /advisories/GHSA-qv2v-m59f-v5fw · advisory
  • github.com /socketio/socket.io · package
  • npmjs.com /advisories/321 · web

Sources

vulnwire keeps one entry per vulnerability: the CVE id wins, then GHSA; records that alias each other are merged. Machine-readable: JSON.