Calculator Security & Risk Analysis

wordpress.org/plugins/calculator

Adds a widget that display a simple calculator.

100 active installs v2.0.1 PHP + WP 2.8+ Updated Feb 9, 2014
calculatormatchsidebarwidget
85
A · Safe
CVEs total0
Unpatched0
Last CVENever
Safety Verdict

Is Calculator Safe to Use in 2026?

Generally Safe

Score 85/100

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

No known CVEs Updated 12yr ago
Risk Assessment

The "calculator" plugin v2.0.1 presents a mixed security profile. On the positive side, its vulnerability history is clean, with no recorded CVEs, suggesting a well-maintained or less targeted plugin. The static analysis also shows a commendable absence of direct SQL injection risks due to the exclusive use of prepared statements and no file operations or external HTTP requests. However, significant security concerns emerge from the static code analysis. The presence of the `create_function` is a critical red flag, as it can be exploited for arbitrary code execution if user input is ever passed into it without stringent sanitization. Furthermore, the extremely low percentage of properly escaped output (4%) indicates a high risk of Cross-Site Scripting (XSS) vulnerabilities, allowing attackers to inject malicious scripts into pages where the calculator's output is displayed. The lack of nonce and capability checks on the identified entry point (shortcode) further exacerbates these risks, as it means the shortcode's functionality can be triggered by any user, potentially leading to XSS or other client-side attacks. While the attack surface is small and no unauthenticated entry points were detected directly in the analysis, the combination of `create_function` and widespread output unescapement creates a substantial risk of code execution and XSS.

Key Concerns

  • Dangerous function used (create_function)
  • Low percentage of output escaping
  • No nonce checks
  • No capability checks
Vulnerabilities
None known

Calculator Security Vulnerabilities

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

Calculator Code Analysis

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

Dangerous Functions Found

create_functionadd_action('widgets_init', create_function('', 'return register_widget("WP_Widget_Calculator");'));calculator.php:240

Output Escaping

4% escaped27 total outputs
Attack Surface

Calculator Attack Surface

Entry Points1
Unprotected0

Shortcodes 1

[calculator] calculator.php:115
WordPress Hooks 1
actionwidgets_initcalculator.php:240
Maintenance & Trust

Calculator Maintenance & Trust

Maintenance Signals

WordPress version tested3.7.41
Last updatedFeb 9, 2014
PHP min version
Downloads10K

Community Trust

Rating0/100
Number of ratings0
Active installs100
Developer Profile

Calculator Developer Profile

philippe

9 plugins · 1K total installs

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

How We Detect Calculator

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

Asset Fingerprints

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

HTML / DOM Fingerprints

HTML Comments
<!-- BEGIN SHORTCODE WIDGET --><!-- END SHORTCODE WIDGET -->
Data Attributes
name="calculator_.*"onclick="calculator_.*\.memory\.value = eval\(calculator_.*\.memory\.value \+ ' \+ ' \+ calculator_.*\.display\.value\);"onclick="calculator_.*\.memory\.value = eval\(calculator_.*\.memory\.value \+ ' - ' \+ calculator_.*\.display\.value\);"onclick="calculator_.*\.memory\.value = ''"onclick="calculator_.*\.display\.value = calculator_.*\.memory\.value;"onclick="if\(calculator_.*\.reset\.value == '1'\) \{ calculator_.*\.display\.value = ''; calculator_.*\.reset\.value = '0'; \} calculator_.*\.display\.value \+= '1';"+20 more
JS Globals
calculator_.*
Shortcode Output
<table style="border-width: thin thin thin thin; border-style: solid solid solid solid;"><tbody><thead><tr><th><center><font face="arial" size="+1"><b>Calculator</b></center></font></th></tr></thead><tr><td>
FAQ

Frequently Asked Questions about Calculator