Security
Headlines
HeadlinesLatestCVEs

Headline

CVE-2019-1010257: PDF download path improperly sanitised

An Information Disclosure / Data Modification issue exists in article2pdf_getfile.php in the article2pdf Wordpress plugin 0.24, 0.25, 0.26, 0.27. A URL can be constructed which allows overriding the PDF file’s path leading to any PDF whose path is known and which is readable to the web server can be downloaded. The file will be deleted after download if the web server has permission to do so. For PHP versions before 5.3, any file can be read by null terminating the string left of the file extension.

CVE
#web#wordpress#php#perl#pdf

Skip to content

  • When visiting the PDF download link which the original PDF generation
    link redirects to, the file path is constructed from a combination of
    fixed strings and the strings provided via the query string of the
    download URL. The download URL has the form
    http://www.example.com/wp-content/plugins/article2pdf/article2pdf_getfile.php?p=xxx&r=yyy&d=zzz
    where xxx is a base64 encoded absolute string, xxx is a short hex hash
    and zzz is the base64 encoded URL title slug of the post the PDF was
    generated from. While the plugin attempts to sanitise these input
    parameters to not allow path traversal, this sanitisation is
    insufficient and can be fully or partially circumvented depending on
    the PHP version the WordPress instance is running on.

    In the case of PHP version <5.3 it is possible to read any file the
    user the plugin is executed under has read access to by just encoding
    the full file path in the parameter “d” and terminating that string
    with a null-byte. The parameter “p” must not be empty but can contain
    any value. The parameter “r” may be empty but its value is of no
    significance. If the user that the script is executed as has write
    access to the file or the directory it is stored in, the file will be
    deleted after it has been downloaded. If the user has no write access,
    an error message may be shown at the end of the file contents
    offered which discloses the WordPress instance’s install directory on
    the server.

    In the case of PHP version >=5.3, null-termination will no longer cut
    off the string. As the generated file name ends with a fixed string
    “.pdf”, only files with that file ending can be read. The parameter “d”
    may be any directory on the server. The parameter “p” needs to contain
    8 backspace characters to delete a prepended fixed string from the file
    name while the parameter “r” must contain exactly one backspace. The
    actual file name (without the “.pdf”) can then be appended to the
    backspaces in either parameter “p” or parameter “r”. It is also
    possible to have “p” contain one random character and then have 10
    backspace characters followed by the actual file name (again,
    without the “.pdf”) stored in parameter “r”.

  • The topic ‘PDF download path improperly sanitised’ is closed to new replies.

Related news

CVE-2019-1000031: [article2pdf (Wordpress plug-in)] Multiple vulnerabilities (CVE-2019-1000031, CVE-2019-1010257)

A disk space or quota exhaustion issue exists in article2pdf_getfile.php in the article2pdf Wordpress plugin 0.24, 0.25, 0.26, 0.27. Visiting PDF generation link but not following the redirect will leave behind a PDF file on disk which will never be deleted by the plug-in.

CVE: Latest News

CVE-2023-50976: Transactions API Authorization by oleiman · Pull Request #14969 · redpanda-data/redpanda
CVE-2023-6905
CVE-2023-6903
CVE-2023-6904
CVE-2023-3907