tc39 / eshost

A uniform wrapper around a multitude of ECMAScript hosts. CLI: https://github.com/bterlson/eshost-cli
Other
141 stars 37 forks source link

Upgrade to latest socket.io to resolve vulnerabilities #89

Closed okuryu closed 4 years ago

okuryu commented 5 years ago

I've bumped 9 vulnerabilities with eshost as follows. It seems to need to upgrade socket.io to the latest version.

``` $ npm audit === npm audit security report === ┌──────────────────────────────────────────────────────────────────────────────┐ │ Manual Review │ │ Some vulnerabilities require your attention to resolve │ │ │ │ Visit https://go.npm.me/audit-guide for additional guidance │ └──────────────────────────────────────────────────────────────────────────────┘ ┌───────────────┬──────────────────────────────────────────────────────────────┐ │ High │ Regular Expression Denial of Service │ ├───────────────┼──────────────────────────────────────────────────────────────┤ │ Package │ parsejson │ ├───────────────┼──────────────────────────────────────────────────────────────┤ │ Patched in │ No patch available │ ├───────────────┼──────────────────────────────────────────────────────────────┤ │ Dependency of │ eshost │ ├───────────────┼──────────────────────────────────────────────────────────────┤ │ Path │ eshost > socket.io > socket.io-client > engine.io-client > │ │ │ parsejson │ ├───────────────┼──────────────────────────────────────────────────────────────┤ │ More info │ https://npmjs.com/advisories/528 │ └───────────────┴──────────────────────────────────────────────────────────────┘ ┌───────────────┬──────────────────────────────────────────────────────────────┐ │ Low │ Regular Expression Denial of Service │ ├───────────────┼──────────────────────────────────────────────────────────────┤ │ Package │ debug │ ├───────────────┼──────────────────────────────────────────────────────────────┤ │ Patched in │ >= 2.6.9 < 3.0.0 || >= 3.1.0 │ ├───────────────┼──────────────────────────────────────────────────────────────┤ │ Dependency of │ eshost │ ├───────────────┼──────────────────────────────────────────────────────────────┤ │ Path │ eshost > socket.io > debug │ ├───────────────┼──────────────────────────────────────────────────────────────┤ │ More info │ https://npmjs.com/advisories/534 │ └───────────────┴──────────────────────────────────────────────────────────────┘ ┌───────────────┬──────────────────────────────────────────────────────────────┐ │ Low │ Regular Expression Denial of Service │ ├───────────────┼──────────────────────────────────────────────────────────────┤ │ Package │ debug │ ├───────────────┼──────────────────────────────────────────────────────────────┤ │ Patched in │ >= 2.6.9 < 3.0.0 || >= 3.1.0 │ ├───────────────┼──────────────────────────────────────────────────────────────┤ │ Dependency of │ eshost │ ├───────────────┼──────────────────────────────────────────────────────────────┤ │ Path │ eshost > socket.io > engine.io > debug │ ├───────────────┼──────────────────────────────────────────────────────────────┤ │ More info │ https://npmjs.com/advisories/534 │ └───────────────┴──────────────────────────────────────────────────────────────┘ ┌───────────────┬──────────────────────────────────────────────────────────────┐ │ Low │ Regular Expression Denial of Service │ ├───────────────┼──────────────────────────────────────────────────────────────┤ │ Package │ debug │ ├───────────────┼──────────────────────────────────────────────────────────────┤ │ Patched in │ >= 2.6.9 < 3.0.0 || >= 3.1.0 │ ├───────────────┼──────────────────────────────────────────────────────────────┤ │ Dependency of │ eshost │ ├───────────────┼──────────────────────────────────────────────────────────────┤ │ Path │ eshost > socket.io > socket.io-adapter > debug │ ├───────────────┼──────────────────────────────────────────────────────────────┤ │ More info │ https://npmjs.com/advisories/534 │ └───────────────┴──────────────────────────────────────────────────────────────┘ ┌───────────────┬──────────────────────────────────────────────────────────────┐ │ Low │ Regular Expression Denial of Service │ ├───────────────┼──────────────────────────────────────────────────────────────┤ │ Package │ debug │ ├───────────────┼──────────────────────────────────────────────────────────────┤ │ Patched in │ >= 2.6.9 < 3.0.0 || >= 3.1.0 │ ├───────────────┼──────────────────────────────────────────────────────────────┤ │ Dependency of │ eshost │ ├───────────────┼──────────────────────────────────────────────────────────────┤ │ Path │ eshost > socket.io > socket.io-client > debug │ ├───────────────┼──────────────────────────────────────────────────────────────┤ │ More info │ https://npmjs.com/advisories/534 │ └───────────────┴──────────────────────────────────────────────────────────────┘ ┌───────────────┬──────────────────────────────────────────────────────────────┐ │ Low │ Regular Expression Denial of Service │ ├───────────────┼──────────────────────────────────────────────────────────────┤ │ Package │ debug │ ├───────────────┼──────────────────────────────────────────────────────────────┤ │ Patched in │ >= 2.6.9 < 3.0.0 || >= 3.1.0 │ ├───────────────┼──────────────────────────────────────────────────────────────┤ │ Dependency of │ eshost │ ├───────────────┼──────────────────────────────────────────────────────────────┤ │ Path │ eshost > socket.io > socket.io-client > engine.io-client > │ │ │ debug │ ├───────────────┼──────────────────────────────────────────────────────────────┤ │ More info │ https://npmjs.com/advisories/534 │ └───────────────┴──────────────────────────────────────────────────────────────┘ ┌───────────────┬──────────────────────────────────────────────────────────────┐ │ Low │ Regular Expression Denial of Service │ ├───────────────┼──────────────────────────────────────────────────────────────┤ │ Package │ debug │ ├───────────────┼──────────────────────────────────────────────────────────────┤ │ Patched in │ >= 2.6.9 < 3.0.0 || >= 3.1.0 │ ├───────────────┼──────────────────────────────────────────────────────────────┤ │ Dependency of │ eshost │ ├───────────────┼──────────────────────────────────────────────────────────────┤ │ Path │ eshost > socket.io > socket.io-adapter > socket.io-parser > │ │ │ debug │ ├───────────────┼──────────────────────────────────────────────────────────────┤ │ More info │ https://npmjs.com/advisories/534 │ └───────────────┴──────────────────────────────────────────────────────────────┘ ┌───────────────┬──────────────────────────────────────────────────────────────┐ │ Low │ Regular Expression Denial of Service │ ├───────────────┼──────────────────────────────────────────────────────────────┤ │ Package │ debug │ ├───────────────┼──────────────────────────────────────────────────────────────┤ │ Patched in │ >= 2.6.9 < 3.0.0 || >= 3.1.0 │ ├───────────────┼──────────────────────────────────────────────────────────────┤ │ Dependency of │ eshost │ ├───────────────┼──────────────────────────────────────────────────────────────┤ │ Path │ eshost > socket.io > socket.io-client > socket.io-parser > │ │ │ debug │ ├───────────────┼──────────────────────────────────────────────────────────────┤ │ More info │ https://npmjs.com/advisories/534 │ └───────────────┴──────────────────────────────────────────────────────────────┘ ┌───────────────┬──────────────────────────────────────────────────────────────┐ │ Low │ Regular Expression Denial of Service │ ├───────────────┼──────────────────────────────────────────────────────────────┤ │ Package │ debug │ ├───────────────┼──────────────────────────────────────────────────────────────┤ │ Patched in │ >= 2.6.9 < 3.0.0 || >= 3.1.0 │ ├───────────────┼──────────────────────────────────────────────────────────────┤ │ Dependency of │ eshost │ ├───────────────┼──────────────────────────────────────────────────────────────┤ │ Path │ eshost > socket.io > socket.io-parser > debug │ ├───────────────┼──────────────────────────────────────────────────────────────┤ │ More info │ https://npmjs.com/advisories/534 │ └───────────────┴──────────────────────────────────────────────────────────────┘ found 9 vulnerabilities (8 low, 1 high) in 170 scanned packages 9 vulnerabilities require manual review. See the full report for details. ```
alangpierce commented 4 years ago

I was able to work around this using Yarn's selective resolutions feature to force the socket.io version to 2.

https://yarnpkg.com/lang/en/docs/selective-version-resolutions/

Here's what I added to my package.json

"resolutions": {
  "**/eshost/socket.io": "^2"
}

Then running yarn fixes the lockfile to no longer have the vulnerable parsejson.

okuryu commented 4 years ago

Yeah, it probably works well in Yarn, but npm doesn't support the feature.