Blog Post Calendar Widget Security & Risk Analysis

wordpress.org/plugins/blog-post-calendar-widget

The Blog Posts Calendar Widget allows you to display your archived or future posts in a calendar as a sidebar widget.

100 active installs v1.1 PHP + WP 3.2+ Updated May 24, 2013
calendarfuture-postspost-typespostswidget
85
A · Safe
CVEs total0
Unpatched0
Last CVENever
Safety Verdict

Is Blog Post Calendar Widget Safe to Use in 2026?

Generally Safe

Score 85/100

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

No known CVEs Updated 12yr ago
Risk Assessment

The 'blog-post-calendar-widget' plugin version 1.1 presents a moderate security risk due to several critical omissions in its security implementation. While it exhibits good practices by exclusively using prepared statements for its SQL queries and has no recorded historical vulnerabilities, the plugin suffers from a significant lack of authorization checks on its AJAX handlers. With 4 AJAX handlers, all of which are unprotected, an attacker could potentially exploit these entry points to perform unauthorized actions. The presence of the dangerous `create_function` construct is also a concern, though its impact is not fully quantifiable without taint analysis. The low percentage of properly escaped output further exacerbates the risk, potentially leading to cross-site scripting vulnerabilities.

Despite the absence of historical CVEs and a clean taint analysis report, the current static analysis reveals a substantial attack surface that is not adequately secured. The reliance on exposed AJAX actions and the poor output escaping practices are significant weaknesses that need immediate attention. The plugin's lack of explicit capability checks and nonce verification on its AJAX endpoints creates a direct path for attackers to interact with the plugin in unintended ways. While the lack of external HTTP requests and bundled libraries are positive security attributes, they do not outweigh the immediate risks posed by the unprotected AJAX handlers and insufficient output sanitization.

Key Concerns

  • 4 unprotected AJAX handlers
  • Dangerous function: create_function
  • Low output escaping percentage
  • No nonce checks on AJAX handlers
  • No capability checks on AJAX handlers
Vulnerabilities
None known

Blog Post Calendar Widget Security Vulnerabilities

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

Blog Post Calendar Widget Code Analysis

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

Dangerous Functions Found

create_functionadd_action('widgets_init', create_function('', 'register_widget( "WP_Calander_Widget" );'));wp-calendar.php:346

Output Escaping

9% escaped45 total outputs
Attack Surface
4 unprotected

Blog Post Calendar Widget Attack Surface

Entry Points4
Unprotected4

AJAX Handlers 4

authwp_ajax_wp_calendar_get_taxonomywp-calendar.php:368
authwp_ajax_wp_calendar_get_termswp-calendar.php:388
authwp_ajax_wp_calendar_get_postswp-calendar.php:594
noprivwp_ajax_wp_calendar_get_postswp-calendar.php:595
WordPress Hooks 4
actionwp_enqueue_scriptswp-calendar.php:90
actionwp_headwp-calendar.php:106
actionadmin_enqueue_scriptswp-calendar.php:117
actionwidgets_initwp-calendar.php:346
Maintenance & Trust

Blog Post Calendar Widget Maintenance & Trust

Maintenance Signals

WordPress version tested3.5.2
Last updatedMay 24, 2013
PHP min version
Downloads14K

Community Trust

Rating96/100
Number of ratings8
Active installs100
Developer Profile

Blog Post Calendar Widget Developer Profile

Ron Zvagelsky

2 plugins · 110 total installs

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

How We Detect Blog Post Calendar Widget

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

Asset Fingerprints

Asset Paths
/wp-content/plugins/blog-post-calendar-widget/css/wp_calendar.css/wp-content/plugins/blog-post-calendar-widget/images/ajax-processing.gif/wp-content/plugins/blog-post-calendar-widget/images/arrow-new.png/wp-content/plugins/blog-post-calendar-widget/images/arrow-new2.png/wp-content/plugins/blog-post-calendar-widget/images/arrow-next-hover.png/wp-content/plugins/blog-post-calendar-widget/images/arrow-prev-hover.png/wp-content/plugins/blog-post-calendar-widget/js/jquery.ui.datepicker.js/wp-content/plugins/blog-post-calendar-widget/js/jquery.ui.datepicker-ar.js+4 more
Script Paths
/wp-content/plugins/blog-post-calendar-widget/js/jquery.ui.datepicker.js/wp-content/plugins/blog-post-calendar-widget/js/wp_calendar.js/wp-content/plugins/blog-post-calendar-widget/js/wp_calendar_admin.js

HTML / DOM Fingerprints

CSS Classes
widget_calendar_<?php echo $calendar_size; ?>widget_calendarwidget_innercalendar_wrap_loadingcalendar_wrap_loading_hidewp-cal-prevwp-cal-next
Data Attributes
onclick
JS Globals
wpCalancerAdminObjwpCalendarObj
FAQ

Frequently Asked Questions about Blog Post Calendar Widget