Karma Memorials Security & Risk Analysis

wordpress.org/plugins/karma-memorials

Complete system for managing online obituaries and memorials with messages, search, notifications and customizable templates.

0 active installs v1.5.4 PHP 7.4+ WP 5.0+ Updated Feb 11, 2026
commemorativememorialnecrologiobituaryringraziamenti
100
A · Safe
CVEs total0
Unpatched0
Last CVENever
Safety Verdict

Is Karma Memorials Safe to Use in 2026?

Generally Safe

Score 100/100

Karma Memorials has no known CVEs and is actively maintained. It's a solid choice for most WordPress installations.

No known CVEs Updated 1mo ago
Risk Assessment

The karma-memorials plugin v1.5.4 presents a mixed security posture. On the positive side, the plugin demonstrates good practices by generally utilizing prepared statements for SQL queries and properly escaping output. The absence of known CVEs and dangerous functions in the code further contributes to a seemingly stable foundation. However, significant concerns arise from the attack surface analysis, specifically the presence of 9 unprotected entry points across AJAX handlers and REST API routes. The taint analysis reveals 5 high-severity flows with unsanitized paths, which could lead to serious vulnerabilities if exploited. While there's no history of vulnerabilities, the current code analysis indicates potential weaknesses that could be leveraged without prior exploitation history.

In conclusion, while the plugin avoids common pitfalls like outdated bundled libraries or widespread unescaped output, the identified unprotected entry points and high-severity unsanitized taint flows represent critical areas of risk. These issues suggest a lack of robust access control and input validation in certain functionalities, which could be exploited by attackers. The plugin's security could be significantly improved by addressing these specific code-level concerns.

Key Concerns

  • Unprotected AJAX handlers
  • Unprotected REST API routes
  • High severity unsanitized taint flows
Vulnerabilities
None known

Karma Memorials Security Vulnerabilities

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

Karma Memorials Code Analysis

Dangerous Functions
0
Raw SQL Queries
35
62 prepared
Unescaped Output
120
1689 escaped
Nonce Checks
31
Capability Checks
30
File Operations
2
External Requests
3
Bundled Libraries
0

SQL Query Safety

64% prepared97 total queries

Output Escaping

93% escaped1809 total outputs
Data Flows
17 unsanitized

Data Flow Analysis

25 flows17 with unsanitized paths
admin_filters (includes\class-karma-memorial-ricorrenze-cpt.php:301)
Source (user input) Sink (dangerous op) Sanitizer Transform Unsanitized Sanitized
Attack Surface
9 unprotected

Karma Memorials Attack Surface

Entry Points50
Unprotected9

AJAX Handlers 37

