myCred – Learndash Security & Risk Analysis

wordpress.org/plugins/mycred-learndash

📢 Important Notice: myCred Learndash is now part of the myCred Toolkit and will no longer receive updates here. Only security fixes will be provided.

200 active installs v2.3 PHP 7.0+ WP 4.8+ Updated Apr 16, 2025
leaderboardlearndashlearninglmsmycred
100
A · Safe
CVEs total0
Unpatched0
Last CVENever
Download
Safety Verdict

Is myCred – Learndash Safe to Use in 2026?

Generally Safe

Score 100/100

myCred – Learndash has no known CVEs and is actively maintained. It's a solid choice for most WordPress installations.

No known CVEs Updated 11mo ago
Risk Assessment

The mycred-learndash plugin v2.3 exhibits a mixed security posture. On the positive side, the plugin demonstrates good practices regarding database interactions, with all SQL queries utilizing prepared statements, and a lack of file operations or external HTTP requests, which are common vectors for attacks. The absence of recorded vulnerabilities in its history is also a strong indicator of past security diligence. However, a significant concern arises from the substantial attack surface exposed through AJAX handlers. With 23 AJAX handlers, all of which lack authentication checks, a large portion of the plugin's functionality is exposed to unauthenticated users, creating a prime target for malicious exploitation. While the static analysis didn't reveal critical taint flows or dangerous functions, the sheer number of unprotected entry points is a considerable risk that could potentially lead to various vulnerabilities if not properly secured at the application level.

Key Concerns

  • High number of unprotected AJAX handlers
  • Low percentage of properly escaped output
  • Low number of capability checks relative to entry points
Vulnerabilities
None known

myCred – Learndash Security Vulnerabilities

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

myCred – Learndash Code Analysis

Dangerous Functions
0
Raw SQL Queries
0
16 prepared
Unescaped Output
479
189 escaped
Nonce Checks
1
Capability Checks
9
File Operations
0
External Requests
0
Bundled Libraries
0

SQL Query Safety

100% prepared16 total queries

Output Escaping

28% escaped668 total outputs
Attack Surface
23 unprotected

myCred – Learndash Attack Surface

Entry Points25
Unprotected23

AJAX Handlers 23

authwp_ajax_pts_handlerinc\class-mycred-buy-pts-handler.php:23
authwp_ajax_mycred_specific_lesson_for_usersinc\class-mycred-learndash-complete-lesson-hook.php:65
noprivwp_ajax_mycred_specific_lesson_for_usersinc\class-mycred-learndash-complete-lesson-hook.php:66
authwp_ajax_mycred_specific_topic_for_usersinc\class-mycred-learndash-complete-topic-hook.php:69
noprivwp_ajax_mycred_specific_topic_for_usersinc\class-mycred-learndash-complete-topic-hook.php:71
authwp_ajax_mycred_specific_course_for_usersinc\class-mycred-learndash-completing-course-hook.php:63
noprivwp_ajax_mycred_specific_course_for_usersinc\class-mycred-learndash-completing-course-hook.php:64
authwp_ajax_mycred_specific_quiz_for_usersinc\class-mycred-learndash-completing-quiz-hook.php:70
noprivwp_ajax_mycred_specific_quiz_for_usersinc\class-mycred-learndash-completing-quiz-hook.php:72
authwp_ajax_mycred_specific_quiz_max_grade_for_usersinc\class-mycred-learndash-completing-quiz-max-percentage-hook.php:65
noprivwp_ajax_mycred_specific_quiz_max_grade_for_usersinc\class-mycred-learndash-completing-quiz-max-percentage-hook.php:66
authwp_ajax_mycred_specific_quiz_percent_range_for_usersinc\class-mycred-learndash-completing-quiz-percentage-range-hook.php:71
noprivwp_ajax_mycred_specific_quiz_percent_range_for_usersinc\class-mycred-learndash-completing-quiz-percentage-range-hook.php:72
authwp_ajax_mycred_course_based_optionsinc\class-mycred-learndash-leaderboard.php:24
authwp_ajax_mycred_select_a_courseinc\class-mycred-learndash-leaderboard.php:25
authwp_ajax_mycred_select_a_lessoninc\class-mycred-learndash-leaderboard.php:26
authwp_ajax_mycred_show_topicinc\class-mycred-learndash-leaderboard.php:27
authwp_ajax_mycred_select_lesson_topicinc\class-mycred-learndash-leaderboard.php:28
authwp_ajax_mycred_show_quizinc\class-mycred-learndash-leaderboard.php:29
authwp_ajax_mycred_specific_quiz_failed_for_usersinc\class-mycred-learndash-quiz-failed-hook.php:64
noprivwp_ajax_mycred_specific_quiz_failed_for_usersinc\class-mycred-learndash-quiz-failed-hook.php:65
authwp_ajax_mycred_specific_course_for_usersinc\class-mycred-learndash.php:27
noprivwp_ajax_mycred_specific_course_for_usersinc\class-mycred-learndash.php:29

