PushPull Security & Risk Analysis

wordpress.org/plugins/pushpull

Git-based content sync for WordPress. Project homepage: https://creativemoods.pt/pushpull/

0 active installs v0.0.20 PHP 8.1+ WP 6.0+ Updated Apr 14, 2026
content-syncdevopsgenerateblocksgitgithub
100
A · Safe
CVEs total0
Unpatched0
Last CVENever
Safety Verdict

Is PushPull Safe to Use in 2026?

Generally Safe

Score 100/100

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

No known CVEs Updated 1mo ago
Risk Assessment

The 'pushpull' plugin v0.0.20 presents a mixed security posture. On the positive side, it demonstrates excellent adherence to secure coding practices by utilizing prepared statements for all SQL queries and ensuring 100% of its outputs are properly escaped. The plugin also incorporates a substantial number of nonce and capability checks, indicating an awareness of WordPress security best practices for authenticated actions.

However, significant concerns arise from the identified attack surface. The plugin exposes two AJAX handlers, and critically, both of these lack any authentication checks. This creates a direct pathway for unauthenticated users to interact with plugin functionality, potentially leading to unintended consequences or exploitation of underlying vulnerabilities. While the static analysis and taint analysis found no immediate critical or high severity issues related to data sanitization or dangerous function usage (like unserialize), the unprotected entry points remain a significant risk.

Furthermore, the complete absence of known vulnerabilities in its history is a positive indicator, suggesting a well-maintained codebase or limited exposure. Nevertheless, this does not negate the inherent risk posed by the unprotected AJAX endpoints. In conclusion, while the plugin excels in areas like SQL prepared statements and output escaping, the unauthenticated AJAX handlers represent a glaring security weakness that requires immediate attention. The overall risk is moderate, heavily influenced by the potential for exploitation of these unprotected entry points.

Key Concerns

  • Unprotected AJAX handlers
  • Dangerous function 'unserialize' used
Vulnerabilities
None known

PushPull Security Vulnerabilities

No known vulnerabilities — this is a good sign.
Version History

PushPull Release Timeline

v0.0.20Current
v0.0.19
v0.0.18
v0.0.17
v0.0.16
v0.0.15
v0.0.14
v0.0.13
v0.0.12
v0.0.11
v0.0.10
v0.0.9
v0.0.8
v0.0.7
v0.0.6
v0.0.5
v0.0.4
v0.0.3
Code Analysis
Analyzed Apr 16, 2026

PushPull Code Analysis

Dangerous Functions
2
Raw SQL Queries
0
27 prepared
Unescaped Output
0
381 escaped
Nonce Checks
18
Capability Checks
23
File Operations
2
External Requests
1
Bundled Libraries
0

Dangerous Functions Found

unserialize: @unserialize($conditions, ['allowed_classes' => false]);src/Content/GenerateBlocks/GenerateBlocksConditionsAdapter.php:600
unserialize: @unserialize($styleData, ['allowed_classes' => false]);src/Content/GenerateBlocks/GenerateBlocksGlobalStylesAdapter.php:512

SQL Query Safety

100% prepared27 total queries

Output Escaping

100% escaped381 total outputs
Data Flows · Security
All sanitized

Data Flow Analysis

1 flows
<ManagedContentPage> (src/Admin/ManagedContentPage.php:0)
Source (user input) Sink (dangerous op) Sanitizer Transform Unsanitized Sanitized
Attack Surface
2 unprotected

PushPull Attack Surface

Entry Points2
Unprotected2

AJAX Handlers 2

authwp_ajax_pushpull_start_branch_actionsrc/Plugin/Plugin.php:280
authwp_ajax_pushpull_continue_branch_actionsrc/Plugin/Plugin.php:281
WordPress Hooks 31
actionplugins_loadedpushpull.php:42
filterattachment_fields_to_editsrc/Admin/AttachmentSyncField.php:17
filterattachment_fields_to_savesrc/Admin/AttachmentSyncField.php:18
actionadmin_bar_menusrc/Plugin/Plugin.php:209
filtercron_schedulessrc/Plugin/Plugin.php:210
actioninitsrc/Plugin/Plugin.php:211
actionadmin_initsrc/Plugin/Plugin.php:261
actionadmin_initsrc/Plugin/Plugin.php:262
actionadmin_menusrc/Plugin/Plugin.php:263
actionadmin_menusrc/Plugin/Plugin.php:264
actionadmin_menusrc/Plugin/Plugin.php:265
actionadmin_menusrc/Plugin/Plugin.php:266
actionadmin_post_pushpull_save_domainssrc/Plugin/Plugin.php:267
actionadmin_post_pushpull_test_connectionsrc/Plugin/Plugin.php:268
actionadmin_post_pushpull_reset_local_repositorysrc/Plugin/Plugin.php:269
actionadmin_post_pushpull_reset_remote_branchsrc/Plugin/Plugin.php:270
actionadmin_post_pushpull_initialize_remote_repositorysrc/Plugin/Plugin.php:271
actionadmin_post_pushpull_commit_managed_setsrc/Plugin/Plugin.php:272
actionadmin_post_pushpull_pull_managed_setsrc/Plugin/Plugin.php:273
actionadmin_post_pushpull_fetch_managed_setsrc/Plugin/Plugin.php:274
actionadmin_post_pushpull_merge_managed_setsrc/Plugin/Plugin.php:275
actionadmin_post_pushpull_apply_managed_setsrc/Plugin/Plugin.php:276
actionadmin_post_pushpull_push_managed_setsrc/Plugin/Plugin.php:277
actionadmin_post_pushpull_commit_push_allsrc/Plugin/Plugin.php:278
actionadmin_post_pushpull_pull_apply_allsrc/Plugin/Plugin.php:279
actionadmin_post_pushpull_resolve_conflict_managed_setsrc/Plugin/Plugin.php:282
actionadmin_post_pushpull_finalize_merge_managed_setsrc/Plugin/Plugin.php:283
actionadmin_enqueue_scriptssrc/Plugin/Plugin.php:284
actionadmin_enqueue_scriptssrc/Plugin/Plugin.php:285
actionadmin_enqueue_scriptssrc/Plugin/Plugin.php:286
actionadmin_enqueue_scriptssrc/Plugin/Plugin.php:287
Maintenance & Trust

PushPull Maintenance & Trust

Maintenance Signals

WordPress version tested6.9.4
Last updatedApr 14, 2026
PHP min version8.1
Downloads532

Community Trust

Rating0/100
Number of ratings0
Active installs0
Developer Profile

PushPull Developer Profile

Jerome Steunenberg

1 plugin · 0 total installs

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

How We Detect PushPull

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

Asset Fingerprints

Asset Paths
/wp-content/plugins/pushpull/plugin-assets/css/admin.css
Version Parameters
pushpull/plugin-assets/css/admin.css?ver=

HTML / DOM Fingerprints

CSS Classes
pushpull-adminpushpull-intropushpull-domain-source-grid
Data Attributes
name="action"value="pushpull_save_domains"name="_wpnonce"name="_wp_http_referer"
FAQ

Frequently Asked Questions about PushPull