authwp_ajax_karma_save_activation_emailadmin\class-karma-memorial-email-collector.php:19
authwp_ajax_karma_validate_licenseadmin\class-karma-memorial-license-admin.php:18
authwp_ajax_karma_activate_addon_licenseadmin\class-karma-memorial-license-admin.php:19
authwp_ajax_karma_deactivate_addon_licenseadmin\class-karma-memorial-license-admin.php:20
authwp_ajax_karma_memorials_dismiss_banneradmin\class-karma-memorial-upgrade-banner.php:24
authwp_ajax_karma_memorials_dismiss_unlimited_badgeadmin\class-karma-memorial-upgrade-banner.php:25
authwp_ajax_karma_validate_licenseincludes\class-karma-memorial-license-manager.php:24
noprivwp_ajax_karma_validate_licenseincludes\class-karma-memorial-license-manager.php:25
authwp_ajax_karma_memorial_submit_messageincludes\class-karma-memorial-messages.php:31
noprivwp_ajax_karma_memorial_submit_messageincludes\class-karma-memorial-messages.php:32
authwp_ajax_karma_memorial_bulk_actionincludes\class-karma-memorial-messages.php:43
authwp_ajax_karma_memorial_get_message_detailsincludes\class-karma-memorial-messages.php:44
authwp_ajax_karma_memorial_force_notificationincludes\class-karma-memorial-messages.php:45
authwp_ajax_karma_memorial_testincludes\class-karma-memorial-messages.php:57
noprivwp_ajax_karma_memorial_testincludes\class-karma-memorial-messages.php:58
authwp_ajax_karma_memorial_test_dieincludes\class-karma-memorial-messages.php:61
noprivwp_ajax_karma_memorial_test_dieincludes\class-karma-memorial-messages.php:62
authwp_ajax_karmme_get_condolence_examplesincludes\class-karma-memorial-messages.php:65
noprivwp_ajax_karmme_get_condolence_examplesincludes\class-karma-memorial-messages.php:66
authwp_ajax_karma_newsletter_subscribeincludes\class-karma-memorial-newsletter-widget.php:161
noprivwp_ajax_karma_newsletter_subscribeincludes\class-karma-memorial-newsletter-widget.php:162
authwp_ajax_karma_memorial_delete_partecipazioneincludes\class-karma-memorial-partecipazioni-admin.php:30
authwp_ajax_karma_memorial_search_defuntoincludes\class-karma-memorial-ricorrenze-admin.php:37
authwp_ajax_karma_memorial_get_defunto_dataincludes\class-karma-memorial-ricorrenze-admin.php:38
authwp_ajax_karma_memorial_get_image_urlincludes\class-karma-memorial-ricorrenze-admin.php:39
noprivwp_ajax_karma_memorial_get_image_urlincludes\class-karma-memorial-ricorrenze-admin.php:40
authwp_ajax_karma_memorial_get_image_url_testincludes\class-karma-memorial-ricorrenze-admin.php:43
authwp_ajax_karma_memorial_searchincludes\class-karma-memorial-search.php:26
noprivwp_ajax_karma_memorial_searchincludes\class-karma-memorial-search.php:27
authwp_ajax_karmme_save_service_availabilityincludes\class-karma-memorial-service-availability.php:30
authwp_ajax_karmme_get_service_availabilityincludes\class-karma-memorial-service-availability.php:31
noprivwp_ajax_karmme_get_service_availabilityincludes\class-karma-memorial-service-availability.php:34
authwp_ajax_karmme_get_service_availability_publicincludes\class-karma-memorial-service-availability.php:35
authwp_ajax_karma_memorial_track_viewincludes\class-karma-memorial-views-tracker.php:30
noprivwp_ajax_karma_memorial_track_viewincludes\class-karma-memorial-views-tracker.php:31
authwp_ajax_karma_memorials_preview_uninstallincludes\uninstall-settings.php:95
authwp_ajax_karma_memorials_test_uninstall_functionsincludes\uninstall-settings.php:120

REST API Routes 4

GET/wp-json/karma-memorial/v1/memorial/(?P<id>\d+)includes\class-karma-memorial-hooks.php:178
GET/wp-json/karma-memorial/v1/memorial/(?P<id>\d+)/messagesincludes\class-karma-memorial-hooks.php:192
GET/wp-json/karma-memorial/v1/locationsincludes\class-karma-memorial-hooks.php:206
POST/wp-json/karma-memorial/v1/submit-messageincludes\class-karma-memorial-hooks.php:213

Shortcodes 9

