{"id":"CVE-2016-20103","kind":"vulnerability","aliases":["CVE-2016-20103"],"related":[],"title":"WordPress Cherry Plugin: unauthenticated file download reads wp-config.php","description":"Cherry Plugin for WordPress before 1.2.7 contains a path traversal vulnerability that allows unauthenticated attackers to download arbitrary files via the 'file' parameter. Attackers can send GET requests to /admin/import-export/download-content.php with traversal sequences like ../../../../../wp-config.php to read database credentials, since the script passes input directly to readfile(). Exploitation evidence was first observed by the Shadowserver Foundation on 2023-10-19.","summary":"Cherry Plugin for WordPress before 1.2.7 passes the 'file' parameter straight to readfile(), so anyone can request arbitrary server files with path traversal. An attacker can read wp-config.php and obtain database credentials without logging in.","severity":"high","cvss":8.7,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["package","self-hosted","wordpress"],"not_affected_if":["plugin-not-installed","version-1.2.7-or-later"],"how_to_check":"Check whether the Cherry Plugin is installed and its version is below 1.2.7 (for example, look in wp-content/plugins/ for a cherry directory and its plugin header).\nReview web server logs for GET requests to /admin/import-export/download-content.php containing '../'.","fix":"Update Cherry Plugin to 1.2.7 or later, or remove the plugin.\nIf exposed, rotate database credentials and any secrets stored in wp-config.php.","status":"open","published_at":"2026-10-20T21:17:14+00:00","first_seen_at":"2026-10-23T21:57:21+00:00","triaged_at":"2026-10-23T22:37:15+00:00","updated_at":"2026-10-23T22:37:15+00:00","category":"package","confidence":0.8,"triage":{"at":"2026-10-23T22:37:15Z","model":"claude-haiku-5-5","output":{"fix":"Update Cherry Plugin to 1.2.7 or later, or remove the plugin.\nIf exposed, rotate database credentials and any secrets stored in wp-config.php.","reach":"internet","title":"WordPress Cherry Plugin: unauthenticated file download reads wp-config.php","impact":"high","summary":"Cherry Plugin for WordPress before 1.2.7 passes the 'file' parameter straight to readfile(), so anyone can request arbitrary server files with path traversal. An attacker can read wp-config.php and obtain database credentials without logging in.","category":"package","who_cares":["wordpress","self-hosted"],"confidence":0.8,"needs_auth":"no","worst_case":"Attacker reads wp-config.php and obtains database credentials","analyst_note":"Sources show Shadowserver saw exploitation on 2023-10-19 but the record says not exploited in the wild; confirm exploitation status and the exact fixed version at NVD.","how_to_check":"Check whether the Cherry Plugin is installed and its version is below 1.2.7 (for example, look in wp-content/plugins/ for a cherry directory and its plugin header).\nReview web server logs for GET requests to /admin/import-export/download-content.php containing '../'.","needs_analyst":true,"not_affected_if":["plugin-not-installed","version-1.2.7-or-later"],"user_interaction":"no","needs_special_setup":"no","severity_if_unknown":"high"},"cost_usd":0.000553,"input_tokens":2977,"output_tokens":510,"severity_before":"high"},"analyst_status":null,"analyst_note":null,"search":"'-10':112C '-19':113C '-20103':11A,14A '-2016':10A,13A '/../../../../wp-config.php':88C '/admin/import-export/download-content.php':83C '1.2.7':25B,59C '2023':111C 'allow':66C 'anyon':34B 'arbitrari':37B,71C 'attack':44B,68C,77C 'cherri':2A,20B,54C 'contain':60C 'credenti':51B,92C 'cve':9A,12A 'databas':50B,91C 'direct':98C 'download':6A,70C 'evid':102C 'exploit':101C 'file':5A,28B,39B,72C,75C 'first':104C 'foundat':109C 'get':80C 'host':18B 'input':97C 'like':87C 'log':53B 'observ':105C 'obtain':49B 'packag':15B 'paramet':29B,76C 'pass':26B,96C 'path':41B,62C 'plugin':3A,21B,55C 'read':7A,46B,90C 'readfil':32B,100C 'request':36B,81C 'script':95C 'self':17B 'self-host':16B 'send':79C 'sequenc':86C 'server':38B 'shadowserv':108C 'sinc':93C 'straight':30B 'travers':42B,63C,85C 'unauthent':4A,67C 'via':73C 'vulner':64C 'without':52B 'wordpress':1A,19B,23B,57C 'wp-config.php':8A,47B","nicknames":[],"mitigations":[],"who_affected":null,"tier":"B","verified":{},"analyst_revisit_at":null,"first_public_at":"2026-10-20T21:17:14+00:00","kev":null,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X","cvss_by":"disclosure@vulncheck.com","poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2016-20103","url":"https://nvd.nist.gov/vuln/detail/CVE-2016-20103","severity":null,"published_at":"2026-10-20T21:17:14+00:00","modified_at":"2026-10-22T17:40:46+00:00","first_seen_at":"2026-10-23T21:57:21+00:00","fetched_at":"2026-10-23T22:28:58+00:00","note":null}],"documents":[],"notice":"Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai"}