{"id":"CVE-2016-10544","aliases":["EUVD-2020-1096","GHSA-hf5h-hh56-3vrg"],"status":"published","title":"Denial of Service in uws","description":"uws is a WebSocket server library. By sending a 256mb websocket message to a uws server instance with permessage-deflate enabled, there is a possibility used compression will shrink said 256mb down to less than 16mb of websocket payload which passes the length check of 16mb payload. This data will then inflate up to 256mb and crash the node process by exceeding V8's maximum string size. This affects uws \u003e=0.10.0 \u003c=0.10.8.","severity":{"version":"3.0","score":5.9,"vector":"CVSS:3.0/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"medium","assessor":"primary","from":"nvd"},"epss":{"day":"2026-11-08","score":0.01319,"percentile":0.71027,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-20","CWE-400"],"published":"2018-05-31T20:00:00Z","modified":"2026-10-20T13:15:29Z","fixes":[{"ecosystem":"npm","package":"uws","fixed_in":["0.10.9"],"sources":["ghsa","osv"]}],"affected":[{"source":"ghsa","ecosystem":"npm","package":"uws","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0.10.0"},{"last_affected":"0.10.8"},{"fixed":"0.10.9"}]}]},{"source":"osv","ecosystem":"npm","package":"uws","ranges":[{"type":"SEMVER","events":[{"introduced":"0.10.0"},{"fixed":"0.10.9"}]}]}],"products":[{"vendor":"hackerone","product":"uws node module"},{"vendor":"uws_project","product":"uws"}],"references":[{"url":"https://github.com/uWebSockets/uWebSockets/commit/37deefd01f0875e133ea967122e3a5e421b8fcd9","tags":["x_refsource_MISC","x_transferred","Patch","Third Party Advisory","fix","web"]},{"url":"https://nodesecurity.io/advisories/149","tags":["x_refsource_MISC","x_transferred","Third Party Advisory","advisory"]},{"url":"https://www.npmjs.com/advisories/149","tags":["web"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2016-10544","tags":["advisory"]},{"url":"https://github.com/advisories/GHSA-hf5h-hh56-3vrg"}],"sources":{"cve":[{"id":"CVE-2016-10544","description":"uws is a WebSocket server library. By sending a 256mb websocket message to a uws server instance with permessage-deflate enabled, there is a possibility used compression will shrink said 256mb down to less than 16mb of websocket payload which passes the length check of 16mb payload. This data will then inflate up to 256mb and crash the node process by exceeding V8's maximum string size. This affects uws \u003e=0.10.0 \u003c=0.10.8.","status":"published","published":"2018-05-31T20:00:00Z","modified":"2024-09-17T02:56:54.139Z","cwes":["CWE-400"],"updated_at":"2026-11-02T14:33:31.764001Z"}],"euvd":[{"id":"EUVD-2020-1096","description":"uws is a WebSocket server library. By sending a 256mb websocket message to a uws server instance with permessage-deflate enabled, there is a possibility used compression will shrink said 256mb down to less than 16mb of websocket payload which passes the length check of 16mb payload. This data will then inflate up to 256mb and crash the node process by exceeding V8's maximum string size. This affects uws \u003e=0.10.0 \u003c=0.10.8.","status":"published","published":"2018-05-31T20:00:00Z","modified":"2024-09-17T02:56:54Z","updated_at":"2026-11-03T00:28:35.984836Z"}],"ghsa":[{"id":"GHSA-hf5h-hh56-3vrg","title":"Denial of Service in uws","description":"Affected versions of `uws` do not properly handle large websocket messages when `permessage-deflate` is enabled, which may result in a denial of service condition.\n\nIf `uws` recieves a 256Mb websocket message when `permessage-deflate` is enabled, the server will compress the message prior to executing the length check, and subsequently extract the message prior to processing. This can result in a situation where an excessively large websocket message passes the length checks, yet still gets cast from a Buffer to a string, which will exceed v8's maximum string size and crash the process.\n\n\n## Recommendation\n\nUpdate to version 0.10.9 or later.\n\nAlternatively, disable `permessage-deflate`.","status":"published","published":"2020-09-01T16:02:29Z","modified":"2023-01-09T05:03:43Z","cwes":["CWE-400"],"updated_at":"2026-11-02T14:36:06.317379Z"}],"nvd":[{"id":"CVE-2016-10544","description":"uws is a WebSocket server library. By sending a 256mb websocket message to a uws server instance with permessage-deflate enabled, there is a possibility used compression will shrink said 256mb down to less than 16mb of websocket payload which passes the length check of 16mb payload. This data will then inflate up to 256mb and crash the node process by exceeding V8's maximum string size. This affects uws \u003e=0.10.0 \u003c=0.10.8.","status":"published","published":"2018-05-31T20:29:01.643Z","modified":"2026-06-17T00:39:54.65Z","cvss":[{"version":"3.0","score":5.9,"vector":"CVSS:3.0/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"medium","assessor":"primary"},{"version":"2.0","score":4.3,"vector":"AV:N/AC:M/Au:N/C:N/I:N/A:P","level":"medium","assessor":"primary"}],"cwes":["CWE-400","CWE-20"],"updated_at":"2026-11-02T14:03:39.176887Z"}],"osv":[{"id":"CVE-2016-10544","description":"uws is a WebSocket server library. By sending a 256mb websocket message to a uws server instance with permessage-deflate enabled, there is a possibility used compression will shrink said 256mb down to less than 16mb of websocket payload which passes the length check of 16mb payload. This data will then inflate up to 256mb and crash the node process by exceeding V8's maximum string size. This affects uws \u003e=0.10.0 \u003c=0.10.8.","status":"published","published":"2018-05-31T20:29:01.643Z","modified":"2026-10-20T13:15:29.375412233Z","cvss":[{"version":"3.0","score":5.9,"vector":"CVSS:3.0/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"medium"}],"updated_at":"2026-11-02T15:44:01.531338Z"},{"id":"GHSA-hf5h-hh56-3vrg","title":"Denial of Service in uws","description":"Affected versions of `uws` do not properly handle large websocket messages when `permessage-deflate` is enabled, which may result in a denial of service condition.\n\nIf `uws` recieves a 256Mb websocket message when `permessage-deflate` is enabled, the server will compress the message prior to executing the length check, and subsequently extract the message prior to processing. This can result in a situation where an excessively large websocket message passes the length checks, yet still gets cast from a Buffer to a string, which will exceed v8's maximum string size and crash the process.\n\n\n## Recommendation\n\nUpdate to version 0.10.9 or later.\n\nAlternatively, disable `permessage-deflate`.","status":"published","published":"2020-09-01T16:02:29Z","modified":"2023-11-08T03:58:11.701417Z","cwes":["CWE-400"],"updated_at":"2026-11-02T15:46:48.920784Z"}]}}
