M Chart Security & Risk Analysis

wordpress.org/plugins/m-chart

Manage data sets and display them as charts in WordPress.

4K active installs v1.12 PHP + WP + Updated Mar 1, 2026
chartjschartsgraphshighchartstables
100
A · Safe
CVEs total1
Unpatched0
Last CVEJan 19, 2023
Safety Verdict

Is M Chart Safe to Use in 2026?

Generally Safe

Score 100/100

M Chart has a strong security track record. Known vulnerabilities have been patched promptly.

1 known CVELast CVE: Jan 19, 2023Updated 1mo ago
Risk Assessment

The m-chart plugin v1.12 exhibits a generally strong security posture, characterized by good practices in several key areas. The static analysis reveals a comprehensive use of prepared statements for SQL queries, a high percentage of properly escaped output, and the presence of nonce and capability checks, indicating a deliberate effort to mitigate common web vulnerabilities. The plugin also boasts a contained attack surface with all identified entry points (AJAX handlers, REST API routes, and shortcodes) appearing to have authorization checks, and no cron events or external HTTP requests were detected, further limiting potential exposure.

However, a critical area of concern arises from the taint analysis, which identified one flow with an unsanitized path. While no critical or high severity taint flows were reported, even a single unsanitized path presents a risk for potential injection attacks, especially if it involves user-controlled input that is not adequately validated or escaped before being processed or displayed. The vulnerability history, which includes one medium severity CVE for Cross-Site Scripting in the past, coupled with the presence of an unsanitized path, suggests a pattern of potential input validation weaknesses that could be exploited.

In conclusion, m-chart v1.12 is built on a foundation of good security practices, particularly in its handling of database operations and output escaping. The plugin's comprehensive use of authentication and authorization checks on its entry points is commendable. The primary weakness lies in the single identified unsanitized path in the taint analysis, which, combined with past XSS vulnerabilities, warrants careful consideration and a recommendation for thorough code review of that specific flow. The absence of currently unpatched CVEs is a positive sign, but the historical XSS vulnerability and the taint analysis result highlight the need for ongoing vigilance and robust input sanitization.

Key Concerns

  • Flow with unsanitized path detected
  • Previous medium severity XSS vulnerability
Vulnerabilities
1

M Chart Security Vulnerabilities

CVEs by Year

1 CVE in 2023
2023
Patched Has unpatched

Severity Breakdown

Medium
1

1 total CVE

CVE-2023-23892medium · 5.4Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')

M Chart <= 1.9.4 - Authenticated (Contributor+) Stored Cross-Site Scripting

Jan 19, 2023 Patched in 1.10 (369d)
Code Analysis
Analyzed Mar 16, 2026

M Chart Code Analysis

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

Output Escaping

94% escaped367 total outputs
Data Flows
1 unsanitized

Data Flow Analysis

4 flows1 with unsanitized paths
save_settings (components\class-m-chart-admin.php:119)
Source (user input) Sink (dangerous op) Sanitizer Transform Unsanitized Sanitized
Attack Surface

M Chart Attack Surface

Entry Points7
Unprotected0

AJAX Handlers 3

authwp_ajax_m_chart_export_csvcomponents\class-m-chart-admin.php:29
authwp_ajax_m_chart_get_chart_argscomponents\class-m-chart-admin.php:30
authwp_ajax_m_chart_import_csvcomponents\class-m-chart-admin.php:31

REST API Routes 2

GET/wp-json/m-chart/v1/options/components\class-m-chart-block.php:78
GET/wp-json/m-chart/v1/graphs(?:/(?P<s>([a-zA-Z0-9_\- ,]|%20)+))?components\class-m-chart-block.php:110

Shortcodes 2

[chart] components\class-m-chart.php:100
[chart-share] components\class-m-chart.php:101
WordPress Hooks 25
actionadmin_initcomponents\class-m-chart-admin.php:25
actionadmin_menucomponents\class-m-chart-admin.php:26
actioncurrent_screencomponents\class-m-chart-admin.php:27
actionadmin_footercomponents\class-m-chart-admin.php:28
actionedit_form_before_permalinkcomponents\class-m-chart-admin.php:32
actionm_chart_settings_admincomponents\class-m-chart-admin.php:34
actionadmin_noticescomponents\class-m-chart-admin.php:45
actionadmin_noticescomponents\class-m-chart-admin.php:197
actioninitcomponents\class-m-chart-block.php:8
actionplugins_loadedcomponents\class-m-chart-block.php:9
actionrest_api_initcomponents\class-m-chart-block.php:10
actionrest_api_initcomponents\class-m-chart-block.php:11
filterm_chart_image_supportcomponents\class-m-chart-chartjs.php:88
filterm_chart_iframe_scriptscomponents\class-m-chart-chartjs.php:89
actioninitcomponents\class-m-chart.php:85
actionplugins_loadedcomponents\class-m-chart.php:86
actionsave_postcomponents\class-m-chart.php:87
actionshortcode_ui_before_do_shortcodecomponents\class-m-chart.php:88
actiontemplate_redirectcomponents\class-m-chart.php:90
actionm_chart_update_post_metacomponents\class-m-chart.php:91
filterm_chart_get_chart_image_tagcomponents\class-m-chart.php:94
filterthe_contentcomponents\class-m-chart.php:95
filterm_chart_image_supportcomponents\class-m-chart.php:96
filterm_chart_instant_preview_supportcomponents\class-m-chart.php:97
filterm_chart_library_classcomponents\class-m-chart.php:98
Maintenance & Trust

M Chart Maintenance & Trust

Maintenance Signals

WordPress version tested6.9.4
Last updatedMar 1, 2026
PHP min version
Downloads109K

Community Trust

Rating98/100
Number of ratings28
Active installs4K
Developer Profile

M Chart Developer Profile

methnen

1 plugin · 4K total installs

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

How We Detect M Chart

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

Asset Fingerprints

Asset Paths
/wp-content/plugins/m-chart/css/m-chart.css/wp-content/plugins/m-chart/js/m-chart.js
Script Paths
/wp-content/plugins/m-chart/js/m-chart.js
Version Parameters
m-chart/css/m-chart.css?ver=m-chart/js/m-chart.js?ver=

HTML / DOM Fingerprints

CSS Classes
m-chart-settingsm-chart-data-fieldm-chart-chart-editor
Data Attributes
data-m-chart-iddata-m-chart-type
JS Globals
mChartm_chart_admin_options
REST Endpoints
/wp-json/m-chart/v1/chart
Shortcode Output
[m-chart[m_chart
FAQ

Frequently Asked Questions about M Chart