DT LMS – elearning, WordPress LMS Plugin Security & Risk Analysis

wordpress.org/plugins/dt-lms-lite

The DesignThemes LMS lite is a plugin that lets you easily manage courses on your website.

10 active installs v1.1 PHP 7.1+ WP 4.5+ Updated Apr 25, 2022
educationelearninglearninglearning-management-systemlms
85
A · Safe
CVEs total0
Unpatched0
Last CVENever
Download
Safety Verdict

Is DT LMS – elearning, WordPress LMS Plugin Safe to Use in 2026?

Generally Safe

Score 85/100

DT LMS – elearning, WordPress LMS Plugin has no known CVEs and is actively maintained. It's a solid choice for most WordPress installations.

No known CVEs Updated 4yr ago
Risk Assessment

The "dt-lms-lite" v1.1 plugin exhibits a mixed security posture. While it demonstrates strong practices in its SQL query handling, with 100% using prepared statements, and a high percentage of properly escaped output, significant concerns arise from its attack surface. A substantial number of AJAX handlers (46 out of 56) are exposed without authentication checks. This presents a considerable risk, as unauthenticated users could potentially interact with these handlers, leading to unintended actions or information disclosure depending on their functionality.

The taint analysis reveals a high number of flows with unsanitized paths (28 out of 31), though critically, no high or critical severity issues were identified from these. This suggests potential for basic injection vulnerabilities or unexpected behavior if these unsanitized paths are user-controlled, but the lack of critical findings is a positive sign. The plugin's vulnerability history is clean, with no recorded CVEs, which is an excellent indicator of past security diligence. However, this lack of historical vulnerabilities should not overshadow the immediate risks identified in the static analysis, particularly the unprotected AJAX endpoints.

In conclusion, the plugin has strengths in data integrity (SQL) and output sanitization. Nevertheless, the unprotected AJAX handlers constitute a significant security weakness that requires immediate attention. The high number of unsanitized paths in the taint analysis, while not leading to critical issues in this version, warrants careful review to prevent future vulnerabilities. The absence of historical vulnerabilities is a positive but should not be the sole basis for assessing current risk.

Key Concerns

  • Large number of unprotected AJAX handlers
  • High number of flows with unsanitized paths
  • 17 nonce checks present, but 46 AJAX handlers unprotected
Vulnerabilities
None known

DT LMS – elearning, WordPress LMS Plugin Security Vulnerabilities

No known vulnerabilities — this is a good sign.
Version History

DT LMS – elearning, WordPress LMS Plugin Release Timeline

No version history available.
Code Analysis
Analyzed Apr 16, 2026

DT LMS – elearning, WordPress LMS Plugin Code Analysis

Dangerous Functions
0
Raw SQL Queries
0
0 prepared
Unescaped Output
249
3626 escaped
Nonce Checks
17
Capability Checks
7
File Operations
0
External Requests
0
Bundled Libraries
1

Bundled Libraries

jQuery

Output Escaping

94% escaped3875 total outputs
Data Flows · Security
28 unsanitized

Data Flow Analysis

25 flows28 with unsanitized paths
dtlms_view_assignment (modules/assignment/utils.php:310)
Source (user input) Sink (dangerous op) Sanitizer Transform Unsanitized Sanitized
Attack Surface
46 unprotected

DT LMS – elearning, WordPress LMS Plugin Attack Surface

Entry Points85
Unprotected46

AJAX Handlers 56