[karma_memorial_elenco] includes\class-karma-memorial-elenco-shortcode.php:33
[karma_ricorrenza] includes\class-karma-memorial-ricorrenze-shortcode.php:34
[karma_ricorrenze] includes\class-karma-memorial-ricorrenze-shortcode.php:35
[karma_memorial_partecipazioni] includes\class-karma-memorial-ringraziamenti-shortcode.php:33
[karma_memorial_partecipazioni_sidebar] includes\class-karma-memorial-ringraziamenti-sidebar-shortcode.php:26
[karma_memorial] includes\class-karma-memorial-shortcodes.php:32
[karma_memorial_search] includes\class-karma-memorial-shortcodes.php:33
[karma_memorial_list] includes\class-karma-memorial-shortcodes.php:34
[karma_memorial_messages] includes\class-karma-memorial-shortcodes.php:35
WordPress Hooks 137
actionadmin_footeradmin\class-karma-memorial-email-collector.php:16
actionadmin_menuadmin\class-karma-memorial-license-admin.php:15
actionadmin_initadmin\class-karma-memorial-license-admin.php:16
actionadmin_enqueue_scriptsadmin\class-karma-memorial-license-admin.php:17
actionadmin_initadmin\class-karma-memorial-locked-features.php:25
actionkarma_memorial_before_color_settingsadmin\class-karma-memorial-locked-features.php:28
actionkarma_memorial_before_email_logo_settingsadmin\class-karma-memorial-locked-features.php:29
actionadmin_enqueue_scriptsadmin\class-karma-memorial-locked-features.php:32
actionadmin_noticesadmin\class-karma-memorial-upgrade-banner.php:22
actionadmin_enqueue_scriptsadmin\class-karma-memorial-upgrade-banner.php:23
actionadmin_footeradmin\class-karma-memorial-upgrade-banner.php:26
actionkarma_memorial_footerincludes\class-karma-memorial-branding.php:22
actionwp_enqueue_scriptsincludes\class-karma-memorial-branding.php:25
actioninitincludes\class-karma-memorial-cpt.php:34
actioninitincludes\class-karma-memorial-cpt.php:37
actionpre_get_postsincludes\class-karma-memorial-cpt.php:45
actionrestrict_manage_postsincludes\class-karma-memorial-cpt.php:48
actionrestrict_manage_postsincludes\class-karma-memorial-cpt.php:51
actionwp_enqueue_scriptsincludes\class-karma-memorial-elenco-shortcode.php:34
actioninitincludes\class-karma-memorial-hooks.php:26
filterkarma_memorial_message_form_fieldsincludes\class-karma-memorial-hooks.php:27
actionkarma_memorial_single_template_services_areaincludes\class-karma-memorial-hooks.php:28
actionkarma_memorial_single_template_messages_areaincludes\class-karma-memorial-hooks.php:29
actiontemplate_redirectincludes\class-karma-memorial-hooks.php:31
actionkarma_memorial_before_message_validationincludes\class-karma-memorial-hooks.php:56
filterkarma_memorial_message_validation_errorsincludes\class-karma-memorial-hooks.php:59
filterkarma_memorial_message_data_before_insertincludes\class-karma-memorial-hooks.php:64
actionkarma_memorial_message_submittedincludes\class-karma-memorial-hooks.php:69
filterkarma_memorial_override_message_formincludes\class-karma-memorial-hooks.php:72
actionkarma_memorial_display_custom_message_formincludes\class-karma-memorial-hooks.php:75
actionkarma_memorial_single_template_headerincludes\class-karma-memorial-hooks.php:82
actionkarma_memorial_single_template_contentincludes\class-karma-memorial-hooks.php:83
actionkarma_memorial_single_template_sidebarincludes\class-karma-memorial-hooks.php:84
actionkarma_memorial_single_template_services_areaincludes\class-karma-memorial-hooks.php:85
actionkarma_memorial_single_template_messages_areaincludes\class-karma-memorial-hooks.php:86
actionkarma_memorial_single_template_footerincludes\class-karma-memorial-hooks.php:87
actionkarma_memorial_archive_template_headerincludes\class-karma-memorial-hooks.php:90
actionkarma_memorial_archive_template_filtersincludes\class-karma-memorial-hooks.php:91
actionkarma_memorial_archive_template_itemincludes\class-karma-memorial-hooks.php:92
actionkarma_memorial_archive_template_paginationincludes\class-karma-memorial-hooks.php:93
actionkarma_memorial_admin_menu_itemsincludes\class-karma-memorial-hooks.php:100
actionkarma_memorial_admin_dashboard_widgetsincludes\class-karma-memorial-hooks.php:103
actionkarma_memorial_after_meta_boxesincludes\class-karma-memorial-hooks.php:106
actionkarma_memorial_save_meta_boxesincludes\class-karma-memorial-hooks.php:109
actionkarma_memorial_save_location_metaincludes\class-karma-memorial-hooks.php:112
filterkarma_memorial_search_query_argsincludes\class-karma-memorial-hooks.php:119
filterkarma_memorial_search_resultsincludes\class-karma-memorial-hooks.php:120
filterkarma_memorial_get_memorial_dataincludes\class-karma-memorial-hooks.php:127
filterkarma_memorial_get_location_dataincludes\class-karma-memorial-hooks.php:128
actionkarma_memorial_woocommerce_initincludes\class-karma-memorial-hooks.php:135
filterkarma_memorial_woocommerce_product_dataincludes\class-karma-memorial-hooks.php:136
actionkarma_memorial_woocommerce_checkoutincludes\class-karma-memorial-hooks.php:137
actionkarma_memorial_process_paymentincludes\class-karma-memorial-hooks.php:140
actionkarma_memorial_payment_completedincludes\class-karma-memorial-hooks.php:141
actionkarma_memorial_payment_failedincludes\class-karma-memorial-hooks.php:142
filterkarma_memorial_email_templatesincludes\class-karma-memorial-hooks.php:149
actionkarma_memorial_send_custom_emailincludes\class-karma-memorial-hooks.php:150
actionkarma_memorial_clear_cacheincludes\class-karma-memorial-hooks.php:157
filterkarma_memorial_cache_keyincludes\class-karma-memorial-hooks.php:158
actionkarma_memorial_enqueue_addon_assetsincludes\class-karma-memorial-hooks.php:165
filterkarma_memorial_custom_cssincludes\class-karma-memorial-hooks.php:166
actionrest_api_initincludes\class-karma-memorial-hooks.php:176
actionwp_enqueue_scriptsincludes\class-karma-memorial-hooks.php:439
filterkarma_memorial_available_addonsincludes\class-karma-memorial-hooks.php:609
actioninitincludes\class-karma-memorial-license-manager.php:20
actionadmin_noticesincludes\class-karma-memorial-license-manager.php:21
actionkarma_memorial_check_licenseincludes\class-karma-memorial-license-manager.php:28
actionwp_footerincludes\class-karma-memorial-messages.php:29
actionwp_enqueue_scriptsincludes\class-karma-memorial-messages.php:35
actionadmin_menuincludes\class-karma-memorial-messages.php:36
actionadmin_post_karma_memorial_approve_messageincludes\class-karma-memorial-messages.php:37
actionadmin_post_karma_memorial_reject_messageincludes\class-karma-memorial-messages.php:38
actionadmin_post_karma_memorial_put_back_moderationincludes\class-karma-memorial-messages.php:39
actionadmin_post_karma_memorial_delete_messageincludes\class-karma-memorial-messages.php:40
actionadmin_post_karma_memorial_cleanup_corrupted_messagesincludes\class-karma-memorial-messages.php:41
actionwp_mail_failedincludes\class-karma-memorial-messages.php:51
filterwp_mailincludes\class-karma-memorial-messages.php:54
actioninitincludes\class-karma-memorial-messages.php:71
actionwp_enqueue_scriptsincludes\class-karma-memorial-newsletter-widget.php:163
actionadmin_menuincludes\class-karma-memorial-partecipazioni-admin.php:27
actionadmin_enqueue_scriptsincludes\class-karma-memorial-partecipazioni-admin.php:33
actionadd_meta_boxesincludes\class-karma-memorial-ricorrenze-admin.php:28
actionsave_postincludes\class-karma-memorial-ricorrenze-admin.php:31
actionadmin_enqueue_scriptsincludes\class-karma-memorial-ricorrenze-admin.php:34
actioninitincludes\class-karma-memorial-ricorrenze-admin.php:46
actionsave_postincludes\class-karma-memorial-ricorrenze-admin.php:394
actionadmin_noticesincludes\class-karma-memorial-ricorrenze-admin.php:398
actioninitincludes\class-karma-memorial-ricorrenze-cpt.php:34
actioninitincludes\class-karma-memorial-ricorrenze-cpt.php:37
actionpre_get_postsincludes\class-karma-memorial-ricorrenze-cpt.php:45
actionrestrict_manage_postsincludes\class-karma-memorial-ricorrenze-cpt.php:48
filterarchive_templateincludes\class-karma-memorial-ricorrenze-shortcode.php:41
actionwp_enqueue_scriptsincludes\class-karma-memorial-ricorrenze-shortcode.php:44
actionwp_enqueue_scriptsincludes\class-karma-memorial-ricorrenze-shortcode.php:45
actionwp_enqueue_scriptsincludes\class-karma-memorial-ringraziamenti-shortcode.php:34
actionwp_footerincludes\class-karma-memorial-ringraziamenti-sidebar-shortcode.php:64
actioninitincludes\class-karma-memorial-ringraziamenti.php:27
filterquery_varsincludes\class-karma-memorial-ringraziamenti.php:30
actiontemplate_redirectincludes\class-karma-memorial-ringraziamenti.php:33
filterpre_get_postsincludes\class-karma-memorial-search.php:28
actioninitincludes\class-karma-memorial-service-availability.php:27
actionkarma_memorial_single_template_services_areaincludes\class-karma-memorial-service-availability.php:38
filterwoocommerce_is_purchasableincludes\class-karma-memorial-service-availability.php:41
actionwp_enqueue_scriptsincludes\class-karma-memorial-service-availability.php:44
actionadmin_enqueue_scriptsincludes\class-karma-memorial-service-availability.php:45
filterbody_classincludes\class-karma-memorial-service-availability.php:48
actionwp_enqueue_scriptsincludes\class-karma-memorial-shortcodes.php:38
actionwp_footerincludes\class-karma-memorial-shortcodes.php:87
actioninitincludes\class-karma-memorial-taxonomies.php:33
actionpre_get_postsincludes\class-karma-memorial-taxonomies.php:42
actionrestrict_manage_postsincludes\class-karma-memorial-taxonomies.php:43
filtersingle_templateincludes\class-karma-memorial-template-loader.php:26
filterarchive_templateincludes\class-karma-memorial-template-loader.php:27
filtertaxonomy_templateincludes\class-karma-memorial-template-loader.php:28
filtertemplate_includeincludes\class-karma-memorial-template-loader.php:31
actionwp_enqueue_scriptsincludes\class-karma-memorial-template-loader.php:33
actionwp_headincludes\class-karma-memorial-views-tracker.php:27
actionwp_footerincludes\class-karma-memorial-views-tracker.php:34
actioninitincludes\class-karma-memorial-views-tracker.php:37
actionwp_enqueue_scriptsincludes\class-karma-memorial-widget.php:32
actionwp_enqueue_scriptsincludes\header-background-css.php:171
actionwp_enqueue_scriptsincludes\header-background-css.php:832
actionadmin_post_karma_memorials_save_uninstall_settingsincludes\uninstall-settings.php:63
actionplugins_loadedkarma-memorials.php:61
actioninitkarma-memorials.php:68
actioninitkarma-memorials.php:71
actionactivated_pluginkarma-memorials.php:74
actionadmin_post_force_flush_ringraziamentikarma-memorials.php:77
filterplugin_row_metakarma-memorials.php:81
actionadmin_initkarma-memorials.php:84
filterwp_get_speculation_rules_configurationkarma-memorials.php:89
actionwp_loadedkarma-memorials.php:108
actionwidgets_initkarma-memorials.php:269
actionwp_enqueue_scriptskarma-memorials.php:306
actioninitkarma-memorials.php:398
actioninitkarma-memorials.php:712
actionplugins_loadedkarma-memorials.php:795

