CVE-2024-48821: Stored Cross-Site Scripting in Automatic Systems SlimLane (FtpConfig.php)

The FtpConfig.php page on the affected Automatic Systems Maintenance — SlimLane (build 29565) build stores unsanitised input, letting an attacker persist a script payload that executes for anyone viewing the configuration. Assigned CVE-2024-48821.

CVE ID
CVE-2024-48821
Type
Stored / persistent XSS
Affected
Automatic Systems SlimLane (build 29565)
Vector
Unauthenticated, network

Responsible disclosure

This research was carried out by Solusec and published after coordinated disclosure, with a CVE identifier assigned through the appropriate numbering authority. It is shared for defensive and educational purposes so that affected operators can identify and remediate the issue. We do not publish research to enable misuse.

If you operate an affected product and want help confirming or fixing this, get in touch.

Summary

The same FtpConfig.php endpoint on the affected Automatic Systems SlimLane build does not sanitise the values it stores. An attacker can place a JavaScript payload into the host, user or password fields, which is persisted and then executed whenever the FTP configuration page is subsequently viewed — a stored (persistent) cross-site scripting vulnerability.

This vulnerability is tracked as CVE-2024-48821. The authoritative record is on the CVE List (CVE-2024-48821), with severity metrics on the National Vulnerability Database.

Technical detail

Submitting the configuration with script in the stored fields persists the payload:

POST /FtpConfig.php HTTP/1.1
Host: <IP>
Content-Length: 200
Accept-Language: en-US,en;q=0.9
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.6613.120 Safari/537.36
Connection: keep-alive

{"fct":"save_ftp_config","enabled":true,"host":"\"><script>alert(document.domain)</script>","user":"\"><script>alert(document.domain)</script>","password":"\"><script>alert(document.domain)</script>"}

On revisiting the FTP configuration page the stored script executes in the context of the interface. Critically, it also fires for any logged-in operator who views the configuration, so an unauthenticated attacker can stage a payload that later runs in an administrator's session.

Impact

Because the payload runs in the context of an authenticated operator, it can be used to perform actions as that operator, capture session material, or pivot deeper into the management interface. Stored XSS chained with the missing access control on the same page (CVE-2024-48822) is a particularly clean unauthenticated-to-operator path.

Remediation

  • Apply contextual output encoding wherever stored configuration values are rendered back into the page.
  • Validate and constrain configuration inputs on the server side.
  • Gate the endpoint behind authentication and authorisation so untrusted input cannot be stored in the first place (see CVE-2024-48822).

Common questions

What is CVE-2024-48821?

A stored cross-site scripting vulnerability in FtpConfig.php on an Automatic Systems SlimLane build. Unsanitised host, user and password fields persist a script payload that executes when the configuration page is viewed.

Who does the payload execute against?

Anyone who views the FTP configuration page, including logged-in operators. That means an unauthenticated attacker can plant a payload that later runs in an administrator's session.

Is this related to the other Automatic Systems CVEs?

Yes. It shares the FtpConfig.php endpoint with CVE-2024-48822 (missing access control), and the two chain together neatly. CVE-2024-48823 and CVE-2024-48824 are separate file-inclusion issues in the same product family.

What is the fix?

Contextual output encoding when rendering stored values, server-side input validation, and proper authentication on the endpoint.

Related

Found a vulnerability, or need testing that finds them?

We run coordinated disclosure for our own research and help vendors triage and fix what we report. If you need testing to this standard, the scoping conversation is free.