Shortcodes 2

[route] inc\class-mycred-learndash-leaderboard.php:21
[mycred_leaderboard_custom] inc\mycred-learndash-lb-shortcode.php:112
WordPress Hooks 93
actionadmin_headinc\admin\settings\class-mycred-learndash-course-settings.php:15
actionadd_meta_boxesinc\admin\settings\class-mycred-learndash-course-settings.php:16
actionsave_postinc\admin\settings\class-mycred-learndash-course-settings.php:17
actionadmin_headinc\admin\settings\class-mycred-learndash-settings.php:14
actionadmin_initinc\admin\settings\class-mycred-learndash-settings.php:15
actionadmin_initinc\admin\settings\class-mycred-learndash-settings.php:16
actionadmin_menuinc\admin\settings\class-mycred-learndash-settings.php:17
filterlearndash_admin_tabsinc\admin\settings\class-mycred-learndash-settings.php:18
filterlearndash_admin_tabs_on_pageinc\admin\settings\class-mycred-learndash-settings.php:19
actionadmin_noticesinc\admin\settings\class-mycred-learndash-settings.php:59
actionwp_enqueue_scriptsinc\class-mycred-buy-pts-handler.php:18
actionadmin_enqueue_scriptsinc\class-mycred-buy-pts-handler.php:19
filterlearndash_payment_buttoninc\class-mycred-buy-pts-handler.php:22
filtermycred_badge_requirementinc\class-mycred-learndash-badges.php:31
filtermycred_badge_requirement_specific_templateinc\class-mycred-learndash-badges.php:32
actionadmin_headinc\class-mycred-learndash-badges.php:33
filtermycred_setup_hooksinc\class-mycred-learndash-complete-lesson-hook.php:9
actionmycred_load_hooksinc\class-mycred-learndash-complete-lesson-hook.php:27
actionlearndash_lesson_completedinc\class-mycred-learndash-complete-lesson-hook.php:64
filtermycred_hook_limitsinc\class-mycred-learndash-complete-lesson-hook.php:541
filtermycred_setup_hooksinc\class-mycred-learndash-complete-topic-hook.php:9
actionmycred_load_hooksinc\class-mycred-learndash-complete-topic-hook.php:27
actionlearndash_topic_completedinc\class-mycred-learndash-complete-topic-hook.php:67
filtermycred_hook_limitsinc\class-mycred-learndash-complete-topic-hook.php:606
filtermycred_setup_hooksinc\class-mycred-learndash-completing-course-hook.php:9
actionmycred_load_hooksinc\class-mycred-learndash-completing-course-hook.php:25
actionlearndash_course_completedinc\class-mycred-learndash-completing-course-hook.php:62
filtermycred_hook_limitsinc\class-mycred-learndash-completing-course-hook.php:483
filtermycred_setup_hooksinc\class-mycred-learndash-completing-quiz-hook.php:9
actionmycred_load_hooksinc\class-mycred-learndash-completing-quiz-hook.php:25
filtermycred_hook_limitsinc\class-mycred-learndash-completing-quiz-hook.php:605
filtermycred_setup_hooksinc\class-mycred-learndash-completing-quiz-max-percentage-hook.php:11
actionmycred_load_hooksinc\class-mycred-learndash-completing-quiz-max-percentage-hook.php:27
actionlearndash_quiz_completedinc\class-mycred-learndash-completing-quiz-max-percentage-hook.php:64
filtermycred_hook_limitsinc\class-mycred-learndash-completing-quiz-max-percentage-hook.php:529
filtermycred_setup_hooksinc\class-mycred-learndash-completing-quiz-percentage-range-hook.php:13
actionmycred_load_hooksinc\class-mycred-learndash-completing-quiz-percentage-range-hook.php:31
actionlearndash_quiz_completedinc\class-mycred-learndash-completing-quiz-percentage-range-hook.php:70
filtermycred_hook_limitsinc\class-mycred-learndash-completing-quiz-percentage-range-hook.php:569
filtermycred_setup_hooksinc\class-mycred-learndash-course-enrollment-hook.php:9
actionmycred_load_hooksinc\class-mycred-learndash-course-enrollment-hook.php:26
actionlearndash_update_course_accessinc\class-mycred-learndash-course-enrollment-hook.php:62
filtermycred_hook_limitsinc\class-mycred-learndash-course-enrollment-hook.php:344
filtermycred_setup_hooksinc\class-mycred-learndash-group-hook.php:9
actionmycred_load_hooksinc\class-mycred-learndash-group-hook.php:25
actionld_added_group_accessinc\class-mycred-learndash-group-hook.php:62
filtermycred_hook_limitsinc\class-mycred-learndash-group-hook.php:349
filtermycred_setup_hooksinc\class-mycred-learndash-hook.php:9
actionmycred_load_hooksinc\class-mycred-learndash-hook.php:25
actionlearndash_course_completedinc\class-mycred-learndash-hook.php:83
actionlearndash_lesson_completedinc\class-mycred-learndash-hook.php:85
actionlearndash_topic_completedinc\class-mycred-learndash-hook.php:87
actionlearndash_quiz_completedinc\class-mycred-learndash-hook.php:89
actionlearndash_assignment_uploadedinc\class-mycred-learndash-hook.php:91
actionlearndash_assignment_approvedinc\class-mycred-learndash-hook.php:93
filtermycred_all_referencesinc\class-mycred-learndash-hook.php:95
filtermycred_hook_limitsinc\class-mycred-learndash-hook.php:502
filtermycred_hook_limitsinc\class-mycred-learndash-hook.php:530
filtermycred_hook_limitsinc\class-mycred-learndash-hook.php:559
filtermycred_hook_limitsinc\class-mycred-learndash-hook.php:588
filtermycred_hook_limitsinc\class-mycred-learndash-hook.php:617
filtermycred_hook_limitsinc\class-mycred-learndash-hook.php:647
filtermycred_hook_limitsinc\class-mycred-learndash-hook.php:677
actionadmin_enqueue_scriptsinc\class-mycred-learndash-leaderboard.php:14
actionadmin_enqueue_scriptsinc\class-mycred-learndash-leaderboard.php:15
actioninitinc\class-mycred-learndash-leaderboard.php:17
actionadd_meta_boxesinc\class-mycred-learndash-leaderboard.php:18
actionsave_postinc\class-mycred-learndash-leaderboard.php:19
filtermycred_setup_hooksinc\class-mycred-learndash-quiz-failed-hook.php:9
actionmycred_load_hooksinc\class-mycred-learndash-quiz-failed-hook.php:25
actionlearndash_quiz_completedinc\class-mycred-learndash-quiz-failed-hook.php:63
filtermycred_hook_limitsinc\class-mycred-learndash-quiz-failed-hook.php:561
actionadd_meta_boxesinc\class-mycred-learndash.php:14
actionadd_meta_boxesinc\class-mycred-learndash.php:16
actionadd_meta_boxesinc\class-mycred-learndash.php:18
actionadd_meta_boxesinc\class-mycred-learndash.php:20
actionsave_postinc\class-mycred-learndash.php:22
actionsave_postinc\class-mycred-learndash.php:26
actionsave_postinc\class-mycred-learndash.php:31
actionsave_postinc\class-mycred-learndash.php:33
actionsave_postinc\class-mycred-learndash.php:35
actionsave_postinc\class-mycred-learndash.php:37
actionsave_postinc\class-mycred-learndash.php:39
filtermycred_all_referencesinc\class-mycred-learndash.php:41
filtermycred_setup_hooksinc\learndash-Percentage_range_backup.php:13
actionmycred_load_hooksinc\learndash-Percentage_range_backup.php:31
actionlearndash_quiz_completedinc\learndash-Percentage_range_backup.php:68
filtermycred_hook_limitsinc\learndash-Percentage_range_backup.php:406
actioninitmycred-learndash.php:47
actioninitmycred-learndash.php:57
actionwpmycred-learndash.php:66
actionwp_enqueue_scriptsmycred-learndash.php:78
actionadmin_noticesmycred-learndash.php:87
Maintenance & Trust

myCred – Learndash Maintenance & Trust

Maintenance Signals

WordPress version tested6.8.5
Last updatedApr 16, 2025
PHP min version7.0
Downloads25K

Community Trust

Rating100/100
Number of ratings6
Active installs200
Developer Profile

myCred – Learndash Developer Profile

Saad Iqbal

84 plugins · 1.4M total installs

76
trust score
Avg Security Score
96/100
Avg Patch Time
287 days
View full developer profile
Detection Fingerprints

How We Detect myCred – Learndash

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

Asset Fingerprints

Asset Paths
/wp-content/plugins/mycred-learndash/inc/assets/css/mycred-leaderboard-style.css/wp-content/plugins/mycred-learndash/inc/assets/js/learndash-mycred-pts-handler.js
Script Paths
/wp-content/plugins/mycred-learndash/inc/assets/js/learndash-mycred-pts-handler.js

HTML / DOM Fingerprints

CSS Classes
mycred-learndash-notice
Data Attributes
data-course_id
JS Globals
LD_MYCRED_Handler
FAQ

Frequently Asked Questions about myCred – Learndash