authwp_ajax_dtlms_upload_assignmentmodules/assignment/utils.php:302
noprivwp_ajax_dtlms_upload_assignmentmodules/assignment/utils.php:303
authwp_ajax_dtlms_view_assignmentmodules/assignment/utils.php:321
noprivwp_ajax_dtlms_view_assignmentmodules/assignment/utils.php:322
authwp_ajax_dtlms_submit_assignmentmodules/assignment/utils.php:604
noprivwp_ajax_dtlms_submit_assignmentmodules/assignment/utils.php:605
authwp_ajax_dtlms_assigning_load_students_datasettings/settings-assigning-utils.php:3
noprivwp_ajax_dtlms_assigning_load_students_datasettings/settings-assigning-utils.php:4
authwp_ajax_dtlms_save_assign_students_settingssettings/settings-assigning-utils.php:133
noprivwp_ajax_dtlms_save_assign_students_settingssettings/settings-assigning-utils.php:134
authwp_ajax_dtlms_assigning_load_courses_datasettings/settings-assigning-utils.php:189
noprivwp_ajax_dtlms_assigning_load_courses_datasettings/settings-assigning-utils.php:190
authwp_ajax_dtlms_save_assign_courses_settingssettings/settings-assigning-utils.php:339
noprivwp_ajax_dtlms_save_assign_courses_settingssettings/settings-assigning-utils.php:340
authwp_ajax_dtlms_save_poc_settingssettings/settings-poc-utils.php:96
noprivwp_ajax_dtlms_save_poc_settingssettings/settings-poc-utils.php:97
authwp_ajax_dtlms_save_options_settingssettings/settings-utils.php:3
noprivwp_ajax_dtlms_save_options_settingssettings/settings-utils.php:4
authwp_ajax_dtlms_save_skin_settingssettings/settings-utils.php:52
noprivwp_ajax_dtlms_save_skin_settingssettings/settings-utils.php:53
authwp_ajax_dtlms_generate_purchases_overview_chartstatistics/statistics-utils.php:404
noprivwp_ajax_dtlms_generate_purchases_overview_chartstatistics/statistics-utils.php:405
authwp_ajax_dtlms_generate_commissions_overview_chartstatistics/statistics-utils.php:803
noprivwp_ajax_dtlms_generate_commissions_overview_chartstatistics/statistics-utils.php:804
authwp_ajax_dtlms_load_instructorwise_coursesstatistics/statistics-utils.php:1467
noprivwp_ajax_dtlms_load_instructorwise_coursesstatistics/statistics-utils.php:1468
authwp_ajax_dtlms_load_instructorwise_commissionsstatistics/statistics-utils.php:1765
noprivwp_ajax_dtlms_load_instructorwise_commissionsstatistics/statistics-utils.php:1766
authwp_ajax_dtlms_load_statistics_instructor_contentstatistics/statistics-utils.php:2108
noprivwp_ajax_dtlms_load_statistics_instructor_contentstatistics/statistics-utils.php:2109
authwp_ajax_dtlms_load_statistics_students_contentstatistics/statistics-utils.php:2378
noprivwp_ajax_dtlms_load_statistics_students_contentstatistics/statistics-utils.php:2379
authwp_ajax_dtlms_load_statistics_packages_contentstatistics/statistics-utils.php:2732
noprivwp_ajax_dtlms_load_statistics_packages_contentstatistics/statistics-utils.php:2733
authwp_ajax_dtlms_revoke_user_submissionutils/utils-backend.php:3
noprivwp_ajax_dtlms_revoke_user_submissionutils/utils-backend.php:4
authwp_ajax_dtlms_generate_course_resultutils/utils-common.php:3
noprivwp_ajax_dtlms_generate_course_resultutils/utils-common.php:4
authwp_ajax_dtlms_load_course_curriculum_listutils/utils-common.php:263
noprivwp_ajax_dtlms_load_course_curriculum_listutils/utils-common.php:264
authwp_ajax_dtlms_view_curriculum_detailsutils/utils-common.php:458
noprivwp_ajax_dtlms_view_curriculum_detailsutils/utils-common.php:459
authwp_ajax_dtlms_start_course_initializeutils/utils-courses.php:218
noprivwp_ajax_dtlms_start_course_initializeutils/utils-courses.php:219
authwp_ajax_dtlms_submit_course_initializeutils/utils-courses.php:475
noprivwp_ajax_dtlms_submit_course_initializeutils/utils-courses.php:476
authwp_ajax_dtlms_generate_courses_listingutils/utils-courses.php:1555
noprivwp_ajax_dtlms_generate_courses_listingutils/utils-courses.php:1556
authwp_ajax_dtlms_complete_the_lessonutils/utils-lesson.php:171
noprivwp_ajax_dtlms_complete_the_lessonutils/utils-lesson.php:172
authwp_ajax_dtlms_generate_packages_listingutils/utils-packages.php:92
noprivwp_ajax_dtlms_generate_packages_listingutils/utils-packages.php:93
authwp_ajax_dtlms_show_login_form_popuputils/utils.php:249
noprivwp_ajax_dtlms_show_login_form_popuputils/utils.php:250
authwp_ajax_dtlms_generate_curriculum_page_contentsutils/utils.php:256
noprivwp_ajax_dtlms_generate_curriculum_page_contentsutils/utils.php:257

