Nested Pages Security & Risk Analysis

wordpress.org/plugins/wp-nested-pages

Nested Pages provides a drag and drop interface for managing pages & posts in the WordPress admin, while maintaining quick edit functionality.

90K active installs v3.2.13 PHP 5.4+ WP 3.8+ Updated Feb 11, 2025
adminnestedpage-treepagestree-view
86
A · Safe
CVEs total10
Unpatched0
Last CVEMar 2, 2025
Safety Verdict

Is Nested Pages Safe to Use in 2026?

Generally Safe

Score 86/100

Nested Pages has a strong security track record. Known vulnerabilities have been patched promptly. It's a solid choice for most WordPress installations.

10 known CVEsLast CVE: Mar 2, 2025Updated 1yr ago
Risk Assessment

The "wp-nested-pages" plugin v3.2.13 exhibits a mixed security posture. On the positive side, the plugin demonstrates strong adherence to modern WordPress security practices by utilizing prepared statements for all SQL queries, implementing a significant number of capability checks, and performing nonce checks. The static analysis also indicates a very small attack surface with no identified AJAX handlers, REST API routes, shortcodes, or cron events exposed without authentication. Furthermore, the taint analysis did not reveal any critical or high-severity vulnerabilities stemming from unsanitized input flows. However, concerns arise from the presence of the `unserialize` function, which, if not handled with extreme care regarding input sources, can be a gateway to deserialization vulnerabilities. Additionally, the plugin has a substantial history of known CVEs, with a significant portion classified as high and medium severity, including common web vulnerabilities like Cross-Site Scripting and Missing Authorization. While there are currently no unpatched vulnerabilities, this history suggests a recurring pattern of security weaknesses that require diligent monitoring and prompt updating by users.

Key Concerns

  • Use of unserialize function
  • High historical CVE count
  • Multiple high/medium severity CVEs historically
  • 70% output escaping (potentially 30% unescaped)
Vulnerabilities
10 published

Nested Pages Security Vulnerabilities

CVEs by Year

1 CVE in 2019
2019
2 CVEs in 2021
2021
1 CVE in 2022
2022
2 CVEs in 2023
2023
2 CVEs in 2024
2024
2 CVEs in 2025
2025
Patched Has unpatched

Severity Breakdown

High
2
Medium
7
Low
1

10 total CVEs

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

Nested Pages <= 3.2.12 - Authenticated (Contributor+) Stored Cross-Site Scripting

Mar 2, 2025 Patched in 3.2.13 (32d)
CVE-2025-24579medium · 4.4Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')

Nested Pages <= 3.2.9 - Authenticated (Administrator+) Stored Cross-Site Scripting

Jan 24, 2025 Patched in 3.2.10 (5d)
CVE-2024-8759medium · 4.4Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')

Nested Pages <= 3.2.8 - Authenticated (Editor+) Stored Cross-Site Scripting

Oct 9, 2024 Patched in 3.2.9 (234d)
CVE-2024-5943high · 8.8Cross-Site Request Forgery (CSRF)

Nested Pages <= 3.2.7 - Cross-Site Request Forgery to Local File Inclusion

Jul 3, 2024 Patched in 3.2.8 (1d)
CVE-2023-49195medium · 4.4Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')

Nested Pages <= 3.2.6 - Authenticated (Administrator+) Stored Cross-Site Scripting

Dec 1, 2023 Patched in 3.2.7 (53d)
CVE-2023-2434low · 3.8Missing Authorization

Nested Pages <= 3.2.3 - Missing Authorization to Authenticated (Editor+) Plugin Settings Reset

May 30, 2023 Patched in 3.2.4 (238d)
CVE-2022-1990medium · 4.8Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')

Nested Pages <= 3.1.20 - Stored Cross-Site Scripting

Jun 6, 2022 Patched in 3.1.21 (596d)
CVE-2021-38343medium · 4.7URL Redirection to Untrusted Site ('Open Redirect')

Nested Pages <= 3.1.15 - Open Redirect

Aug 25, 2021 Patched in 3.1.16 (881d)
CVE-2021-38342high · 8.1Cross-Site Request Forgery (CSRF)

Nested Pages <= 3.1.15 - Cross-Site Request Forgery to Arbitrary Post Deletion and Modification

Aug 25, 2021 Patched in 3.1.16 (881d)

Nested Pages <= 3.0.7 - Missing Authorization

Mar 26, 2019 Patched in 3.0.8 (1764d)
Code Analysis
Analyzed Mar 16, 2026

Nested Pages Code Analysis

Dangerous Functions
2
Raw SQL Queries
0
32 prepared
Unescaped Output
175
417 escaped
Nonce Checks
1
Capability Checks
61
File Operations
0
External Requests
0
Bundled Libraries
0

Dangerous Functions Found

unserialize$visible = unserialize($meta);app\Entities\Listing\ListingRepository.php:40
unserializereturn unserialize(get_user_meta(get_current_user_id(), 'np_visible_posts', true));app\Entities\User\UserRepository.php:198

SQL Query Safety

100% prepared32 total queries

Output Escaping

70% escaped592 total outputs
Data Flows · Security
2 unsanitized

Data Flow Analysis

3 flows2 with unsanitized paths
pageRestored (app\Redirects.php:43)
Source (user input) Sink (dangerous op) Sanitizer Transform Unsanitized Sanitized
Attack Surface

