{"id":"CVE-2016-10583","aliases":["EUVD-2019-0200","GHSA-2hpj-g53m-9gj6"],"status":"published","title":"closure-util downloads Resources over HTTP","description":"closure-utils is Utilities for Closure Library based projects. closure-utils downloads binary resources over HTTP, which leaves it vulnerable to MITM attacks. It may be possible to cause remote code execution (RCE) by swapping out the requested binary with an attacker controlled binary if the attacker is on the network or positioned in between the user and the remote server.","severity":{"version":"3.1","score":8.1,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"high","assessor":"primary","from":"nvd"},"epss":{"day":"2026-11-08","score":0.02506,"percentile":0.84853,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":false},"cwes":["CWE-310","CWE-311"],"published":"2018-06-01T18:00:00Z","modified":"2026-06-17T00:39:58Z","affected":[{"source":"ghsa","ecosystem":"npm","package":"closure-util","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"last_affected":"2.0.0-beta.1"}]}]},{"source":"osv","ecosystem":"npm","package":"closure-util","ranges":[{"type":"SEMVER","events":[{"introduced":"0"},{"last_affected":"2.0.0-beta.1"}]}]}],"products":[{"vendor":"openlayers","product":"closure-util"}],"references":[{"url":"https://nodesecurity.io/advisories/165","tags":["x_refsource_MISC","x_transferred","Third Party Advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2016-10583","tags":["advisory"]},{"url":"https://github.com/advisories/GHSA-2hpj-g53m-9gj6","tags":["advisory"]},{"url":"https://www.npmjs.com/advisories/165","tags":["web"]}],"sources":{"cve":[{"id":"CVE-2016-10583","description":"closure-utils is Utilities for Closure Library based projects. closure-utils downloads binary resources over HTTP, which leaves it vulnerable to MITM attacks. It may be possible to cause remote code execution (RCE) by swapping out the requested binary with an attacker controlled binary if the attacker is on the network or positioned in between the user and the remote server.","status":"published","published":"2018-06-01T18:00:00Z","modified":"2024-08-06T03:30:19.056Z","updated_at":"2026-11-02T14:33:31.117878Z"}],"euvd":[{"id":"EUVD-2019-0200","description":"closure-utils is Utilities for Closure Library based projects. closure-utils downloads binary resources over HTTP, which leaves it vulnerable to MITM attacks. It may be possible to cause remote code execution (RCE) by swapping out the requested binary with an attacker controlled binary if the attacker is on the network or positioned in between the user and the remote server.","status":"published","published":"2018-06-01T18:00:00Z","modified":"2024-08-06T03:30:19Z","updated_at":"2026-11-03T02:22:23.66215Z"}],"ghsa":[{"id":"GHSA-2hpj-g53m-9gj6","title":"closure-util downloads Resources over HTTP","description":"Affected versions of `closure-util` insecurely download an executable over an unencrypted HTTP connection. \n\nIn scenarios where an attacker has a privileged network position, it is possible to intercept the response and replace the executable with a malicious one, resulting in code execution on the system running `closure-util`.\n\n\n## Recommendation\n\nTo mitigate this issue:\n1. Install the package using npm's `--ignore-scripts` flag.\n2. Navigate to the package directory, and open `default-config.json` in a text editor\n3. Change the download URLs in the `compiler_url` and `library_url` to `https` equivalents\n4. run `npm i` in the package directory.","status":"published","published":"2019-02-18T23:58:03Z","modified":"2023-09-08T20:52:09Z","cvss":[{"version":"3.1","score":8.1,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"high"}],"cwes":["CWE-311"],"updated_at":"2026-11-02T14:37:03.287418Z"}],"nvd":[{"id":"CVE-2016-10583","description":"closure-utils is Utilities for Closure Library based projects. closure-utils downloads binary resources over HTTP, which leaves it vulnerable to MITM attacks. It may be possible to cause remote code execution (RCE) by swapping out the requested binary with an attacker controlled binary if the attacker is on the network or positioned in between the user and the remote server.","status":"published","published":"2018-06-01T18:29:00.55Z","modified":"2026-06-17T00:39:58.607Z","cvss":[{"version":"3.1","score":8.1,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"high","assessor":"primary"},{"version":"2.0","score":9.3,"vector":"AV:N/AC:M/Au:N/C:C/I:C/A:C","level":"high","assessor":"primary"}],"cwes":["CWE-310"],"updated_at":"2026-11-02T14:03:39.621168Z"}],"osv":[{"id":"GHSA-2hpj-g53m-9gj6","title":"closure-util downloads Resources over HTTP","description":"Affected versions of `closure-util` insecurely download an executable over an unencrypted HTTP connection. \n\nIn scenarios where an attacker has a privileged network position, it is possible to intercept the response and replace the executable with a malicious one, resulting in code execution on the system running `closure-util`.\n\n\n## Recommendation\n\nTo mitigate this issue:\n1. Install the package using npm's `--ignore-scripts` flag.\n2. Navigate to the package directory, and open `default-config.json` in a text editor\n3. Change the download URLs in the `compiler_url` and `library_url` to `https` equivalents\n4. run `npm i` in the package directory.","status":"published","published":"2019-02-18T23:58:03Z","modified":"2023-11-08T03:58:14.038941Z","cvss":[{"version":"3.1","score":8.1,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"high"}],"cwes":["CWE-311"],"updated_at":"2026-11-02T15:46:34.338541Z"}]}}
