Safe Editor Security & Risk Analysis

wordpress.org/plugins/safe-editor

Add custom css/javascript to your website without worrying that your changes will be overwritten with the future theme/plugin updates.

80 active installs v1.2.1 PHP + WP 3.8+ Updated May 16, 2016
css-changeseditorjavascript-chnagesupdates
84
B · Generally Safe
CVEs total1
Unpatched0
Last CVEMay 6, 2016
Download
Safety Verdict

Is Safe Editor Safe to Use in 2026?

Mostly Safe

Score 84/100

Safe Editor is generally safe to use though it hasn't been updated recently. 1 past CVE were resolved. Keep it updated.

1 known CVELast CVE: May 6, 2016Updated 9yr ago
Risk Assessment

The plugin 'safe-editor' v1.2.1 exhibits a mixed security posture. On the positive side, it has a very small attack surface with only one AJAX handler, which is stated to have an authentication check. Furthermore, there are no detected dangerous functions, SQL queries are all prepared, and no file operations or external HTTP requests are present. The presence of a nonce check is also a good security practice. However, a significant concern arises from the complete lack of output escaping. This indicates that any data rendered to the user interface, if not properly sanitized before reaching the output, could be vulnerable to Cross-Site Scripting (XSS) attacks. The vulnerability history, although old, reveals a past high-severity XSS vulnerability, which aligns with the current finding of unescaped output. While the vulnerability is marked as unpatched (0 currently unpatched), the historical presence of a high-severity XSS issue, coupled with the lack of output escaping in the current analysis, suggests a persistent weakness in handling user-provided data for display.

In conclusion, while the plugin demonstrates good practices in areas like SQL injection prevention and limiting attack vectors, the critical flaw of unescaped output presents a substantial risk. The historical vulnerability reinforces this concern. The lack of capability checks on the AJAX handler, although it has an authentication check, is also a potential area for improvement to ensure only authorized users can trigger the functionality. Therefore, despite some strengths, the risk associated with unescaped output and past XSS vulnerabilities cannot be overlooked.

Key Concerns

  • Unescaped output
  • Past high severity vulnerability (XSS)
  • Missing capability checks on AJAX
Vulnerabilities
1

Safe Editor Security Vulnerabilities

CVEs by Year

1 CVE in 2016
2016
Patched Has unpatched

Severity Breakdown

High
1

1 total CVE

CVE-2016-10976high · 7.2Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')

Safe Editor < 1.2 - Cross-Site Scripting

May 6, 2016 Patched in 1.2 (2818d)
Code Analysis
Analyzed Mar 16, 2026

Safe Editor Code Analysis

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

Output Escaping

0% escaped6 total outputs
Data Flows
All sanitized

Data Flow Analysis

2 flows
se_save (index.php:179)
Source (user input) Sink (dangerous op) Sanitizer Transform Unsanitized Sanitized
Attack Surface

Safe Editor Attack Surface

Entry Points1
Unprotected0

AJAX Handlers 1

authwp_ajax_se_saveindex.php:200
WordPress Hooks 4
actioninitindex.php:14
actionadmin_menuindex.php:16
actionwp_footerindex.php:158
actionwp_headindex.php:159
Maintenance & Trust

Safe Editor Maintenance & Trust

Maintenance Signals

WordPress version tested3.9.40
Last updatedMay 16, 2016
PHP min version
Downloads4K

Community Trust

Rating100/100
Number of ratings2
Active installs80
Developer Profile

Safe Editor Developer Profile

forde

1 plugin · 80 total installs

68
trust score
Avg Security Score
84/100
Avg Patch Time
2818 days
View full developer profile
Detection Fingerprints

How We Detect Safe Editor

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

Asset Fingerprints

Asset Paths
/wp-content/plugins/safe-editor/theme/ambiance.css/wp-content/plugins/safe-editor/theme/monokai.css/wp-content/plugins/safe-editor/theme/solarized.css/wp-content/plugins/safe-editor/theme/tomorrow-night-eighties.css/wp-content/plugins/safe-editor/codemirror/codemirror.css/wp-content/plugins/safe-editor/codemirror/codemirror.js/wp-content/plugins/safe-editor/codemirror/mode/css/css.js/wp-content/plugins/safe-editor/codemirror/mode/javascript/javascript.js+2 more
Script Paths
/wp-content/plugins/safe-editor/codemirror/codemirror.js/wp-content/plugins/safe-editor/codemirror/mode/css/css.js/wp-content/plugins/safe-editor/codemirror/mode/javascript/javascript.js/wp-content/plugins/safe-editor/js/safe_editor.js
Version Parameters
safe-editor/theme/ambiance.css?ver=safe-editor/theme/monokai.css?ver=safe-editor/theme/solarized.css?ver=safe-editor/theme/tomorrow-night-eighties.css?ver=safe-editor/codemirror/codemirror.css?ver=safe-editor/codemirror/codemirror.js?ver=safe-editor/codemirror/mode/css/css.js?ver=safe-editor/codemirror/mode/javascript/javascript.js?ver=safe-editor/css/safe_editor.css?ver=safe-editor/js/safe_editor.js?ver=

HTML / DOM Fingerprints

CSS Classes
se_settings_headingse_descnav-tab-wrappernav-tabnav-tab-activesafe_editor_wrappertab_visse_tab_desc+6 more
Data Attributes
data-type="css"data-type="js"
JS Globals
scriptsajax
REST Endpoints
/wp-json/
FAQ

Frequently Asked Questions about Safe Editor