Koollab LMS - Multiple Vulnerabilities including Remote Code Execution, SQL Injection, and Authentication Bypass
29 July 2026
Multiple vulnerabilities have been discovered in Koollab's Learning Management System (LMS). Three Learning, the product owner, has rolled out fixes for all reported vulnerabilities across all cloud-hosted instances of the LMS. Special thanks to the informer and Three Learning for coordinating through CSA's Responsible Vulnerability Disclosure Policy.
Background
Koollab LMS is a cloud-hosted, Software-as-a-Service learning management system that supports e-learning, assessments, and training administration.
CVE ID - Description
CVE-2026-63227 | 9.9 (Critical) - An unrestricted SCORM file upload vulnerability in Koollab LMS allowed an authenticated module designer to upload a SCORM package containing a PHP webshell to a publicly accessible directory and execute arbitrary code on the server.
CVE-2026-63228 | 2.6 (Low) - An unrestricted image upload vulnerability in Koollab LMS allowed an authenticated attacker to upload malicious content disguised as an image file via the feedback mail registration endpoint, potentially enabling further attacks on the server.
CVE-2026-63229 | 9.1 (Critical) - A pre-authentication blind SQL injection vulnerability in Koollab LMS allowed an unauthenticated attacker to use a time-based SQL oracle via the SSO OAuth endpoint to read sensitive database contents, including personally identifiable information, credentials, and valid JWT tokens that may enable account takeover.
CVE-2026-63230 | 9.1 (Critical) - A pre-authentication error-based SQL injection vulnerability in Koollab LMS allowed an unauthenticated attacker to read sensitive database contents, including personally identifiable information, credentials, and valid JWT tokens that may enable account takeover, via the SCORM report endpoint.
CVE-2026-63231 | 8.1 (High) - A post-authentication SQL injection vulnerability in Koollab LMS allowed an authenticated attacker to use an error-based SQL oracle via the face-to-face runs update endpoint to read the entire application database and obtain valid JWT tokens for account takeover.
CVE-2026-63232 | 9.9 (Critical) - A SQL injection and unsafe deserialisation vulnerability in Koollab LMS allowed an authenticated attacker to inject through the assessment reinforcement endpoint, control data passed to unserialize(), write a webshell to a publicly accessible location, and execute arbitrary code on the server.
CVE-2026-63233 | 9.9 (Critical) - A SQL injection and unsafe deserialisation vulnerability in Koollab LMS allowed an authenticated attacker to inject through the assessment overall answer endpoint, control data passed to unserialize(), write a webshell to a publicly accessible location, and execute arbitrary code on the server.
CVE-2026-63234 | 9.9 (Critical) - A SQL injection and unsafe deserialisation vulnerability in Koollab LMS allowed an authenticated attacker to inject through the manual mark assessment endpoint, control data passed to unserialize(), write a webshell to a publicly accessible location, and execute arbitrary code on the server.
CVE-2026-63235 | 3.7 (Low) - An improper access control vulnerability in Koollab LMS allowed an unauthenticated attacker to forcibly terminate the session of any user given their email address via the login kickout endpoint, resulting in a denial of service.
CVE-2026-63236 | 3.7 (Low) - An improper access control vulnerability in Koollab LMS allowed an unauthenticated attacker to read another user's name, internal identifier, scores, lesson status, lesson position, and cached lesson state via the SCORM API endpoint.
CVE-2026-63237 | 4.8 (Medium) - A TOTP two-factor authentication bypass vulnerability in Koollab LMS allowed an attacker to supply a client-controlled seed to generate a matching one-time password and bypass the second authentication factor, potentially enabling unauthorised access to administrator accounts.
CVE-2026-63238 | 6.5 (Medium) - An authentication bypass vulnerability in Koollab LMS allowed an unauthenticated attacker to take over any account, including administrator accounts, by supplying a valid user UUID without providing primary credentials via the 2FA validation endpoint.
CVE-2026-63239 | 5.4 (Medium) - A hard-coded AWS IAM credentials vulnerability in Koollab LMS allowed an attacker to access shared multi-tenant S3 buckets and SQS queues, exposing sensitive data and enabling malicious content injection, job manipulation, or email interception.
CVE-2026-63240 | 4.3 (Medium) - An information disclosure vulnerability in Koollab LMS allowed an authenticated learner to obtain correct quiz answers from the course status endpoint without completing the assessment legitimately, compromising the integrity of assessments.
CVE-2026-63241 | 3.1 (Low) - An insecure direct object reference vulnerability in Koollab LMS allowed an authenticated user to query the course completion progress of any other user without authorisation, disclosing private learning progress information.
CVE-2026-63242 | 4.3 (Medium) - A business logic vulnerability in Koollab LMS allowed an authenticated learner to set their lesson completion status to completed via the SCORM commit endpoint without viewing the lesson material, compromising training and completion records.
Affected Versions
Koollab LMS version 5.3.2
Mitigation
Three Learning, the product owner, has rolled out fixes for all reported vulnerabilities across all cloud-hosted instances of the LMS. As the application is offered as a Software-as-a-Service (SaaS), no manual update or patching is required. Users and administrators do not need to take any action.
Timeline
2026-04-14 – Vendor Disclosure
2026-04-26 – Vendor Patched
2026-07-29 – Public Release
Credit
Discovered by:
Poon Jia Qi: CVE-2026-63227, CVE-2026-63230, CVE-2026-63232, CVE-2026-63240
Sng Peng Boon: CVE-2026-63228, CVE-2026-63241, CVE-2026-63242
Loh Jing Yen: CVE-2026-63229, CVE-2026-63239
Jerome Leow: CVE-2026-63231, CVE-2026-63233, CVE-2026-63234, CVE-2026-63236
Loke Yan Hao: CVE-2026-63235
Sim Tian Boon: CVE-2026-63237, CVE-2026-63238
