Quick answers
- Is CVE-2020-28481 exploited in the wild?
- No. Junglewise Threat Intelligence has no report of CVE-2020-28481 being exploited in the wild.
- How severe is CVE-2020-28481?
- Low severity, with a CVSS score of 3.1, published 20 January 2021.
- Which products and versions are affected?
- socket.io (npm) SEMVER:introduced=0,fixed=2.4.0.
- Is there a fix for CVE-2020-28481?
- Yes. socket.io (npm): upgrade to 2.4.0 or later. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.
- How is CVE-2020-28481 attacked?
- It is attacked over the network, in a software library.
- Am I affected by CVE-2020-28481?
- Check whether you run socket.io (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
- socket.io (npm): upgrade to 2.4.0 or later
npm install socket.io@2.4.0
Technical details
The vulnerability is an insecure-defaults CORS misconfiguration (CWE-346, CWE-453) in socket.io before version 2.4.0. The library accepts arbitrary origins in the Access-Control-Allow-Origin header, effectively trusting all domains by default. An attacker can craft a malicious web page that initiates socket.io connections to a vulnerable target application; if a victim visits the attacker's page, the browser will establish the connection and the attacker can send authenticated requests. No user interaction beyond visiting a malicious site is required. The vulnerability was fixed in version 2.4.0 with a commit that restricts CORS origins to proper whitelisting.
Affected products
- socket.io socket.io before 2.4.0
Identifiers
- CVE-2020-28481
- GHSA-fxwf-4rqh-v8g3
Timeline
- 2020-10-29: disclosed
- 2021-01-20: advisory
- 2.4.0: patched