Scheduled Events 1

karma_memorial_check_license
Maintenance & Trust

Karma Memorials Maintenance & Trust

Maintenance Signals

WordPress version tested6.9.4
Last updatedFeb 11, 2026
PHP min version7.4
Downloads323

Community Trust

Rating0/100
Number of ratings0
Active installs0
Developer Profile

Karma Memorials Developer Profile

Ermanno Devitofrancesco

1 plugin · 0 total installs

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

How We Detect Karma Memorials

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

Asset Fingerprints

Asset Paths
/wp-content/plugins/karma-memorials/admin/css/karma-memorials-admin-styles.css/wp-content/plugins/karma-memorials/admin/js/karma-memorials-admin-scripts.js/wp-content/plugins/karma-memorials/frontend/css/karma-memorials-frontend-styles.css/wp-content/plugins/karma-memorials/frontend/js/karma-memorials-frontend-scripts.js
Version Parameters
karma-memorials/admin/css/karma-memorials-admin-styles.css?ver=karma-memorials/admin/js/karma-memorials-admin-scripts.js?ver=karma-memorials/frontend/css/karma-memorials-frontend-styles.css?ver=karma-memorials/frontend/js/karma-memorials-frontend-scripts.js?ver=

HTML / DOM Fingerprints

CSS Classes
km-memorial-titlekm-memorial-datekm-memorial-image-wrapperkm-memorial-descriptionkm-memorial-gallerykm-memorial-mapkm-memorial-ringraziamenti-listkm-memorial-ringraziamenti-item+4 more
HTML Comments
<!-- Karma Memorials Plugin --><!-- Start Karma Memorials Shortcode --><!-- End Karma Memorials Shortcode --><!-- Karma Memorials: Ringraziamenti -->+2 more
Data Attributes
data-memorial-iddata-ringraziamento-iddata-elenco-iddata-ricorrenze-id
JS Globals
karma_memorials_ajax_objectkm_memorials_frontend_paramskm_memorials_admin_params
REST Endpoints
/wp-json/karma-memorials/v1/memorials/wp-json/karma-memorials/v1/ringraziamenti/wp-json/karma-memorials/v1/elenco/wp-json/karma-memorials/v1/ricorrenze
Shortcode Output
[karma_memorial][karma_memorial_ringraziamenti][karma_memorial_elenco][karma_memorial_ricorrenze]
FAQ

Frequently Asked Questions about Karma Memorials