CVE-2017-16031 Insecure randomness in socket.io

High 7.5 Published Updated

Predictable socket IDs allow attackers to hijack connections and access sensitive data on Socket.io servers.

Exploited in the wild
Not known
Login needed
Not needed
Attackable
Over the internet
Victim action needed
Not needed
Fix
Available

What is CVE-2017-16031?

CVE-2017-16031 is a high-severity vulnerability in HackerOne socket.io node module, published on 4 Jun 2018. An attacker can exploit it over the internet without logging in, with no action from the victim.

Official description

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.

Weakness: CWE-330

Which versions are affected by CVE-2017-16031?

2 open source packages ship an affected version, including socket.io. It affects 1 product.

PackageAffectedFixed in
socket.io npmAll versions0.9.7
socket.io npmAll versions0.9.7

Products include Socket Socket.io.

How do I fix CVE-2017-16031?

Upgrade socket.io to 0.9.7 or later.

Is CVE-2017-16031 being exploited?

There is no known exploitation of CVE-2017-16031 in the wild and no public exploit code.

Sources

Also known as GHSA-qv2v-m59f-v5fw.

Is CVE-2017-16031 in your software?

Upload an SBOM and sbomify checks it against every vulnerability here, every day.

Check your SBOMs for free