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.
The product makes files or directories accessible to unauthorized actors, even though they should not be.
Name | Vendor | Start Version | End Version |
---|---|---|---|
Phantomjs | Phantomjs | * | 2.1.1 (including) |
Phantomjs | Ubuntu | bionic | * |
Phantomjs | Ubuntu | disco | * |
Phantomjs | Ubuntu | eoan | * |
Phantomjs | Ubuntu | esm-apps/bionic | * |
Phantomjs | Ubuntu | esm-apps/focal | * |
Phantomjs | Ubuntu | esm-apps/xenial | * |
Phantomjs | Ubuntu | focal | * |
Phantomjs | Ubuntu | trusty | * |
Phantomjs | Ubuntu | upstream | * |
Phantomjs | Ubuntu | xenial | * |
Web servers, FTP servers, and similar servers may store a set of files underneath a “root” directory that is accessible to the server’s users. Applications may store sensitive files underneath this root without also using access control to limit which users may request those files, if any. Alternately, an application might package multiple files or directories into an archive file (e.g., ZIP or tar), but the application might not exclude sensitive files that are underneath those directories. In cloud technologies and containers, this weakness might present itself in the form of misconfigured storage accounts that can be read or written by a public or anonymous user.