{"id":"CVE-2019-17221","aliases":["EUVD-2022-5707","GHSA-x43g-gj9x-838x","UBUNTU-CVE-2019-17221"],"status":"published","title":"PhantomJS Arbitrary File Read","description":"PhantomJS through 2.1.1 has an arbitrary file read vulnerability, as demonstrated by an XMLHttpRequest for a file:// URI. The vulnerability exists in the page.open() function of the webpage module, which loads a specified URL and calls a given callback. An attacker can supply a specially crafted HTML file, as user input, that allows reading arbitrary files on the filesystem. For example, if page.render() is the function callback, this generates a PDF or an image of the targeted file. NOTE: this product is no longer developed.","severity":{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N","level":"high","assessor":"primary","from":"nvd"},"epss":{"day":"2026-11-09","score":0.03424,"percentile":0.89006,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":true,"fix_available":false},"cwes":["CWE-552"],"published":"2019-11-05T13:10:45Z","modified":"2026-10-24T10:30:36Z","exploits":[{"source":"pocgithub","id":"h4ckologic/CVE-2019-17221","title":"h4ckologic/CVE-2019-17221","date":"2020-01-16","url":"https://github.com/h4ckologic/CVE-2019-17221"}],"affected":[{"source":"ghsa","ecosystem":"npm","package":"phantomjs","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"last_affected":"2.1.1"}]}]},{"source":"osv","ecosystem":"npm","package":"phantomjs","ranges":[{"type":"SEMVER","events":[{"introduced":"0"},{"last_affected":"2.1.1"}]}]},{"source":"osv","ecosystem":"Ubuntu:16.04:LTS","package":"phantomjs","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.9.0-1","2.0.0+dfsg-1","2.1.1+dfsg-1"]},{"source":"osv","ecosystem":"Ubuntu:18.04:LTS","package":"phantomjs","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["2.1.1+dfsg-2"]},{"source":"osv","ecosystem":"Ubuntu:20.04:LTS","package":"phantomjs","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["2.1.1+dfsg-2","2.1.1+dfsg-2ubuntu1"]}],"products":[{"vendor":"phantomjs","product":"phantomjs"}],"references":[{"url":"https://www.darkmatter.ae/blogs/breaching-the-perimeter-phantomjs-arbitrary-file-read/","tags":["x_refsource_MISC","x_transferred","Exploit","Third Party Advisory","evidence","report"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2019-17221","tags":["advisory"]},{"url":"https://web.archive.org/web/20191220171022/https://www.darkmatter.ae/blogs/breaching-the-perimeter-phantomjs-arbitrary-file-read/"},{"url":"https://github.com/advisories/GHSA-x43g-gj9x-838x"},{"url":"https://github.com/Medium/phantomjs","tags":["package"]},{"url":"https://web.archive.org/web/20191220171022/https://www.darkmatter.ae/blogs/breaching-the-perimeter-phantomjs-arbitrary-file-read","tags":["web"]},{"url":"https://ubuntu.com/security/CVE-2019-17221","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2019-17221","tags":["report"]}],"sources":{"cve":[{"id":"CVE-2019-17221","description":"PhantomJS through 2.1.1 has an arbitrary file read vulnerability, as demonstrated by an XMLHttpRequest for a file:// URI. The vulnerability exists in the page.open() function of the webpage module, which loads a specified URL and calls a given callback. An attacker can supply a specially crafted HTML file, as user input, that allows reading arbitrary files on the filesystem. For example, if page.render() is the function callback, this generates a PDF or an image of the targeted file. NOTE: this product is no longer developed.","status":"published","published":"2019-11-05T13:10:45Z","modified":"2024-08-05T01:33:17.356Z","updated_at":"2026-11-02T14:20:24.678649Z"}],"euvd":[{"id":"EUVD-2022-5707","description":"PhantomJS through 2.1.1 has an arbitrary file read vulnerability, as demonstrated by an XMLHttpRequest for a file:// URI. The vulnerability exists in the page.open() function of the webpage module, which loads a specified URL and calls a given callback. An attacker can supply a specially crafted HTML file, as user input, that allows reading arbitrary files on the filesystem. For example, if page.render() is the function callback, this generates a PDF or an image of the targeted file. NOTE: this product is no longer developed.","status":"published","published":"2019-11-05T13:10:45Z","modified":"2024-08-05T01:33:17Z","updated_at":"2026-11-03T02:40:30.328063Z"}],"ghsa":[{"id":"GHSA-x43g-gj9x-838x","title":"PhantomJS Arbitrary File Read","description":"PhantomJS through 2.1.1 has an arbitrary file read vulnerability, as demonstrated by an XMLHttpRequest for a `file://` URI. The vulnerability exists in the `page.open()` function of the webpage module, which loads a specified URL and calls a given callback. An attacker can supply a specially crafted HTML file, as user input, that allows reading arbitrary files on the filesystem. For example, if `page.render()` is the function callback, this generates a PDF or an image of the targeted file. **NOTE**: this product is no longer developed.","status":"published","published":"2022-05-24T22:01:03Z","modified":"2023-10-19T18:55:55Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N","level":"high"}],"cwes":["CWE-552"],"updated_at":"2026-11-02T14:37:08.847568Z"}],"nvd":[{"id":"CVE-2019-17221","description":"PhantomJS through 2.1.1 has an arbitrary file read vulnerability, as demonstrated by an XMLHttpRequest for a file:// URI. The vulnerability exists in the page.open() function of the webpage module, which loads a specified URL and calls a given callback. An attacker can supply a specially crafted HTML file, as user input, that allows reading arbitrary files on the filesystem. For example, if page.render() is the function callback, this generates a PDF or an image of the targeted file. NOTE: this product is no longer developed.","status":"published","published":"2019-11-05T14:15:13.537Z","modified":"2026-06-17T02:23:30.113Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N","level":"high","assessor":"primary"},{"version":"2.0","score":5,"vector":"AV:N/AC:L/Au:N/C:P/I:N/A:N","level":"medium","assessor":"primary"}],"cwes":["CWE-552"],"updated_at":"2026-11-02T14:05:35.052973Z"}],"osv":[{"id":"CVE-2019-17221","description":"PhantomJS through 2.1.1 has an arbitrary file read vulnerability, as demonstrated by an XMLHttpRequest for a file:// URI. The vulnerability exists in the page.open() function of the webpage module, which loads a specified URL and calls a given callback. An attacker can supply a specially crafted HTML file, as user input, that allows reading arbitrary files on the filesystem. For example, if page.render() is the function callback, this generates a PDF or an image of the targeted file. NOTE: this product is no longer developed.","status":"published","published":"2019-11-05T14:15:13.537Z","modified":"2026-10-24T10:30:36.847044976Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N","level":"high"}],"updated_at":"2026-11-02T15:44:11.673963Z"},{"id":"GHSA-x43g-gj9x-838x","title":"PhantomJS Arbitrary File Read","description":"PhantomJS through 2.1.1 has an arbitrary file read vulnerability, as demonstrated by an XMLHttpRequest for a `file://` URI. The vulnerability exists in the `page.open()` function of the webpage module, which loads a specified URL and calls a given callback. An attacker can supply a specially crafted HTML file, as user input, that allows reading arbitrary files on the filesystem. For example, if `page.render()` is the function callback, this generates a PDF or an image of the targeted file. **NOTE**: this product is no longer developed.","status":"published","published":"2022-05-24T22:01:03Z","modified":"2023-11-08T04:01:23.069081Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N","level":"high"}],"cwes":["CWE-552"],"updated_at":"2026-11-02T15:46:59.484835Z"},{"id":"UBUNTU-CVE-2019-17221","description":"PhantomJS through 2.1.1 has an arbitrary file read vulnerability, as demonstrated by an XMLHttpRequest for a file:// URI. The vulnerability exists in the page.open() function of the webpage module, which loads a specified URL and calls a given callback. An attacker can supply a specially crafted HTML file, as user input, that allows reading arbitrary files on the filesystem. For example, if page.render() is the function callback, this generates a PDF or an image of the targeted file. NOTE: this product is no longer developed.","status":"published","published":"2019-11-05T14:15:00Z","modified":"2025-10-24T04:47:55Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N","level":"high"}],"updated_at":"2026-11-02T15:54:20.325378Z"}]}}
