CVE-2024-49375: Rasa pro Remote Code Execution Vulnerability
CRITICALCVE-2024-49375 is a CRITICAL (CVSS 9.0) remote code execution vulnerability (CWE-502: Deserialization of Untrusted Data) affecting Rasa pro libraries in the PyPI ecosystem. The issue involves rasa allows remote code execution via remote model loading. Remediation is available by upgrading affected packages to version 3.10.12, 3.9.16, 3.8.18, 3.6.21.
CVE-2024-49375 at a Glance
Security Impact
CVSS: 9.0
The security impact metrics below are parsed directly from the CVSS v3.1 vector string (CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:H/I:H/A:H).
How to Fix CVE-2024-49375
To remediate this vulnerability, upgrade all affected Rasa pro dependencies to a patched release. Both direct and transitive dependencies should be checked, as frameworks or security libraries may pull in vulnerable versions transitively.
pip install rasa-pro>=3.10.12
pip install rasa-pro>=3.9.16
pip install rasa-pro>=3.8.18
pip install rasa>=3.6.21
Run the following command in your project directory to verify that all resolved dependencies use the patched release:
pip show rasa-pro
How to Check if You Are Affected
To determine whether your Python environment is affected by CVE-2024-49375, inspect your installed packages using pip:
pip show rasa-pro
Analyze the terminal output to locate any version of Rasa pro in your dependency tree. If any resolved version matches the vulnerable ranges listed in the table below (for example, versions earlier than 3.10.12), your application is affected.
Note: The pip show rasa-pro command checks currently installed packages in your active Python environment.
Technical Details
Vulnerability Mechanism & Technical Analysis
This vulnerability is classified under CWE-502: Deserialization of Untrusted Data, where the product deserializes untrusted data without sufficiently ensuring that the resulting data will be valid. In Rasa pro, software state validation or input boundaries are circumvented during processing. Review the official source advisory statement below for specific affected components, classes, and reproduction details.
Source Advisory Statement
CVE-2024-49375 Affected Rasa pro Versions
4 component(s)| Product / Package | Ecosystem | Affected Versions | Fixed Version |
|---|---|---|---|
|
rasa-pro
|
PyPI |
≥ 3.10.0
< 3.10.12
|
3.10.12
|
|
rasa-pro
|
PyPI |
≥ 3.9.0
< 3.9.16
|
3.9.16
|
|
rasa-pro
|
PyPI |
< 3.8.18
|
3.8.18
|
|
rasa
|
PyPI |
< 3.6.21
|
3.6.21
|
References
Frequently Asked Questions
What is CVE-2024-49375?
Which Rasa pro versions are affected?
What version fixes CVE-2024-49375?
Is rasa-pro affected?
Is rasa affected?
What is the CVSS score of CVE-2024-49375?
What CWE is associated with CVE-2024-49375?
How can I check PyPI dependencies for CVE-2024-49375?
Machine-readable OSV JSON
OSV v1.5 Schema
{
"schema_version" : "1.4.0",
"id" : "GHSA-cpv4-ggrr-7j9v",
"modified" : "2025-01-14T21:59:24Z",
"published" : "2025-01-14T16:00:21Z",
"aliases" : [ "CVE-2024-49375" ],
"summary" : "Rasa Allows Remote Code Execution via Remote Model Loading",
"details" : "## Vulnerability\nA vulnerability has been identified in Rasa Pro and Rasa Open Source that enables an attacker who has the ability to load a maliciously crafted model remotely into a Rasa instance to achieve Remote Code Execution.\n\nThe prerequisites for this are:\n- The HTTP API must be enabled on the Rasa instance eg with `--enable-api`. This is not the default configuration.\n- For unauthenticated RCE to be exploitable, the user must not have configured any authentication or other security controls recommended in our documentation.\n- For authenticated RCE, the attacker must posses a valid authentication token or JWT to interact with the Rasa API.\n\n## Fix\nWe encourage you to upgrade to a version of Rasa that includes a fix. These are:\n\n- Rasa Pro 3.8.18, 3.9.16, 3.10.12\n- Rasa Open Source 3.6.21\n\nOnce you have upgraded your Rasa Pro or Open Source installation, you will need to retrain your model using the fixed version of Rasa Pro or Open Source. If you have a custom component that inherits from one of the components listed below and modified the persist or load method, make sure to update your code. Please contact us in case you encounter any problems.\n\nAffected components:\n\n- `CountVectorFeaturizer`\n- `LexicalSyntacticFeaturizer`\n- `LogisticRegressionClassifier`\n- `SklearnIntentClassifier`\n- `DIETClassifier`\n- `CRFEntityExtractor`\n- `TrackerFeaturizer`\n- `TEDPolicy`\n- `UnexpectedIntentTEDPolicy`\n\nIf you are unable to upgrade immediately, please follow our mitigation advice below.\n\n## Mitigation Advice\n\n- The unauthenticated RCE can be mitigated by ensuring that you enable authentication for the Rasa HTTP API if this is enabled. This means that in addition to passing `--enable-api` to Rasa, you should also pass an authentication configuration as described in our documentation [here](https://rasa.com/docs/rasa-pro/production/rest-api/#enabling-the-rest-api). \n\n- The authenticated RCE can be mitigated by:\n - Ensuring that you only load models from trusted sources such as your own CI pipelines. You can check file hashes for model archives to confirm that a model has not been tampered with between training and use.\n - Confirming that you have sufficient access controls and utilize the principle of least privilege to control who in your organization has the ability to interact with the Rasa API even with authentication enabled.\n\n## Future Releases\nAs an additional security step, a future release of Rasa Pro will remove the ability to enable the API without any authentication method enabled.\n\n## Credit\nRasa would like to thank Julian Scheid from Deutsche Telekom Security GmbH for responsible disclosure of this vulnerability.",
"severity" : [ {
"type" : "CVSS_V3",
"score" : "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:H/I:H/A:H"
} ],
"affected" : [ {
"package" : {
"ecosystem" : "PyPI",
"name" : "rasa-pro"
},
"ranges" : [ {
"type" : "ECOSYSTEM",
"events" : [ {
"introduced" : "3.10.0"
}, {
"fixed" : "3.10.12"
} ]
} ]
}, {
"package" : {
"ecosystem" : "PyPI",
"name" : "rasa-pro"
},
"ranges" : [ {
"type" : "ECOSYSTEM",
"events" : [ {
"introduced" : "3.9.0"
}, {
"fixed" : "3.9.16"
} ]
} ]
}, {
"package" : {
"ecosystem" : "PyPI",
"name" : "rasa-pro"
},
"ranges" : [ {
"type" : "ECOSYSTEM",
"events" : [ {
"introduced" : "0"
}, {
"fixed" : "3.8.18"
} ]
} ]
}, {
"package" : {
"ecosystem" : "PyPI",
"name" : "rasa"
},
"ranges" : [ {
"type" : "ECOSYSTEM",
"events" : [ {
"introduced" : "0"
}, {
"fixed" : "3.6.21"
} ]
} ]
} ],
"references" : [ {
"type" : "WEB",
"url" : "https://github.com/RasaHQ/rasa-pro-security-advisories/security/advisories/GHSA-cpv4-ggrr-7j9v"
}, {
"type" : "ADVISORY",
"url" : "https://nvd.nist.gov/vuln/detail/CVE-2024-49375"
}, {
"type" : "WEB",
"url" : "https://github.com/RasaHQ/rasa/commit/2bb1d779d4f4acaf70b6dfa35dd1899dccbb1ae6"
}, {
"type" : "PACKAGE",
"url" : "https://github.com/rasahq/rasa"
} ],
"database_specific" : {
"cwe_ids" : [ "CWE-502", "CWE-94" ],
"severity" : "CRITICAL",
"github_reviewed" : true,
"github_reviewed_at" : "2025-01-14T16:00:21Z",
"nvd_published_at" : "2025-01-14T19:15:31Z"
}
}