Shortcodes 29

[dtlms_columns] shortcodes/shortcodes.php:6
[dtlms_vertical_tabs] shortcodes/shortcodes.php:7
[dtlms_vertical_tab] shortcodes/shortcodes.php:8
[dtlms_login_logout_links] shortcodes/shortcodes.php:10
[dtlms_courses_listing] shortcodes/shortcodes.php:12
[dtlms_packages_listing] shortcodes/shortcodes.php:13
[dtlms_course_categories] shortcodes/shortcodes.php:15
[dtlms_instructor_list] shortcodes/shortcodes.php:16
[dtlms_total_items] shortcodes/shortcodes.php:19
[dtlms_total_items_chart] shortcodes/shortcodes.php:20
[dtlms_purchases_overview_chart] shortcodes/shortcodes.php:21
[dtlms_instructor_commission_earnings] shortcodes/shortcodes.php:22
[dtlms_instructor_courses] shortcodes/shortcodes.php:24
[dtlms_instructor_added_courses] shortcodes/shortcodes.php:25
[dtlms_instructor_commissions] shortcodes/shortcodes.php:26
[dtlms_student_courses] shortcodes/shortcodes.php:27
[dtlms_package_details] shortcodes/shortcodes.php:28
[dtlms_student_purchased_items] shortcodes/shortcodes.php:31
[dtlms_student_assigned_items] shortcodes/shortcodes.php:32
[dtlms_student_undergoing_items] shortcodes/shortcodes.php:33
[dtlms_student_underevaluation_items] shortcodes/shortcodes.php:34
[dtlms_student_completed_items] shortcodes/shortcodes.php:35
[dtlms_student_purchased_items_list] shortcodes/shortcodes.php:37
[dtlms_student_assigned_items_list] shortcodes/shortcodes.php:38
[dtlms_student_undergoing_items_list] shortcodes/shortcodes.php:39
[dtlms_student_underevaluation_items_list] shortcodes/shortcodes.php:40
[dtlms_student_completed_items_list] shortcodes/shortcodes.php:41
[dtlms_student_course_curriculum_details] shortcodes/shortcodes.php:43
[dtlms_student_course_events] shortcodes/shortcodes.php:44
WordPress Hooks 153
actioninitcustom-post-types/courses-post-type.php:28
actionadmin_initcustom-post-types/courses-post-type.php:29
filtertemplate_includecustom-post-types/courses-post-type.php:30
actionsave_postcustom-post-types/courses-post-type.php:37
actiontransition_post_statuscustom-post-types/courses-post-type.php:38
filterdtlms_woo_purchase_cptcustom-post-types/courses-post-type.php:40
filterdtlms_course_curriculumscustom-post-types/courses-post-type.php:41
filterdtlms_cpt_itemscustom-post-types/courses-post-type.php:42
actionadd_meta_boxescustom-post-types/courses-post-type.php:433
actionadd_meta_boxescustom-post-types/courses-post-type.php:434
actionadd_meta_boxescustom-post-types/courses-post-type.php:435
actionadd_meta_boxescustom-post-types/courses-post-type.php:438
actionadd_meta_boxescustom-post-types/courses-post-type.php:442
actionadd_meta_boxescustom-post-types/courses-post-type.php:446
filtermanage_dtlms_courses_posts_columnscustom-post-types/courses-post-type.php:449
actionmanage_dtlms_courses_posts_custom_columncustom-post-types/courses-post-type.php:450
actioninitcustom-post-types/lessons-post-type.php:28
actionadmin_initcustom-post-types/lessons-post-type.php:29
filtertemplate_includecustom-post-types/lessons-post-type.php:30
actionsave_postcustom-post-types/lessons-post-type.php:37
filterdtlms_cpt_itemscustom-post-types/lessons-post-type.php:39
filterdtlms_admin_menu_and_ordercustom-post-types/lessons-post-type.php:40
actionadd_meta_boxescustom-post-types/lessons-post-type.php:165
actionadd_meta_boxescustom-post-types/lessons-post-type.php:166
actioninitcustom-post-types/packages-post-type.php:7
actionadmin_initcustom-post-types/packages-post-type.php:8
filtertemplate_includecustom-post-types/packages-post-type.php:9
actionsave_postcustom-post-types/packages-post-type.php:16
filterdtlms_admin_menu_and_ordercustom-post-types/packages-post-type.php:18
filterdtlms_woo_purchase_cptcustom-post-types/packages-post-type.php:19
filterdtlms_cpt_itemscustom-post-types/packages-post-type.php:20
actionadd_meta_boxescustom-post-types/packages-post-type.php:138
filtertemplate_includecustom-post-types/register-post-types.php:40
filterdtlms_taxonomiescustom-post-types/taxonomy-custom-fields.php:28
actionbp_setup_navdashboard/buddypress.php:21
actionbp_template_contentdashboard/buddypress.php:24
actioninitdashboard/woocommerce.php:8
filterwoocommerce_account_menu_itemsdashboard/woocommerce.php:10
actioninitdt-lms-lite.php:85
actionplugins_loadeddt-lms-lite.php:86
actionbp_includedt-lms-lite.php:87
actionadmin_menudt-lms-lite.php:89
actionparent_filedt-lms-lite.php:90
actionadmin_noticesdt-lms-lite.php:135
actioninitmodules/assignment/cpt/post-type.php:27
actionadmin_initmodules/assignment/cpt/post-type.php:28
filtertemplate_includemodules/assignment/cpt/post-type.php:29
actionsave_postmodules/assignment/cpt/post-type.php:36
filterdtlms_cpt_itemsmodules/assignment/cpt/post-type.php:38
actionadd_meta_boxesmodules/assignment/cpt/post-type.php:178
actionadmin_enqueue_scriptsmodules/assignment/register-module.php:34
actionwp_enqueue_scriptsmodules/assignment/register-module.php:35
filterdtlms_course_curriculumsmodules/assignment/register-module.php:36
filterdtlms_admin_menu_and_ordermodules/assignment/register-module.php:37
filterdtlms_view_curriculum_details_modulemodules/assignment/utils.php:639
actionelementor/elements/categories_registeredpage-builders/elementor/register-elementor.php:32
actionelementor/widgets/widgets_registeredpage-builders/elementor/register-elementor.php:33
actionelementor/preview/enqueue_stylespage-builders/elementor/register-elementor.php:35
actionvc_before_initpage-builders/visual-composer/modules/dashboard/instructor-added-courses.php:2
actionvc_before_initpage-builders/visual-composer/modules/dashboard/instructor-commission-earnings.php:2
actionvc_before_initpage-builders/visual-composer/modules/dashboard/instructor-commissions.php:2
actionvc_before_initpage-builders/visual-composer/modules/dashboard/instructor-courses.php:2
actionvc_before_initpage-builders/visual-composer/modules/dashboard/package-details.php:2
actionvc_before_initpage-builders/visual-composer/modules/dashboard/purchases-overview-chart.php:2
actionvc_before_initpage-builders/visual-composer/modules/dashboard/student-assigned-items-list.php:2
actionvc_before_initpage-builders/visual-composer/modules/dashboard/student-assigned-items.php:2
actionvc_before_initpage-builders/visual-composer/modules/dashboard/student-completed-items-list.php:2
actionvc_before_initpage-builders/visual-composer/modules/dashboard/student-completed-items.php:2
actionvc_before_initpage-builders/visual-composer/modules/dashboard/student-course-curriculum-details.php:2
actionvc_before_initpage-builders/visual-composer/modules/dashboard/student-course-events.php:2
actionvc_before_initpage-builders/visual-composer/modules/dashboard/student-courses.php:2
actionvc_before_initpage-builders/visual-composer/modules/dashboard/student-purchased-items-list.php:2
actionvc_before_initpage-builders/visual-composer/modules/dashboard/student-purchased-items.php:2
actionvc_before_initpage-builders/visual-composer/modules/dashboard/student-underevaluation-items-list.php:2
actionvc_before_initpage-builders/visual-composer/modules/dashboard/student-underevaluation-items.php:2
actionvc_before_initpage-builders/visual-composer/modules/dashboard/student-undergoing-items-list.php:2
actionvc_before_initpage-builders/visual-composer/modules/dashboard/student-undergoing-items.php:2
actionvc_before_initpage-builders/visual-composer/modules/dashboard/total-items-chart.php:2
actionvc_before_initpage-builders/visual-composer/modules/dashboard/total-items.php:2
actionvc_before_initpage-builders/visual-composer/modules/default/course-categories.php:2
actionvc_before_initpage-builders/visual-composer/modules/default/courses-listing.php:2
actionvc_before_initpage-builders/visual-composer/modules/default/instructor-list.php:2
actionvc_before_initpage-builders/visual-composer/modules/default/login-logout-links.php:2
actionvc_before_initpage-builders/visual-composer/modules/default/packages-listing.php:2
actionwp_enqueue_scriptspage-builders/visual-composer/register-visual-composer.php:8
actionadmin_enqueue_scriptspage-builders/visual-composer/register-visual-composer.php:9
actionafter_setup_themepage-builders/visual-composer/register-visual-composer.php:10
actionadmin_enqueue_scriptsscript-and-styles.php:28
actionwp_enqueue_scriptsscript-and-styles.php:29
filterbp_notifications_get_registered_componentssettings/settings-poc-utils.php:15
filterdtlms_point_of_contactssettings/settings-poc-utils.php:92
actioninitsettings/settings-poc-utils.php:145
filterwp_mail_content_typesettings/settings-poc-utils.php:173
filterbp_course_format_notificationssettings/settings-poc-utils.php:1237
filterinstructor_labelsettings/settings-utils.php:82
filterclass_labelsettings/settings-utils.php:100
filterbody_classtheme-support/class-default.php:13
actionwp_enqueue_scriptstheme-support/class-default.php:15
actiondtlms_before_main_contenttheme-support/class-default.php:17
actiondtlms_after_main_contenttheme-support/class-default.php:18
actiondtlms_before_contenttheme-support/class-default.php:20
actiondtlms_after_contenttheme-support/class-default.php:21
filterhouzy_header_footer_default_cpttheme-support/class-designthemes-houzy.php:28
actiondtlms_before_main_contenttheme-support/class-designthemes-houzy.php:30
actiondtlms_after_main_contenttheme-support/class-designthemes-houzy.php:31
actiondtlms_before_contenttheme-support/class-designthemes-houzy.php:33
actiondtlms_after_contenttheme-support/class-designthemes-houzy.php:34
filterbody_classtheme-support/class-designthemes.php:13
filter_theme_name_header_footer_default_cpttheme-support/class-designthemes.php:15
actionwp_enqueue_scriptstheme-support/class-designthemes.php:17
actiondtlms_before_main_contenttheme-support/class-designthemes.php:19
actiondtlms_after_main_contenttheme-support/class-designthemes.php:20
actiondtlms_before_contenttheme-support/class-designthemes.php:22
actiondtlms_after_contenttheme-support/class-designthemes.php:23
actionsave_posttheme-support/class-designthemes.php:30
actioncomment_postutils/utils-comment.php:28
filterpreprocess_commentutils/utils-comment.php:46
actionadd_meta_boxes_commentutils/utils-comment.php:57
actionedit_commentutils/utils-comment.php:118
filtercomment_form_fieldsutils/utils-comment.php:138
filtercomment_textutils/utils-comment.php:185
actiontransition_comment_statusutils/utils-comment.php:255
actiondelete_commentutils/utils-comment.php:272
actiontrash_commentutils/utils-comment.php:273
filtercomments_templateutils/utils-comment.php:286
filtercomment_form_default_fieldsutils/utils-comment.php:344
filterwp_nav_menu_argsutils/utils-menu.php:33
actioninitutils/utils-register.php:25
actionafter_setup_themeutils/utils-register.php:37
actionshow_user_profileutils/utils-register.php:42
actionedit_user_profileutils/utils-register.php:43
actionpersonal_options_updateutils/utils-register.php:126
actionedit_user_profile_updateutils/utils-register.php:127
filterlogin_redirectutils/utils-social-login.php:82
filterwoocommerce_login_redirectutils/utils-social-login.php:101
actionwoocommerce_order_status_completedutils/utils-woo-courses.php:77
actionwoocommerce_order_status_cancelledutils/utils-woo-courses.php:163
actionwoocommerce_order_status_refundedutils/utils-woo-courses.php:164
actionwoocommerce_order_status_completedutils/utils-woo-packages.php:101
actionwoocommerce_order_status_cancelledutils/utils-woo-packages.php:181
actionwoocommerce_order_status_refundedutils/utils-woo-packages.php:182
actionafter_setup_themeutils/utils.php:25
actionwoocommerce_add_to_cartwoocommerce/utils-woocommerce.php:90
filterwoocommerce_cart_item_quantitywoocommerce/utils-woocommerce.php:107
filterwoocommerce_data_storeswoocommerce/woocommerce.php:39
actionwoocommerce_screen_idswoocommerce/woocommerce.php:44
actionwoocommerce_product_objectwoocommerce/woocommerce.php:47
actionadmin_enqueue_scriptswoocommerce/woocommerce.php:50
actionadd_meta_boxeswoocommerce/woocommerce.php:53
actionwoocommerce_add_cart_item_datawoocommerce/woocommerce.php:56
actionwoocommerce_add_order_item_metawoocommerce/woocommerce.php:57
actionsave_postwoocommerce/woocommerce.php:61
actionpre_post_updatewoocommerce/woocommerce.php:62
Maintenance & Trust

