LearnPress – Sepay Payment Security & Risk Analysis

wordpress.org/plugins/learnpress-sepay-payment

Giúp học viên thanh toán khóa học một cách đơn giản và bảo mật với tính năng quét mã QR của SePay. Hỗ trợ hơn 50 ngân hàng.

100 active installs v4.0.2 PHP 7.4+ WP 6.0+ Updated Feb 24, 2026
cong-thanh-toanlearnpress
100
A · Safe
CVEs total0
Unpatched0
Last CVENever
Safety Verdict

Is LearnPress – Sepay Payment Safe to Use in 2026?

Generally Safe

Score 100/100

LearnPress – Sepay Payment 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 learnpress-sepay-payment v4.0.2 plugin exhibits a mixed security posture. On the positive side, it demonstrates excellent practices regarding SQL queries, utilizing prepared statements exclusively, and its output escaping is nearly perfect. The absence of file operations and dangerous functions is also a strong indicator of secure coding habits. The plugin's vulnerability history is clean, with no recorded CVEs, suggesting a generally well-maintained codebase.

However, significant concerns arise from the static analysis. The plugin has two REST API routes that lack permission callbacks, creating an unprotected attack surface. This means that any unauthenticated user could potentially interact with these endpoints, leading to unintended consequences or information disclosure. The lack of nonce checks is another critical omission, especially when coupled with the unprotected entry points. This could make the plugin susceptible to Cross-Site Request Forgery (CSRF) attacks if the REST API endpoints perform sensitive actions.

Overall, while the plugin's foundational code quality is high in terms of SQL and output handling, the identified vulnerabilities in its entry points (REST API routes without permission checks) represent a tangible security risk. The clean vulnerability history is a positive sign, but it does not mitigate the immediate risks posed by the unprotected REST API endpoints. Addressing these entry point vulnerabilities should be a priority.

Key Concerns

  • REST API routes without permission callbacks
  • Total entry points: 2, Unprotected: 2
  • Nonce checks: 0
  • Capability checks: 0
Vulnerabilities
None known

LearnPress – Sepay Payment Security Vulnerabilities

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

LearnPress – Sepay Payment Code Analysis

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

Output Escaping

99% escaped74 total outputs
Attack Surface
2 unprotected

LearnPress – Sepay Payment Attack Surface

Entry Points2
Unprotected2

REST API Routes 2

GET/wp-json/learnpress-sepay/v1/listen-webhookinc\class-lp-sepay-rest-api.php:26
GET/wp-json/learnpress-sepay/v1/lp-orderinc\class-lp-sepay-rest-api.php:35
WordPress Hooks 7
actionrest_api_initinc\class-lp-sepay-rest-api.php:20
filterlearn-press/payment-methodsinc\load.php:69
actionwp_enqueue_scriptsinc\load.php:70
actionadmin_enqueue_scriptsinc\load.php:71
actionlearn-press/order/after-received-order-messageinc\SePayGateway.php:79
actionadmin_noticeslearnpress-sepay-payment.php:83
actionlearn-press/readylearnpress-sepay-payment.php:94
Maintenance & Trust

LearnPress – Sepay Payment Maintenance & Trust

Maintenance Signals

WordPress version tested6.9.4
Last updatedFeb 24, 2026
PHP min version7.4
Downloads1K

Community Trust

Rating0/100
Number of ratings0
Active installs100
Developer Profile

LearnPress – Sepay Payment Developer Profile

ThimPress

21 plugins · 209K total installs

70
trust score
Avg Security Score
87/100
Avg Patch Time
265 days
View full developer profile
Detection Fingerprints

How We Detect LearnPress – Sepay Payment

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

Asset Fingerprints

Asset Paths
/wp-content/plugins/learnpress-sepay-payment/assets/dist/css/sepay-rtl.css/wp-content/plugins/learnpress-sepay-payment/assets/dist/css/sepay.css/wp-content/plugins/learnpress-sepay-payment/assets/dist/js/admin/admin.js/wp-content/plugins/learnpress-sepay-payment/assets/dist/js/admin/admin.min.js/wp-content/plugins/learnpress-sepay-payment/assets/dist/js/frontend/sepay-checkout.js/wp-content/plugins/learnpress-sepay-payment/assets/dist/js/frontend/sepay-checkout.min.js
Script Paths
/wp-content/plugins/learnpress-sepay-payment/assets/dist/css/sepay-rtl.css/wp-content/plugins/learnpress-sepay-payment/assets/dist/css/sepay.css/wp-content/plugins/learnpress-sepay-payment/assets/dist/js/admin/admin.js/wp-content/plugins/learnpress-sepay-payment/assets/dist/js/admin/admin.min.js/wp-content/plugins/learnpress-sepay-payment/assets/dist/js/frontend/sepay-checkout.js/wp-content/plugins/learnpress-sepay-payment/assets/dist/js/frontend/sepay-checkout.min.js
Version Parameters
learnpress-sepay-payment/assets/dist/css/sepaylearnpress-sepay-payment/assets/dist/js/admin/adminlearnpress-sepay-payment/assets/dist/js/frontend/sepay-checkout

HTML / DOM Fingerprints

REST Endpoints
/wp-json/learnpress-sepay/v1/listen-webhook/wp-json/learnpress-sepay/v1/lp-order
FAQ

Frequently Asked Questions about LearnPress – Sepay Payment