Search & Replace Security & Risk Analysis

wordpress.org/plugins/search-and-replace

Search & Replace data in your database with WordPress admin, replace domains/URLs of your WordPress installation.

100K active installs v3.2.3 PHP 5.6+ WP 4.0+ Updated Aug 26, 2024
importmigratereplacesearchsql
87
A · Safe
CVEs total2
Unpatched0
Last CVEJul 11, 2024
Safety Verdict

Is Search & Replace Safe to Use in 2026?

Generally Safe

Score 87/100

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

2 known CVEsLast CVE: Jul 11, 2024Updated 1yr ago
Risk Assessment

The "search-and-replace" plugin v3.2.3 presents a mixed security posture. On one hand, the static analysis shows a very limited attack surface with no exposed AJAX handlers, REST API routes, shortcodes, or cron events that are unprotected. This indicates a deliberate effort to minimize direct entry points into the plugin's functionality. The plugin also demonstrates good practices in output escaping, with 80% of outputs being properly escaped, and a reasonable number of nonce and capability checks present. However, the presence of dangerous functions like `exec` and `unserialize` is a significant concern, especially when combined with taint analysis revealing flows with unsanitized paths. The high percentage of unsanitized paths (80% of analyzed flows) despite a low number of total flows is concerning and could lead to severe vulnerabilities if not carefully managed within the plugin's internal logic.

The plugin's vulnerability history is a major red flag. With 2 known CVEs, including one critical and one high severity, and common vulnerability types being Deserialization of Untrusted Data and SQL Injection, it suggests a pattern of security weaknesses. The fact that a critical and high vulnerability were recently reported, even if they are now patched, indicates that the plugin has had exploitable flaws in the past. This history, coupled with the presence of potentially dangerous functions and unsanitized paths, raises concerns about the overall robustness of its security. While the current version may not have unpatched CVEs, the underlying code structure and past incidents warrant careful consideration.

In conclusion, the "search-and-replace" plugin v3.2.3 has strengths in its limited external attack surface and decent output escaping. However, the identified dangerous functions, a high proportion of unsanitized paths in taint analysis, and a history of critical and high severity vulnerabilities, particularly in deserialization and SQL injection, present significant risks. Users should exercise caution and ensure the plugin is always kept up-to-date, and ideally, investigate whether the internal use of `exec` and `unserialize` is strictly necessary and properly secured against untrusted data.

Key Concerns

  • Dangerous functions: exec, unserialize found
  • 80% of taint flows have unsanitized paths
  • 1 critical CVE in vulnerability history
  • 1 high CVE in vulnerability history
  • SQL queries: Only 20% use prepared statements
  • Capability checks present, but only 1
Vulnerabilities
2 published

Search & Replace Security Vulnerabilities

CVEs by Year

2 CVEs in 2024
2024
Patched Has unpatched

Severity Breakdown

Critical
1
High
1

2 total CVEs

CVE-2024-38759critical · 9.8Deserialization of Untrusted Data

Search & Replace <= 3.2.2 - Unauthenticated PHP Object Injection

Jul 11, 2024 Patched in 3.2.3 (47d)
CVE-2024-4145high · 7.2Improper Neutralization of Special Elements used in an SQL Command ('SQL Injection')

Search & Replace <= 3.2.1 - Authenticated (Administrator+) SQL injection

May 23, 2024 Patched in 3.2.2 (27d)
Version History

Search & Replace Release Timeline

v3.2.3Current3 files changed
v3.2.21 CVE21 files changed
v3.2.12 CVEs27 files changed
v3.2.02 CVEs70 files changed
v3.1.22 CVEs2 files changed
v3.1.12 CVEs15 files changed
v3.1.02 CVEs44 files changed
v3.0.12 CVEs4 files changed
v3.0.02 CVEs31 files changed
v2.7.12 CVEs2 files changed
v2.7.02 CVEs5 files changed
v2.6.62 CVEs29 files changed
v2.6.52 CVEs7 files changed
v2.6.42 CVEs5 files changed
v2.6.32 CVEs17 files changed
v2.6.22 CVEs21 files changed
v2.6.12 CVEs4 files changed
v2.6.02 CVEs8 files changed
v2.5.12 CVEs20 files changed
Code Analysis
Analyzed Mar 16, 2026

Search & Replace Code Analysis

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

Dangerous Functions Found

exec@exec( "gzip $diskfile" );inc\Database\Exporter.php:692
unserializereturn @unserialize( trim( $data ), array('allowed_classes' => false ) );inc\Database\Replace.php:454

SQL Query Safety

20% prepared10 total queries

Output Escaping

80% escaped46 total outputs
Data Flows · Security
8 unsanitized

Data Flow Analysis

10 flows8 with unsanitized paths
deliver_backup_file (inc\FileDownloader.php:310)
Source (user input) Sink (dangerous op) Sanitizer Transform Unsanitized Sanitized
Attack Surface

Search & Replace Attack Surface

Entry Points0
Unprotected0
WordPress Hooks 6
actionplugins_loadedinpsyde-search-replace.php:22
actioninitinpsyde-search-replace.php:101
actionadmin_menuinpsyde-search-replace.php:110
actionadmin_headinpsyde-search-replace.php:111
actionadmin_enqueue_scriptsinpsyde-search-replace.php:113
actionadmin_enqueue_scriptsinpsyde-search-replace.php:114
Maintenance & Trust

Search & Replace Maintenance & Trust

Maintenance Signals

WordPress version tested6.5.8
Last updatedAug 26, 2024
PHP min version5.6
Downloads3.2M

Community Trust

Rating86/100
Number of ratings282
Active installs100K
Developer Profile

Search & Replace Developer Profile

WP Media

8 plugins · 2.0M total installs

73
trust score
Avg Security Score
91/100
Avg Patch Time
1513 days
View full developer profile
Detection Fingerprints

How We Detect Search & Replace

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

Asset Fingerprints

Asset Paths
/wp-content/plugins/search-and-replace/assets/css/inpsyde-search-replace.min.css/wp-content/plugins/search-and-replace/assets/css/inpsyde-search-replace.css/wp-content/plugins/search-and-replace/assets/js/inpsyde-search-replace.min.js/wp-content/plugins/search-and-replace/assets/js/inpsyde-search-replace.js

HTML / DOM Fingerprints

CSS Classes
nav-tab-active
FAQ

Frequently Asked Questions about Search & Replace