Layered Pop Security & Risk Analysis

wordpress.org/plugins/layered-pop

Create multi-layers animated popup.

80 active installs v0.11 PHP + WP 3.6+ Updated Feb 8, 2015
layered-popuppoppop-uppopup
85
A · Safe
CVEs total0
Unpatched0
Last CVENever
Safety Verdict

Is Layered Pop Safe to Use in 2026?

Generally Safe

Score 85/100

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

No known CVEs Updated 11yr ago
Risk Assessment

The "layered-pop" plugin version 0.11 presents a mixed security posture. On the positive side, the plugin has no known vulnerabilities (CVEs) recorded and appears to have a good practice of implementing capability checks on its entry points, with all 6 AJAX handlers secured. Furthermore, the taint analysis shows no critical or high severity flows with unsanitized paths, indicating that user input is generally handled with care regarding direct malicious code execution or data manipulation through tainted flows.

However, significant concerns arise from the static analysis. The presence of 10 instances of the `unserialize` function is a major red flag, as unserialization of untrusted data is a well-known vector for remote code execution vulnerabilities. While the taint analysis didn't directly flag issues with `unserialize`, the sheer number of occurrences without explicit mention of sanitization or strict input validation before unserialization is a notable weakness. Additionally, the output escaping is only properly handled in 57% of cases, leaving a significant portion of the output potentially vulnerable to cross-site scripting (XSS) attacks. The absence of nonce checks on AJAX handlers, despite having capability checks, also represents a missed opportunity to further harden these entry points against cross-site request forgery (CSRF) attacks.

The vulnerability history is currently clean, which is a strong positive. This, combined with the absence of critical taint flows, suggests that the core logic might be relatively stable. However, the `unserialize` and output escaping issues are inherent code quality concerns that could lead to vulnerabilities if not addressed, regardless of past vulnerability history. Overall, the plugin has strengths in its lack of historical exploits and some robust security implementations, but the potential risks associated with unserialization and incomplete output escaping warrant careful consideration and remediation.

Key Concerns

  • Dangerous function 'unserialize' used 10 times
  • Output escaping only 57% properly handled
  • No nonce checks on AJAX handlers
  • SQL queries: 45% not using prepared statements
Vulnerabilities
None known

Layered Pop Security Vulnerabilities

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

Layered Pop Code Analysis

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

Dangerous Functions Found

unserialize$popup = unserialize($popup_data);layered-pop.php:171
unserialize$popup_details = unserialize($this->options['popup']);layered-pop.php:436
unserialize$popup_options = unserialize($popup_details['options']);layered-pop.php:438
unserialize$layer_options = unserialize($layer['details']);layered-pop.php:493
unserialize$popup_details = unserialize($this->options['popup']);layered-pop.php:1046
unserialize$popup_details = unserialize($this->options['popup']);layered-pop.php:1096
unserialize$layer_options = unserialize($layer_details['details']);layered-pop.php:1175
unserialize$popup = unserialize($this->options['popup']);layered-pop.php:1232
unserialize$popup_options = unserialize($popup['options']);layered-pop.php:1234
unserialize$layer_options = unserialize($layer['details']);layered-pop.php:1243

SQL Query Safety

55% prepared11 total queries

Output Escaping

57% escaped65 total outputs
Data Flows
All sanitized

Data Flow Analysis

4 flows
save_layer (layered-pop.php:1082)
Source (user input) Sink (dangerous op) Sanitizer Transform Unsanitized Sanitized
Attack Surface

Layered Pop Attack Surface

Entry Points6
Unprotected0

AJAX Handlers 6

authwp_ajax_lpl_save_layerlayered-pop.php:122
authwp_ajax_lpl_copy_layerlayered-pop.php:123
authwp_ajax_lpl_save_popuplayered-pop.php:124
authwp_ajax_lpl_delete_layerlayered-pop.php:125
authwp_ajax_lpl_reset_cookielayered-pop.php:126
authwp_ajax_lpl_save_settingslayered-pop.php:127
WordPress Hooks 8
actionadmin_noticeslayered-pop.php:118
actionadmin_enqueue_scriptslayered-pop.php:119
actionadmin_menulayered-pop.php:120
actioninitlayered-pop.php:121
actionwplayered-pop.php:129
actionwp_enqueue_scriptslayered-pop.php:1285
actionwp_headlayered-pop.php:1286
actionwp_footerlayered-pop.php:1287
Maintenance & Trust

Layered Pop Maintenance & Trust

Maintenance Signals

WordPress version tested4.1.42
Last updatedFeb 8, 2015
PHP min version
Downloads17K

Community Trust

Rating94/100
Number of ratings12
Active installs80
Developer Profile

Layered Pop Developer Profile

ichurakov

7 plugins · 330 total installs

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

How We Detect Layered Pop

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

Asset Fingerprints

Asset Paths
/wp-content/plugins/layered-pop/js/jquery.cookie.min.js/wp-content/plugins/layered-pop/js/jquery.cssAnimate.min.js/wp-content/plugins/layered-pop/js/jquery.event.move.js/wp-content/plugins/layered-pop/js/layered-pop.js/wp-content/plugins/layered-pop/css/admin.css/wp-content/plugins/layered-pop/css/front.css/wp-content/plugins/layered-pop/languages/
Script Paths
/wp-content/plugins/layered-pop/js/jquery.cookie.min.js/wp-content/plugins/layered-pop/js/jquery.cssAnimate.min.js/wp-content/plugins/layered-pop/js/jquery.event.move.js/wp-content/plugins/layered-pop/js/layered-pop.js
Version Parameters
layered-pop/css/admin.css?ver=layered-pop/css/front.css?ver=

HTML / DOM Fingerprints

CSS Classes
lpl-options
Data Attributes
data-lpl-appearancedata-lpl-appearance-delaydata-lpl-appearance-speeddata-lpl-content-aligndata-lpl-fontdata-lpl-font-color+11 more
JS Globals
lpl_open
FAQ

Frequently Asked Questions about Layered Pop