Create DB Tables <= 1.2.1 - Missing Authorization to Authenticated (Subscriber+) Arbitrary Database Table Creation/Deletion via admin-post.php
- Published
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
- Exploitation: none
- Automatable: yes
- Technical impact: partial
Summary
The Create DB Tables plugin for WordPress is vulnerable to authorization bypass in all versions up to and including 1.2.1. The plugin registers admin_post action hooks for creating tables (admin_post_add_table) and deleting tables (admin_post_delete_db_table) without implementing any capability checks via current_user_can() or nonce verification via wp_verify_nonce()/check_admin_referer(). The admin_post hook only requires the user to be logged in, meaning any authenticated user including Subscribers can access these endpoints. The cdbt_delete_db_table() function takes a user-supplied table name from $_POST['db_table'] and executes a DROP TABLE SQL query, allowing any authenticated attacker to delete any database table including critical WordPress core tables such as wp_users or wp_options. The cdbt_create_new_table() function similarly allows creating arbitrary tables. This makes it possible for authenticated attackers, with Subscriber-level access and above, to create arbitrary database tables and delete any existing database table, potentially destroying the entire WordPress installation.
Timeline
- CVE published
- CISA SSVC assessment
Exploitation: none · Automatable: yes · Technical impact: partial
- Record last updated
Affected versions
- jppreus Create DB Tables
through 1.2.1
References 13
plugins.trac.wordpress.org
- browser/create-db-tables/trunk/create-db-tables.php#L376
- browser/create-db-tables/tags/1.2.1/create-db-tables.php#L376
- browser/create-db-tables/trunk/create-new-table.php#L69
- browser/create-db-tables/tags/1.2.1/create-new-table.php#L69
- browser/create-db-tables/trunk/create-db-tables.php#L370
- browser/create-db-tables/tags/1.2.1/create-db-tables.php#L370
- browser/create-db-tables/trunk/create-new-table.php#L14
- browser/create-db-tables/tags/1.2.1/create-new-table.php#L14
- browser/create-db-tables/trunk/create-db-tables.php#L405
- browser/create-db-tables/tags/1.2.1/create-db-tables.php#L405
- browser/create-db-tables/trunk/create-db-tables.php#L408
- browser/create-db-tables/tags/1.2.1/create-db-tables.php#L408