Nested Pages Attack Surface

Entry Points0
Unprotected0
WordPress Hooks 33
actionadmin_enqueue_scriptsapp\Activation\Dependencies.php:45
actionadmin_enqueue_scriptsapp\Activation\Dependencies.php:46
actionadmin_enqueue_scriptsapp\Activation\Dependencies.php:47
actionwp_loadedapp\Bootstrap.php:12
actioninitapp\Bootstrap.php:13
actionadmin_menuapp\Config\Settings.php:65
actionadmin_initapp\Config\Settings.php:66
actionadmin_menuapp\Entities\AdminCustomization\AdminMenuItems.php:12
actionadmin_menuapp\Entities\AdminCustomization\AdminMenuItems.php:13
actionadmin_menuapp\Entities\AdminCustomization\AdminMenuItems.php:14
actionadmin_menuapp\Entities\AdminCustomization\AdminMenuItems.php:15
filterpre_update_option_nestedpages_adminapp\Entities\AdminCustomization\AdminMenuSanitization.php:11
actionadmin_menuapp\Entities\AdminMenu\AdminMenu.php:16
actionadmin_headapp\Entities\AdminMenu\AdminMenu.php:17
filterposts_whereapp\Entities\Listing\ListingActions.php:8
filterposts_clausesapp\Entities\Listing\ListingQuery.php:113
actionwp_update_nav_menuapp\Entities\NavMenu\NavMenuActions.php:25
filternav_menu_link_attributesapp\Entities\NavMenu\NavMenuFrontEnd.php:19
filternav_menu_link_attributesapp\Entities\NavMenu\NavMenuFrontEnd.php:20
actionbefore_delete_postapp\Entities\NavMenu\NavMenuTrashActions.php:19
actionbefore_delete_postapp\Entities\NavMenu\NavMenuTrashActions.php:20
actioninitapp\Entities\PluginIntegration\EditorialAccessManager.php:23
actionsave_postapp\Entities\Post\PostSaveActions.php:28
actiontrashed_postapp\Entities\Post\PostTrashActions.php:29
actiondelete_postapp\Entities\Post\PostTrashActions.php:30
filterwp_dropdown_pagesapp\Entities\Post\PrivatePostParent.php:13
actioninitapp\Entities\PostType\RegisterPostTypes.php:20
actioninitapp\Entities\User\UserCapabilities.php:19
actionload-edit.phpapp\Redirects.php:11
actionload-edit.phpapp\Redirects.php:12
actiondeleted_postapp\Redirects.php:13
filterpage_linkapp\RedirectsFrontEnd.php:11
actionparse_requestapp\RedirectsFrontEnd.php:12
Maintenance & Trust

Nested Pages Maintenance & Trust

Maintenance Signals

WordPress version tested6.7.5
Last updatedFeb 11, 2025
PHP min version5.4
Downloads2.2M

Community Trust

Rating94/100
Number of ratings125
Active installs90K
Developer Profile

Nested Pages Developer Profile

Kyle Phillips

3 plugins · 100K total installs

64
trust score
Avg Security Score
78/100
Avg Patch Time
399 days
View full developer profile
Detection Fingerprints

How We Detect Nested Pages

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

Asset Fingerprints

Asset Paths
/wp-content/plugins/wp-nested-pages/assets/css/nestedpages.css/wp-content/plugins/wp-nested-pages/assets/js/lib/jquery.ui.touch-punch.min.js/wp-content/plugins/wp-nested-pages/assets/js/lib/jquery.mjs.nestedSortable.js/wp-content/plugins/wp-nested-pages/assets/js/nestedpages.js/wp-content/plugins/wp-nested-pages/assets/js/nestedpages.min.js
Script Paths
/wp-content/plugins/wp-nested-pages/assets/js/lib/jquery.ui.touch-punch.min.js/wp-content/plugins/wp-nested-pages/assets/js/lib/jquery.mjs.nestedSortable.js/wp-content/plugins/wp-nested-pages/assets/js/nestedpages.js/wp-content/plugins/wp-nested-pages/assets/js/nestedpages.min.js
Version Parameters
/wp-content/plugins/wp-nested-pages/assets/css/nestedpages.css?ver=/wp-content/plugins/wp-nested-pages/assets/js/lib/jquery.ui.touch-punch.min.js?ver=/wp-content/plugins/wp-nested-pages/assets/js/lib/jquery.mjs.nestedSortable.js?ver=/wp-content/plugins/wp-nested-pages/assets/js/nestedpages.js?ver=/wp-content/plugins/wp-nested-pages/assets/js/nestedpages.min.js?ver=

HTML / DOM Fingerprints

CSS Classes
nestedpages-wrappernestedpages-sortablenp-settings-sectionnp-add-linknestedpages-menu-sync
HTML Comments
<!-- Nested Pages Menu Sync --><!-- Nested Pages Quick Edit --><!-- Nested Pages -->
Data Attributes
data-np-noncedata-nestedpages-noncedata-np-actiondata-np-iddata-nestedpages-iddata-np-parent-id+3 more
JS Globals
npArgsnestedPagesnestedpages_ajax_objectnp_page_paramsnp_envnp_version
REST Endpoints
/wp-json/nestedpages/v1/bulk-edit
FAQ

Frequently Asked Questions about Nested Pages