Vulnerability from drupal
The Drupal AI module provides a framework for easily integrating Artificial Intelligence on any Drupal site using any kind of AI (from multiple vendors). The sub-modules AI Chatbot and AI Assistants API allow users to interact with the Drupal site via a 'chat' interface.
The AI Chatbot module doesn't protect against Cross Site Request Forgeries in the Deepchat chatbot. This could allow an attacker to craft a scenario that can forge a request on behalf of a privileged user. When combined with the AI Search submodule, this could result in the AI Assistant exposing indexed data that the attacker should not have access to. When combined with the external AI Agent module, this could result in the AI Assistant exposing and allowing modification of site configuration of fields, content types, and vocabularies. Sites with custom built agents, with more privileged access, could be at greater risk from an exploit of this vulnerability.
This vulnerability is mitigated by:
- The targeted user needs to have an active session with a role with the "access deepchat api" permission and permission to assistants.
- To extract data, the target site must have a permissive CORS policy allowing the attacking site to read the result of a cross origin request.
- To modify data, the targeted user must have permission to use the configured agents.
{
"affected": [
{
"database_specific": {
"affected_versions": "\u003e=1.0.0 \u003c1.0.2",
"patched": true
},
"package": {
"ecosystem": "Packagist:https://packages.drupal.org/8",
"name": "drupal/ai"
},
"ranges": [
{
"database_specific": {
"constraint": "\u003e=1.0.0 \u003c1.0.2"
},
"events": [
{
"introduced": "1.0.0"
},
{
"fixed": "1.0.2"
}
],
"type": "ECOSYSTEM"
}
],
"severity": []
}
],
"aliases": [
"CVE-2025-31677"
],
"credits": [
{
"contact": [
"https://www.drupal.org/user/385947"
],
"name": "Marcus Johansson"
}
],
"details": "The Drupal AI module provides a framework for easily integrating Artificial Intelligence on any Drupal site using any kind of AI (from multiple vendors). The sub-modules AI Chatbot and AI Assistants API allow users to interact with the Drupal site via a \u0027chat\u0027 interface.\n\nThe AI Chatbot module doesn\u0027t protect against Cross Site Request Forgeries in the Deepchat chatbot. This could allow an attacker to craft a scenario that can forge a request on behalf of a privileged user. When combined with the AI Search submodule, this could result in the AI Assistant exposing indexed data that the attacker should not have access to. When combined with the external AI Agent module, this could result in the AI Assistant exposing and allowing modification of site configuration of fields, content types, and vocabularies. Sites with custom built agents, with more privileged access, could be at greater risk from an exploit of this vulnerability.\n\nThis vulnerability is mitigated by:\n\n* The targeted user needs to have an active session with a role with the \"access deepchat api\" permission and permission to assistants.\n* To extract data, the target site must have a permissive CORS policy allowing the attacking site to read the result of a cross origin request.\n* To modify data, the targeted user must have permission to use the configured agents.",
"id": "DRUPAL-CONTRIB-2025-003",
"modified": "2025-03-31T22:03:43.000Z",
"published": "2025-01-15T15:58:05.000Z",
"references": [
{
"type": "WEB",
"url": "https://www.drupal.org/sa-contrib-2025-003"
}
],
"schema_version": "1.7.0"
}
Sightings
| Author | Source | Type | Date |
|---|
Nomenclature
- Seen: The vulnerability was mentioned, discussed, or observed by the user.
- Confirmed: The vulnerability has been validated from an analyst's perspective.
- Published Proof of Concept: A public proof of concept is available for this vulnerability.
- Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
- Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
- Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
- Not confirmed: The user expressed doubt about the validity of the vulnerability.
- Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.