{"id":"CVE-2020-27387","aliases":["EUVD-2020-19899","GHSA-fmrq-56mh-96f5"],"status":"published","title":"An unrestricted file upload issue in HorizontCMS through 1.0.0-beta allows an authenticated...","description":"An unrestricted file upload issue in HorizontCMS through 1.0.0-beta allows an authenticated remote attacker (with access to the FileManager) to upload and execute arbitrary PHP code by uploading a PHP payload, and then using the FileManager's rename function to provide the payload (which will receive a random name on the server) with the PHP extension, and finally executing the PHP file via an HTTP GET request to /storage/\u003cphp_file_name\u003e. NOTE: the vendor has patched this while leaving the version number at 1.0.0-beta.","severity":{"version":"3.1","score":8.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","level":"high","assessor":"primary","from":"nvd"},"epss":{"day":"2026-11-10","score":0.18461,"percentile":0.97266,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":true,"fix_available":false},"cwes":["CWE-434"],"published":"2020-11-05T01:18:12Z","modified":"2026-10-20T10:54:19Z","exploits":[{"source":"metasploit","id":"exploit/multi/http/horizontcms_upload_exec","title":"HorizontCMS Arbitrary PHP File Upload","type":"exploit","platform":"Linux,PHP,Windows","date":"2020-09-24","verified":true,"url":"https://www.rapid7.com/db/modules/exploit/multi/http/horizontcms_upload_exec"}],"products":[{"vendor":"horizontcms_project","product":"horizontcms"}],"references":[{"url":"https://github.com/rapid7/metasploit-framework/pull/14340","tags":["x_refsource_MISC","x_transferred","Third Party Advisory","advisory"]},{"url":"https://github.com/ttimot24/HorizontCMS/commit/436b5ab679fd27afa3d99c023dbe103113da4fee","tags":["x_refsource_MISC","x_transferred","Patch","Third Party Advisory","fix"]},{"url":"https://blog.vonahi.io/whats-in-a-re-name/","tags":["x_refsource_MISC","x_transferred","Exploit","Patch","Third Party Advisory","fix"]},{"url":"http://packetstormsecurity.com/files/160046/HorizontCMS-1.0.0-beta-Shell-Upload.html","tags":["x_refsource_MISC","x_transferred","Exploit","Third Party Advisory","VDB Entry","evidence"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2020-27387"},{"url":"https://github.com/advisories/GHSA-fmrq-56mh-96f5"}],"sources":{"cve":[{"id":"CVE-2020-27387","description":"An unrestricted file upload issue in HorizontCMS through 1.0.0-beta allows an authenticated remote attacker (with access to the FileManager) to upload and execute arbitrary PHP code by uploading a PHP payload, and then using the FileManager's rename function to provide the payload (which will receive a random name on the server) with the PHP extension, and finally executing the PHP file via an HTTP GET request to /storage/\u003cphp_file_name\u003e. NOTE: the vendor has patched this while leaving the version number at 1.0.0-beta.","status":"published","published":"2020-11-05T01:18:12Z","modified":"2024-08-04T16:11:36.59Z","updated_at":"2026-11-02T14:35:53.552996Z"}],"euvd":[{"id":"EUVD-2020-19899","description":"An unrestricted file upload issue in HorizontCMS through 1.0.0-beta allows an authenticated remote attacker (with access to the FileManager) to upload and execute arbitrary PHP code by uploading a PHP payload, and then using the FileManager's rename function to provide the payload (which will receive a random name on the server) with the PHP extension, and finally executing the PHP file via an HTTP GET request to /storage/\u003cphp_file_name\u003e. NOTE: the vendor has patched this while leaving the version number at 1.0.0-beta.","status":"published","published":"2020-11-05T01:18:12Z","modified":"2024-08-04T16:11:36Z","updated_at":"2026-11-03T03:07:12.940476Z"}],"ghsa":[{"id":"GHSA-fmrq-56mh-96f5","title":"An unrestricted file upload issue in HorizontCMS through 1.0.0-beta allows an authenticated...","description":"An unrestricted file upload issue in HorizontCMS through 1.0.0-beta allows an authenticated remote attacker (with access to the FileManager) to upload and execute arbitrary PHP code by uploading a PHP payload, and then using the FileManager's rename function to provide the payload (which will receive a random name on the server) with the PHP extension, and finally executing the PHP file via an HTTP GET request to /storage/\u003cphp_file_name\u003e. NOTE: the vendor has patched this while leaving the version number at 1.0.0-beta.","status":"published","published":"2022-05-24T17:33:14Z","modified":"2023-01-31T05:08:21Z","cvss":[{"version":"3.1","score":8.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","level":"high"}],"cwes":["CWE-434"],"updated_at":"2026-11-02T14:49:23.285558Z"}],"nvd":[{"id":"CVE-2020-27387","description":"An unrestricted file upload issue in HorizontCMS through 1.0.0-beta allows an authenticated remote attacker (with access to the FileManager) to upload and execute arbitrary PHP code by uploading a PHP payload, and then using the FileManager's rename function to provide the payload (which will receive a random name on the server) with the PHP extension, and finally executing the PHP file via an HTTP GET request to /storage/\u003cphp_file_name\u003e. NOTE: the vendor has patched this while leaving the version number at 1.0.0-beta.","status":"published","published":"2020-11-05T02:15:12.067Z","modified":"2026-06-17T03:09:12.247Z","cvss":[{"version":"3.1","score":8.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","level":"high","assessor":"primary"},{"version":"2.0","score":6.5,"vector":"AV:N/AC:L/Au:S/C:P/I:P/A:P","level":"medium","assessor":"primary"}],"cwes":["CWE-434"],"updated_at":"2026-11-02T14:06:21.80969Z"}],"osv":[{"id":"CVE-2020-27387","description":"An unrestricted file upload issue in HorizontCMS through 1.0.0-beta allows an authenticated remote attacker (with access to the FileManager) to upload and execute arbitrary PHP code by uploading a PHP payload, and then using the FileManager's rename function to provide the payload (which will receive a random name on the server) with the PHP extension, and finally executing the PHP file via an HTTP GET request to /storage/\u003cphp_file_name\u003e. NOTE: the vendor has patched this while leaving the version number at 1.0.0-beta.","status":"published","published":"2020-11-05T02:15:12.067Z","modified":"2026-10-20T10:54:19.116861737Z","cvss":[{"version":"3.1","score":8.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","level":"high"}],"updated_at":"2026-11-02T15:44:16.248747Z"}]}}
