Post Expiry Scheduler Security & Risk Analysis

wordpress.org/plugins/post-expiry-scheduler

Automatically expire posts by moving them to draft status based on expiry date/time.

0 active installs v1.0.1 PHP 7.4+ WP 5.0+ Updated Oct 27, 2025
automationdraftexpirypostsscheduler
100
A · Safe
CVEs total0
Unpatched0
Last CVENever
Safety Verdict

Is Post Expiry Scheduler Safe to Use in 2026?

Generally Safe

Score 100/100

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

No known CVEs Updated 5mo ago
Risk Assessment

The "post-expiry-scheduler" v1.0.1 plugin demonstrates a generally strong security posture, with several positive indicators. The absence of known CVEs and a clean vulnerability history suggest a commitment to security or a lack of targeted exploitation. The code analysis reveals good practices such as 100% of SQL queries using prepared statements, a significant portion of output being properly escaped, and the presence of nonce and capability checks. The attack surface is relatively small and appears to be protected.

However, a single taint flow with an unsanitized path presents a potential concern. While the severity is not explicitly classified as critical or high in the provided data, any unsanitized path could lead to vulnerabilities like directory traversal or arbitrary file access if the input is not strictly controlled. The 77% proper output escaping, while above average, also means that 23% of outputs are not properly escaped, which could be a vector for Cross-Site Scripting (XSS) if the unescaped data originates from user input.

Overall, the plugin is well-developed from a security perspective, particularly in its handling of database interactions and authentication. The primary area for improvement and potential risk lies in thoroughly auditing and sanitizing the identified unsanitized path flow. Addressing this, along with ensuring all output is strictly escaped, would further solidify its security.

Key Concerns

  • Flow with unsanitized path detected
  • 23% of outputs not properly escaped
Vulnerabilities
None known

Post Expiry Scheduler Security Vulnerabilities

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

Post Expiry Scheduler Code Analysis

Dangerous Functions
0
Raw SQL Queries
0
0 prepared
Unescaped Output
12
40 escaped
Nonce Checks
5
Capability Checks
7
File Operations
0
External Requests
0
Bundled Libraries
0

Output Escaping

77% escaped52 total outputs
Data Flows
1 unsanitized

Data Flow Analysis

2 flows1 with unsanitized paths
bulk_action_notices (includes\class-pes-admin.php:264)
Source (user input) Sink (dangerous op) Sanitizer Transform Unsanitized Sanitized
Attack Surface

Post Expiry Scheduler Attack Surface

Entry Points2
Unprotected0

AJAX Handlers 2

authwp_ajax_pes_manual_checkincludes\class-pes-admin.php:38
authwp_ajax_pes_unexpire_postincludes\class-pes-admin.php:39
WordPress Hooks 17
actionadmin_enqueue_scriptsincludes\class-pes-admin.php:32
actionmanage_posts_columnsincludes\class-pes-admin.php:33
actionmanage_posts_custom_columnincludes\class-pes-admin.php:34
actionbulk_actions-edit-postincludes\class-pes-admin.php:35
actionhandle_bulk_actions-edit-postincludes\class-pes-admin.php:36
actionadmin_noticesincludes\class-pes-admin.php:37
actionpes_check_expired_postsincludes\class-pes-cron.php:32
actionadmin_noticesincludes\class-pes-cron.php:33
filtercron_schedulesincludes\class-pes-cron.php:36
filtercron_schedulesincludes\class-pes-cron.php:44
filtercron_schedulesincludes\class-pes-cron.php:66
actionadd_meta_boxesincludes\class-pes-post-meta.php:28
actionsave_postincludes\class-pes-post-meta.php:29
actionadmin_enqueue_scriptsincludes\class-pes-post-meta.php:30
actionadmin_menuincludes\class-pes-settings.php:28
actionadmin_initincludes\class-pes-settings.php:29
actioninitpost-expiry-scheduler.php:63

Scheduled Events 2

pes_check_expired_posts
pes_check_expired_posts
Maintenance & Trust

Post Expiry Scheduler Maintenance & Trust

Maintenance Signals

WordPress version tested6.8.5
Last updatedOct 27, 2025
PHP min version7.4
Downloads157

Community Trust

Rating0/100
Number of ratings0
Active installs0
Developer Profile

Post Expiry Scheduler Developer Profile

Volt Blocks

2 plugins · 60 total installs

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

How We Detect Post Expiry Scheduler

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

Asset Fingerprints

Asset Paths
/wp-content/plugins/post-expiry-scheduler/assets/css/admin.css/wp-content/plugins/post-expiry-scheduler/assets/js/admin.js
Script Paths
/wp-content/plugins/post-expiry-scheduler/assets/js/admin.js
Version Parameters
post-expiry-scheduler/assets/css/admin.css?ver=post-expiry-scheduler/assets/js/admin.js?ver=

HTML / DOM Fingerprints

CSS Classes
pes-no-expirypes-no-datepes-expiredpes-expiry-admin-wrap
Data Attributes
data-post-iddata-nonce
JS Globals
pesAdmin
REST Endpoints
/wp-json/pes/v1/manual-check/wp-json/pes/v1/unexpire-post
FAQ

Frequently Asked Questions about Post Expiry Scheduler