SA-CONTRIB-2026-271: Critical severity composer/drupal/ai vulnerability
This module provides a framework for integrating AI providers and features into Drupal. Audio for every speech-to-text request is written to the same file in the temporary directory and does not delete it afterwards. As a result, an attacker who can read the site's temporary directory could get the audio that another user sent for transcription. This vulnerability is mitigated by the fact that the attacker needs read access to the temporary directory, either through the server (for example a shared hosting account) or through a module or custom code that exposes temporary files to other users. Drupal core's system.temporary route only serves temporary files to the user who owns them.
Credit
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
composer/drupal/aito a version that resolves this vulnerability.Fixed in 1.5.2Fixed in 1.4.11Fixed in 1.5.2Fixed in 1.4.11
Event History
Frequently Asked Questions
Who is realistically exposed to this issue?
Sites are exposed when an attacker can read the site's temporary directory, such as on a shared server environment or through a module or custom code that makes temporary files available to other users.
Does Drupal core's temporary-file route expose the recorded audio to other users?
No. Drupal core's system.temporary route serves temporary files only to the user who owns them.
What does an attacker need to access another user's transcription audio?
The attacker needs read access to the site's temporary directory. The issue results from all speech-to-text audio being written to the same temporary file and not being deleted afterward.