DT LMS – elearning, WordPress LMS Plugin Maintenance & Trust

Maintenance Signals

WordPress version tested5.9.13
Last updatedApr 25, 2022
PHP min version7.1
Downloads3K

Community Trust

Rating100/100
Number of ratings1
Active installs10
Developer Profile

DT LMS – elearning, WordPress LMS Plugin Developer Profile

Wedesigntech

3 plugins · 30 total installs

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

How We Detect DT LMS – elearning, WordPress LMS Plugin

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

Asset Fingerprints

Asset Paths
/wp-content/plugins/dt-lms-lite/css/dtlms-frontend.css/wp-content/plugins/dt-lms-lite/css/dtlms-editor.css/wp-content/plugins/dt-lms-lite/js/dtlms-custom.js/wp-content/plugins/dt-lms-lite/js/dtlms-admin-script.js/wp-content/plugins/dt-lms-lite/js/dtlms-frontend-script.js
Script Paths
/wp-content/plugins/dt-lms-lite/js/dtlms-custom.js/wp-content/plugins/dt-lms-lite/js/dtlms-admin-script.js/wp-content/plugins/dt-lms-lite/js/dtlms-frontend-script.js
Version Parameters
dt-lms-lite/css/dtlms-frontend.css?ver=dt-lms-lite/css/dtlms-editor.css?ver=dt-lms-lite/js/dtlms-custom.js?ver=dt-lms-lite/js/dtlms-admin-script.js?ver=dt-lms-lite/js/dtlms-frontend-script.js?ver=

HTML / DOM Fingerprints

CSS Classes
dtlms-course-listing-wrapdtlms-course-single-wrapdtlms-dashboard-wrapdtlms-admin-wrap
Data Attributes
data-dtlms-course-iddata-dtlms-user-id
JS Globals
dtlms_custom_params
Shortcode Output
[dtlms_course_listing[dtlms_course_single[dtlms_dashboard[dtlms_teacher_listing
FAQ

Frequently Asked Questions about DT LMS – elearning, WordPress LMS Plugin