Custom Permalinks Security & Risk Analysis

wordpress.org/plugins/custom-permalinks

A powerful WordPress plugin for full URL control. Set custom permalinks, auto-redirects, and use dynamic tags for ideal site structure and SEO.

100K active installs v3.1.2 PHP 7.0+ WP 2.6+ Updated Oct 8, 2025
addresslinkpermalinkredirecturl
97
A · Safe
CVEs total3
Unpatched0
Last CVEAug 23, 2024
Safety Verdict

Is Custom Permalinks Safe to Use in 2026?

Generally Safe

Score 97/100

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

3 known CVEsLast CVE: Aug 23, 2024Updated 7mo ago
Risk Assessment

The 'custom-permalinks' plugin v3.1.2 exhibits a generally positive security posture with strong adherence to secure coding practices. The static analysis reveals a small attack surface with no unprotected entry points, excellent SQL prepared statement usage, and a very high rate of output escaping. Nonce and capability checks are also present, indicating an awareness of common WordPress security mechanisms. However, the taint analysis reveals a significant concern: three high-severity flows with unsanitized paths. While the static analysis found no explicit "dangerous functions," these taint flows suggest potential for vulnerabilities if the data within these paths is not rigorously sanitized before use. The vulnerability history, although currently showing no unpatched CVEs, is a notable weakness. The plugin has a history of three CVEs, with a recent one as late as August 23, 2024, and includes common vulnerability types like Cross-site Scripting (XSS) and SQL Injection. This history, especially the recent occurrence, suggests that while the current version might be patched, there's a pattern of security flaws being introduced, requiring vigilance from users.

In conclusion, the plugin's current version demonstrates good technical implementation regarding SQL and output handling, and a limited attack surface. The primary risk lies in the three high-severity unsanitized path flows identified by the taint analysis, which could lead to vulnerabilities despite the absence of specific "dangerous functions." The historical vulnerability record, though currently clear, is a significant red flag and indicates a recurring susceptibility to common web application vulnerabilities. Users should monitor for future updates and advisories.

Key Concerns

  • High severity taint flows with unsanitized paths
  • Recent vulnerability history (2024-08-23)
  • History of high severity vulnerabilities
  • History of medium severity vulnerabilities
Vulnerabilities
3 published

Custom Permalinks Security Vulnerabilities

CVEs by Year

2 CVEs in 2018
2018
1 CVE in 2024
2024
Patched Has unpatched

Severity Breakdown

High
1
Medium
2

3 total CVEs

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

Custom Permalinks <= 2.6.0 - Authenticated(Editor+) Stored Cross-Site Scripting

Aug 23, 2024 Patched in 2.7.0 (1d)
WF-0d1a12b9-ac2e-4c60-8dd5-484944bb0ab8-custom-permalinksmedium · 6.1Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')

Custom Permalinks <= 1.1 -Cross-Site Scripting

Feb 26, 2018 Patched in 1.2 (2157d)
WF-5c9a5613-770f-4294-997e-17fd5194ab70-custom-permalinkshigh · 8.1Improper Neutralization of Special Elements used in an SQL Command ('SQL Injection')

Custom Permalinks <= 1.1 - Authenticated SQL Injection

Feb 26, 2018 Patched in 1.2 (2157d)
Version History

Custom Permalinks Release Timeline

v3.1.2Current8 files changed
v3.1.19 files changed
v3.1.049 files changed
v3.0.18 files changed
v3.0.016 files changed
v2.8.07 files changed
v2.7.011 files changed
v2.6.01 CVE9 files changed
v2.5.21 CVE6 files changed
v2.5.11 CVE5 files changed
v2.5.01 CVE16 files changed
v2.4.01 CVE12 files changed
v2.3.01 CVE8 files changed
v2.2.01 CVE7 files changed
v2.1.01 CVE8 files changed
v2.0.11 CVE7 files changed
v2.0.01 CVE34 files changed
v1.7.11 CVE5 files changed
v1.7.01 CVE10 files changed
v1.6.21 CVE
Code Analysis
Analyzed Mar 16, 2026

Custom Permalinks Code Analysis

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

SQL Query Safety

95% prepared19 total queries

Output Escaping

98% escaped100 total outputs
Data Flows · Security
4 unsanitized

Data Flow Analysis

4 flows4 with unsanitized paths
<class-custom-permalinks-form> (includes\class-custom-permalinks-form.php:0)
Source (user input) Sink (dangerous op) Sanitizer Transform Unsanitized Sanitized
Attack Surface

Custom Permalinks Attack Surface

Entry Points1
Unprotected0

REST API Routes 1

