CaptionPix Security & Risk Analysis

wordpress.org/plugins/captionpix

A WordPress image captioning plugin which makes it easy to align a framed and captioned image to the left, right or center of the page.

100 active installs v1.8 PHP 5.2.4+ WP 3.1+ Updated Apr 26, 2020
captioningimage-captionphoto-frame
63
C · Use Caution
CVEs total1
Unpatched1
Last CVEJul 23, 2025
Safety Verdict

Is CaptionPix Safe to Use in 2026?

Use With Caution

Score 63/100

CaptionPix has 1 unpatched vulnerability. Evaluate alternatives or apply available mitigations.

1 known CVE 1 unpatched Last CVE: Jul 23, 2025Updated 5yr ago
Risk Assessment

The CaptionPix plugin v1.8 exhibits a mixed security posture. On the positive side, it demonstrates good practices by exclusively using prepared statements for SQL queries and implementing nonce checks and capability checks, indicating an awareness of common WordPress security pitfalls. The total entry points are minimal, with no unprotected handlers identified in the static analysis.

However, significant concerns arise from the presence of the `unserialize` function, which is a known vector for remote code execution if not handled with extreme care and sanitization. The taint analysis, while limited in scope, revealed a flow with an unsanitized path, raising concerns about potential injection vulnerabilities. Furthermore, the output escaping is notably poor, with only 23% of outputs being properly escaped, suggesting a high likelihood of cross-site scripting (XSS) vulnerabilities.

The vulnerability history is particularly alarming. The plugin has a known CVE, which is currently unpatched and classified as medium severity. This, coupled with the previous vulnerability type being XSS, strongly suggests that the plugin has a recurring weakness in input sanitization and output encoding, making it susceptible to persistent attacks.

Key Concerns

  • Unpatched medium severity CVE
  • Presence of unserialize function
  • Flow with unsanitized path
  • Low percentage of properly escaped output
  • Previous XSS vulnerability
Vulnerabilities
1

CaptionPix Security Vulnerabilities

CVEs by Year

1 CVE in 2025 · unpatched
2025
Patched Has unpatched

Severity Breakdown

Medium
1

1 total CVE

CVE-2025-52788medium · 6.1Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')

CaptionPix <= 1.8 - Reflected Cross-Site Scripting

Jul 23, 2025Unpatched
Code Analysis
Analyzed Mar 16, 2026

CaptionPix Code Analysis

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

Dangerous Functions Found

unserializereturn false === $values ? false : @unserialize(@gzinflate(@base64_decode($values)));classes\class-api.php:216
unserialize$the_options = unserialize(strrev(base64_decode($the_options)));classes\class-options.php:41
unserializereturn isset($meta[$key]) ? (is_serialized($meta[$key]) ? @unserialize($meta[$key]) : $meta[$key]) :classes\class-utils.php:98
unserialize&& ($options = (is_serialized($meta) ? @unserialize($meta) : $meta))classes\class-utils.php:120
unserialize&& ($options = (is_serialized($meta) ? @unserialize($meta) : $meta))classes\class-utils.php:174

Output Escaping

23% escaped30 total outputs
Data Flows
1 unsanitized

Data Flow Analysis

2 flows1 with unsanitized paths
controller (classes\class-api-admin.php:106)
Source (user input) Sink (dangerous op) Sanitizer Transform Unsanitized Sanitized
Attack Surface

CaptionPix Attack Surface

Entry Points1
Unprotected0

Shortcodes 1

[captionpix] classes\class-core.php:8
WordPress Hooks 25
actionadmin_noticesclasses\class-admin.php:99
actionadmin_enqueue_scriptsclasses\class-admin.php:117
actionadmin_enqueue_scriptsclasses\class-admin.php:118
actionadmin_enqueue_scriptsclasses\class-admin.php:119
actionadmin_print_footer_scriptsclasses\class-admin.php:152
actionadmin_menuclasses\class-api-admin.php:8
filterscreen_layout_columnsclasses\class-api-admin.php:25
actionadmin_enqueue_scriptsclasses\class-api-admin.php:26
actionadmin_enqueue_scriptsclasses\class-api-admin.php:27
actionadmin_menuclasses\class-core-admin.php:15
actionadmin_enqueue_scriptsclasses\class-core-admin.php:35
filterwidget_textclasses\class-core.php:7
actionadmin_menuclasses\class-dashboard.php:5
actionadmin_enqueue_scriptsclasses\class-dashboard.php:6
actionadmin_enqueue_scriptsclasses\class-dashboard.php:7
filterscreen_layout_columnsclasses\class-dashboard.php:25
actionadmin_enqueue_scriptsclasses\class-dashboard.php:26
actionadmin_initclasses\class-plugin.php:90
actioninitclasses\class-plugin.php:98
actioninitclasses\class-plugin.php:99
actionadmin_menuclasses\class-theme-admin.php:11
actionadmin_enqueue_scriptsclasses\class-theme-admin.php:25
actionadmin_enqueue_scriptsclasses\class-theme-admin.php:26
actionwp_enqueue_scriptsclasses\class-utils.php:467
actionwp_enqueue_scriptsclasses\class-utils.php:468
Maintenance & Trust

CaptionPix Maintenance & Trust

Maintenance Signals

WordPress version tested5.4.19
Last updatedApr 26, 2020
PHP min version5.2.4
Downloads17K

Community Trust

Rating100/100
Number of ratings1
Active installs100
Developer Profile

CaptionPix Developer Profile

Russell Jamieson

4 plugins · 4K total installs

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

How We Detect CaptionPix

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

Asset Fingerprints

Asset Paths
/wp-content/plugins/captionpix/styles/admin.css/wp-content/plugins/captionpix/styles/metabox.css/wp-content/plugins/captionpix/styles/tabs.css/wp-content/plugins/captionpix/scripts/jquery.tabs.js
Version Parameters
captionpix/styles/admin.css?ver=captionpix/styles/metabox.css?ver=captionpix/styles/tabs.css?ver=captionpix/scripts/jquery.tabs.js?ver=

HTML / DOM Fingerprints

CSS Classes
captionpix-metabox
Data Attributes
data-captionpix-url
JS Globals
Captionpix
FAQ

Frequently Asked Questions about CaptionPix