Custom Post Relationships (CPR) Security & Risk Analysis

wordpress.org/plugins/custom-post-relationships

This plugin will let you create custom post relationships.

10 active installs v1.01 PHP + WP 2.9.0+ Updated Jun 14, 2010
custom-related-postscustom-relationspost-relationshipsrelatedrelated-posts
85
A · Safe
CVEs total0
Unpatched0
Last CVENever
Safety Verdict

Is Custom Post Relationships (CPR) Safe to Use in 2026?

Generally Safe

Score 85/100

Custom Post Relationships (CPR) has no known CVEs and is actively maintained. It's a solid choice for most WordPress installations.

No known CVEs Updated 15yr ago
Risk Assessment

The 'custom-post-relationships' plugin version 1.01 exhibits a mixed security posture. On the positive side, it demonstrates good practices by using prepared statements for all SQL queries and has no recorded vulnerabilities or CVEs. This suggests a generally careful development approach regarding common web application attack vectors like SQL injection and historical exploitability.

However, significant concerns arise from the static analysis. The plugin has one AJAX handler that lacks authentication checks, creating a direct entry point for unauthenticated access. Furthermore, all four identified output points are not properly escaped. This is a critical weakness as it opens the door to Cross-Site Scripting (XSS) vulnerabilities, where malicious scripts could be injected and executed in users' browsers. The absence of taint analysis flows doesn't necessarily imply safety, but rather that the analysis might not have covered all potential paths or the plugin's functionality didn't trigger specific taint detection rules.

In conclusion, while the plugin's lack of SQL injection vulnerabilities and CVE history are strengths, the unauthenticated AJAX handler and pervasive output escaping issues represent a considerable security risk. These flaws can be exploited by attackers to gain unauthorized access or execute malicious code. The developer needs to prioritize addressing these output escaping and authentication vulnerabilities.

Key Concerns

  • AJAX handler without auth checks
  • Output escaping is not used
Vulnerabilities
None known

Custom Post Relationships (CPR) Security Vulnerabilities

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

Custom Post Relationships (CPR) Code Analysis

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

SQL Query Safety

100% prepared2 total queries

Output Escaping

0% escaped4 total outputs
Attack Surface
1 unprotected

Custom Post Relationships (CPR) Attack Surface

Entry Points1
Unprotected1

AJAX Handlers 1

authwp_ajax_cpr-catscpr.php:161
WordPress Hooks 4
actionadmin_menucpr.php:160
actionadmin_menucpr.php:162
actionsave_postcpr.php:163
actionwt4_showcpr.php:164
Maintenance & Trust

Custom Post Relationships (CPR) Maintenance & Trust

Maintenance Signals

WordPress version tested3.0.5
Last updatedJun 14, 2010
PHP min version
Downloads4K

Community Trust

Rating0/100
Number of ratings0
Active installs10
Developer Profile

Custom Post Relationships (CPR) Developer Profile

Gerasimos Tsiamalos

1 plugin · 10 total installs

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

How We Detect Custom Post Relationships (CPR)

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

Asset Fingerprints

Asset Paths
/wp-content/plugins/custom-post-relationships/cpr.css/wp-content/plugins/custom-post-relationships/cpr.js
Script Paths
/wp-content/plugins/custom-post-relationships/cpr.js
Version Parameters
cpr-css?ver=

HTML / DOM Fingerprints

CSS Classes
cpr_buttonthepostremovemeaddme
HTML Comments
<!-- Where's Dukey? Wa zaaaaaaaaaaaa (the call) --><!-- oi! wait! where are you going? are you sure? 100%? a second thought? come on let's talk about it. oh well. -->
Data Attributes
id='howmany'name='howmany'id='orderby'name='orderby'id='orderin'name='orderin'+9 more
JS Globals
AjaxHandler
FAQ

Frequently Asked Questions about Custom Post Relationships (CPR)