Options for Twenty Twenty Security & Risk Analysis

wordpress.org/plugins/options-for-twenty-twenty

Adds powerful customizer options to modify all aspects of the default WordPress theme Twenty Twenty.

3K active installs v1.6.5 PHP 5.6+ WP 4.6+ Updated Dec 16, 2025
changecustomizemodifytwenty-twentytwentytwenty
100
A · Safe
CVEs total0
Unpatched0
Last CVENever
Safety Verdict

Is Options for Twenty Twenty Safe to Use in 2026?

Generally Safe

Score 100/100

Options for Twenty Twenty has no known CVEs and is actively maintained. It's a solid choice for most WordPress installations.

No known CVEs Updated 3mo ago
Risk Assessment

The 'options-for-twenty-twenty' plugin v1.6.5 exhibits a mixed security posture. On the positive side, it demonstrates good coding practices by avoiding dangerous functions, performing all SQL queries using prepared statements, and properly escaping nearly all output. The absence of file operations and external HTTP requests further reduces potential attack vectors. The plugin also has a clean vulnerability history, with no recorded CVEs, suggesting a generally well-maintained codebase.

However, a significant concern arises from the attack surface analysis. The plugin has one AJAX handler that lacks any authentication checks. This presents a direct entry point for unauthenticated users to interact with plugin functionality, potentially leading to unintended consequences or the exploitation of other vulnerabilities if they exist. While taint analysis shows no immediate critical or high severity issues, the absence of nonce checks on this unprotected AJAX handler is a notable weakness. The lack of capability checks also means that any functionality exposed via this AJAX handler could be accessed by any user, regardless of their WordPress role.

In conclusion, while the plugin benefits from a lack of historical vulnerabilities and strong internal code hygiene regarding SQL and output escaping, the presence of an unprotected AJAX endpoint is a critical security flaw. This single unprotected entry point significantly elevates the risk, as it bypasses essential WordPress security mechanisms. Addressing this unprotected AJAX handler should be the highest priority for improving the plugin's security.

Key Concerns

  • Unprotected AJAX handler
  • AJAX handler without nonce check
  • AJAX handler without capability check
Vulnerabilities
None known

Options for Twenty Twenty Security Vulnerabilities

No known vulnerabilities — this is a good sign.
Code Analysis
Analyzed Mar 16, 2026

Options for Twenty Twenty Code Analysis

Dangerous Functions
0
Raw SQL Queries
0
0 prepared
Unescaped Output
5
433 escaped
Nonce Checks
1
Capability Checks
0
File Operations
0
External Requests
0
Bundled Libraries
0

Output Escaping

99% escaped438 total outputs
Attack Surface
1 unprotected

Options for Twenty Twenty Attack Surface

Entry Points1
Unprotected1

AJAX Handlers 1

authwp_ajax_dismiss_oftt_notice_handleroptions-for-twenty-twenty.php:39
WordPress Hooks 22
filterplugin_row_metaincludes\class-oftt-common.php:287
actioncustomize_registeroptions-for-twenty-twenty.php:30
actionwp_headoptions-for-twenty-twenty.php:31
actioncustomize_preview_initoptions-for-twenty-twenty.php:32
actioncustomize_controls_enqueue_scriptsoptions-for-twenty-twenty.php:33
actionadmin_noticesoptions-for-twenty-twenty.php:38
actioncustomize_controls_enqueue_scriptsoptions-for-twenty-twenty.php:40
actionwp_footeroptions-for-twenty-twenty.php:44
filterget_post_metadataoptions-for-twenty-twenty.php:45
actionwp_enqueue_scriptsoptions-for-twenty-twenty.php:46
actioncustomize_registeroptions-for-twenty-twenty.php:50
filtertwentytwenty_site_logooptions-for-twenty-twenty.php:2041
filterpost_thumbnail_htmloptions-for-twenty-twenty.php:2132
filterwp_footeroptions-for-twenty-twenty.php:2299
actionwp_footeroptions-for-twenty-twenty.php:2353
filtertwentytwenty_show_categories_in_entry_headeroptions-for-twenty-twenty.php:2368
filtertwentytwenty_post_meta_location_single_topoptions-for-twenty-twenty.php:2566
actionwp_footeroptions-for-twenty-twenty.php:2572
filtertwentytwenty_post_meta_location_single_bottomoptions-for-twenty-twenty.php:2805
filterwp_footeroptions-for-twenty-twenty.php:2830
filterget_custom_logooptions-for-twenty-twenty.php:3029
actionadmin_noticesoptions-for-twenty-twenty.php:3338
Maintenance & Trust

Options for Twenty Twenty Maintenance & Trust

Maintenance Signals

WordPress version tested6.9.4
Last updatedDec 16, 2025
PHP min version5.6
Downloads106K

Community Trust

Rating94/100
Number of ratings31
Active installs3K
Developer Profile

Options for Twenty Twenty Developer Profile

Oliver Campion

12 plugins · 43K total installs

79
trust score
Avg Security Score
100/100
Avg Patch Time
869 days
View full developer profile
Detection Fingerprints

How We Detect Options for Twenty Twenty

Patterns used to identify this plugin on WordPress sites during automated security audits and web crawling.

Asset Fingerprints

Asset Paths
/wp-content/plugins/options-for-twenty-twenty/js/oftt-customizer-controls.js/wp-content/plugins/options-for-twenty-twenty/js/oftt-customizer-preview.js/wp-content/plugins/options-for-twenty-twenty/css/oftt-customizer-styles.css/wp-content/plugins/options-for-twenty-twenty/css/oftt-styles.css
Script Paths
/wp-content/plugins/options-for-twenty-twenty/js/oftt-customizer-controls.js/wp-content/plugins/options-for-twenty-twenty/js/oftt-customizer-preview.js
Version Parameters
options-for-twenty-twenty/js/oftt-customizer-controls.js?ver=options-for-twenty-twenty/js/oftt-customizer-preview.js?ver=options-for-twenty-twenty/css/oftt-customizer-styles.css?ver=options-for-twenty-twenty/css/oftt-styles.css?ver=

HTML / DOM Fingerprints

CSS Classes
oftt-disable-fontoftt-force-fixed-backgroundoftt-hide-mobile-backgroundoftt-link-underline-removed
Data Attributes
data-oftt-force-template
JS Globals
oftt_customizer_controls_paramsoftt_customizer_preview_params
FAQ

Frequently Asked Questions about Options for Twenty Twenty