{"id":"CVE-2026-121379","kind":"vulnerability","aliases":["CVE-2026-121379"],"related":[],"title":"Tournamatch WordPress plugin lets subscribers delete arbitrary server files","description":"The Tournamatch WordPress plugin before 4.7.1 does not validate or restrict the path of a previously stored profile or team image before deleting it when a new image is uploaded, allowing users with a role as low as Subscriber to delete arbitrary files on the server, such as wp-config.php, which can lead to a full site takeover.","summary":"The Tournamatch WordPress plugin does not check the stored path of a profile or team image before deleting it when a new image is uploaded. A logged-in user with the Subscriber role can delete arbitrary files such as wp-config.php, which can lead to full site takeover.","severity":"high","cvss":null,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["package","self-hosted","tournamatch","wordpress"],"not_affected_if":["plugin-not-installed","plugin-version-4.7.1-or-later","registration-closed"],"how_to_check":"- Check the installed Tournamatch plugin version in the WordPress admin Plugins page or the plugin header in `wp-content/plugins/`\n- Confirm whether open subscriber registration is enabled on the site","fix":"- Tournamatch plugin: move to `4.7.1` or later","status":"open","published_at":"2026-11-07T06:16:58+00:00","first_seen_at":"2026-11-07T06:46:04+00:00","triaged_at":"2026-11-07T06:48:26+00:00","updated_at":"2026-11-07T06:48:26+00:00","category":"package","confidence":0.8,"triage":{"at":"2026-11-07T06:48:26Z","model":"claude-haiku-5-5","output":{"fix":"- Tournamatch plugin: move to `4.7.1` or later","reach":"internet","title":"Tournamatch WordPress plugin lets subscribers delete arbitrary server files","impact":"high","summary":"The Tournamatch WordPress plugin does not check the stored path of a profile or team image before deleting it when a new image is uploaded. A logged-in user with the Subscriber role can delete arbitrary files such as wp-config.php, which can lead to full site takeover.","audience":"businesses","category":"package","nicknames":[],"who_cares":["wordpress","tournamatch","self-hosted"],"confidence":0.8,"fix_status":"available","needs_auth":"yes","worst_case":"Arbitrary server files deleted, including wp-config.php, enabling full site takeover","analyst_note":"Confirm the affected version range and the fixed release in the NVD entry or plugin changelog; sources only give 'before 4.7.1'.","how_to_check":"- Check the installed Tournamatch plugin version in the WordPress admin Plugins page or the plugin header in `wp-content/plugins/`\n- Confirm whether open subscriber registration is enabled on the site","plain_action":"","needs_analyst":true,"not_affected_if":["plugin-version-4.7.1-or-later","plugin-not-installed","registration-closed"],"who_is_affected":"Sites running the Tournamatch plugin before 4.7.1 where users can hold a Subscriber account, which includes sites with open registration. Sites without this plugin, or running 4.7.1 or later, are not affected.","user_interaction":"no","needs_special_setup":"no","severity_if_unknown":"high"},"cost_usd":0.000711,"input_tokens":4228,"output_tokens":576,"severity_before":"unknown"},"analyst_status":null,"analyst_note":null,"search":"'-121379':12A,15A '-2026':11A,14A '4.7.1':75C 'allow':100C 'arbitrari':7A,58B,111C 'check':28B 'cve':10A,13A 'delet':6A,39B,57B,92C,110C 'file':9A,59B,112C 'full':67B,124C 'host':19B 'imag':37B,44B,90C,97C 'lead':65B,121C 'let':4A 'log':49B 'logged-in':48B 'low':106C 'new':43B,96C 'packag':16B 'path':31B,82C 'plugin':3A,25B,73C 'previous':85C 'profil':34B,87C 'restrict':80C 'role':55B,104C 'self':18B 'self-host':17B 'server':8A,115C 'site':68B,125C 'store':30B,86C 'subscrib':5A,54B,108C 'takeov':69B,126C 'team':36B,89C 'tournamatch':1A,20B,23B,71C 'upload':46B,99C 'user':51B,101C 'valid':78C 'wordpress':2A,21B,24B,72C 'wp-config.php':62B,118C","nicknames":[],"mitigations":[],"who_affected":"Sites running the Tournamatch plugin before 4.7.1 where users can hold a Subscriber account, which includes sites with open registration. Sites without this plugin, or running 4.7.1 or later, are not affected.","tier":"B","verified":{},"analyst_revisit_at":null,"fix_status":"available","audience":"businesses","plain_action":null,"pkeys":[],"ptokens":[],"labels":["high","package","selfhosted","tournamatch","wordpress"],"campaign_type":null,"search_a":"'-121379':12A,15A '-2026':11A,14A 'arbitrari':7A 'cve':10A,13A 'delet':6A 'file':9A 'let':4A 'plugin':3A 'server':8A 'subscrib':5A 'tournamatch':1A 'wordpress':2A","search_b":"'arbitrari':58B 'check':28B 'delet':39B,57B 'file':59B 'full':67B 'host':19B 'imag':37B,44B 'lead':65B 'log':49B 'logged-in':48B 'new':43B 'packag':16B 'path':31B 'plugin':25B 'profil':34B 'role':55B 'self':18B 'self-host':17B 'site':68B 'store':30B 'subscrib':54B 'takeov':69B 'team':36B 'tournamatch':20B,23B 'upload':46B 'user':51B 'wordpress':21B,24B 'wp-config.php':62B","search_c":"'4.7.1':75C 'allow':100C 'arbitrari':111C 'delet':92C,110C 'file':112C 'full':124C 'imag':90C,97C 'lead':121C 'low':106C 'new':96C 'path':82C 'plugin':73C 'previous':85C 'profil':87C 'restrict':80C 'role':104C 'server':115C 'site':125C 'store':86C 'subscrib':108C 'takeov':126C 'team':89C 'tournamatch':71C 'upload':99C 'user':101C 'valid':78C 'wordpress':72C 'wp-config.php':118C","first_public_at":"2026-11-07T06:16:58+00:00","kev":null,"cvss_vector":null,"cvss_by":null,"poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-121379","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-121379","severity":null,"published_at":"2026-11-07T06:16:58+00:00","modified_at":"2026-11-07T06:16:58+00:00","first_seen_at":"2026-11-07T06:46:04+00:00","fetched_at":"2026-11-07T06:46:04+00:00","note":null}],"documents":[],"exploit_sources":[],"notice":"Free to read, with fair use of about 60 pages a minute. For higher limits or API access: sales@infrastack.ai"}