GET/wp-json/custom-permalinks/v1/get-permalink/(?P<id>\d+)includes\class-custom-permalinks-form.php:1306
WordPress Hooks 43
actionadmin_initadmin\class-custom-permalinks-admin.php:44
actionadmin_menuadmin\class-custom-permalinks-admin.php:45
actioninitadmin\class-custom-permalinks-admin.php:46
filteradmin_footer_textadmin\class-custom-permalinks-admin.php:184
filteradmin_footer_textadmin\class-custom-permalinks-admin.php:198
filteradmin_footer_textadmin\class-custom-permalinks-admin.php:209
filteradmin_footer_textadmin\class-custom-permalinks-admin.php:224
actionadd_meta_boxesincludes\class-custom-permalinks-form.php:44
actionsave_postincludes\class-custom-permalinks-form.php:45
actionpmxi_saved_postincludes\class-custom-permalinks-form.php:46
actioncustom_permalinks_generate_post_permalinkincludes\class-custom-permalinks-form.php:47
actiondelete_postincludes\class-custom-permalinks-form.php:53
actioncategory_add_formincludes\class-custom-permalinks-form.php:54
actioncategory_edit_formincludes\class-custom-permalinks-form.php:55
actionpost_tag_add_formincludes\class-custom-permalinks-form.php:56
actionpost_tag_edit_formincludes\class-custom-permalinks-form.php:57
actioncreated_termincludes\class-custom-permalinks-form.php:58
actionedited_termincludes\class-custom-permalinks-form.php:59
actiondelete_termincludes\class-custom-permalinks-form.php:60
actionrest_api_initincludes\class-custom-permalinks-form.php:61
actionupdate_option_page_on_frontincludes\class-custom-permalinks-form.php:62
filterget_sample_permalink_htmlincludes\class-custom-permalinks-form.php:69
filteris_protected_metaincludes\class-custom-permalinks-form.php:75
actiontemplate_redirectincludes\class-custom-permalinks-frontend.php:72
filterrequestincludes\class-custom-permalinks-frontend.php:74
filteroembed_request_post_idincludes\class-custom-permalinks-frontend.php:75
filterpost_linkincludes\class-custom-permalinks-frontend.php:76
filterpost_type_linkincludes\class-custom-permalinks-frontend.php:77
filterpage_linkincludes\class-custom-permalinks-frontend.php:78
filterurl_to_postidincludes\class-custom-permalinks-frontend.php:79
filterterm_linkincludes\class-custom-permalinks-frontend.php:80
filteruser_trailingslashitincludes\class-custom-permalinks-frontend.php:81
filterwpseo_canonicalincludes\class-custom-permalinks-frontend.php:84
filterrequestincludes\class-custom-permalinks-frontend.php:624
filterurl_to_postidincludes\class-custom-permalinks-frontend.php:768
filterpost_linkincludes\class-custom-permalinks-frontend.php:1101
filterpost_type_linkincludes\class-custom-permalinks-frontend.php:1102
filteruser_trailingslashitincludes\class-custom-permalinks-frontend.php:1135
filterpage_linkincludes\class-custom-permalinks-frontend.php:1136
filteruser_trailingslashitincludes\class-custom-permalinks-frontend.php:1162
filterterm_linkincludes\class-custom-permalinks-frontend.php:1163
filteruser_trailingslashitincludes\class-custom-permalinks-frontend.php:1200
actionplugins_loadedincludes\class-custom-permalinks.php:100
Maintenance & Trust

Custom Permalinks Maintenance & Trust

Maintenance Signals

WordPress version tested6.8.5
Last updatedOct 8, 2025
PHP min version7.0
Downloads2.5M

Community Trust

Rating82/100
Number of ratings116
Active installs100K
Developer Profile

Custom Permalinks Developer Profile

Sami Ahmed Siddiqui

7 plugins · 115K total installs

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

How We Detect Custom Permalinks

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

Asset Fingerprints

Asset Paths
/wp-content/plugins/custom-permalinks/assets/js/post-settings.min.js/wp-content/plugins/custom-permalinks/assets/css/post-settings.min.css/wp-content/plugins/custom-permalinks/assets/css/about-plugins.min.css
Script Paths
/wp-content/plugins/custom-permalinks/includes/class-custom-permalinks.php
Version Parameters
custom-permalinks/assets/js/post-settings.min.js?ver=custom-permalinks/assets/css/post-settings.min.css?ver=custom-permalinks/assets/css/about-plugins.min.css?ver=

HTML / DOM Fingerprints

CSS Classes
cp-admin-wrapcp-post-type-settings
Data Attributes
data-cp-post-iddata-cp-taxonomy
JS Globals
customPermalinksSettingsCustomPermalinksTable
REST Endpoints
/wp-json/custom-permalinks/v1/update-post-permalink/wp-json/custom-permalinks/v1/update-taxonomy-permalink
Shortcode Output
[custom_permalink_input]
FAQ

Frequently Asked Questions about Custom Permalinks