The analysis of the security advisory and the associated patch commit clearly points to a single vulnerable function. The vulnerability, as described, is an information disclosure due to improper cache control settings on file downloads. The provided patch modifies the download method within the FileDownloadController class. The change directly addresses the flawed logic that determined whether a file's response should have a public or private Cache-Control header. The original implementation was too broad, making any file scheme not named 'private' publicly cacheable. The patch refactors this logic to be more secure by default, only allowing schemes explicitly configured as public to be cached, thus fixing the vulnerability. Therefore, the Drupal\system\FileDownloadController::download function is the precise location of the vulnerability.
Drupal\system\FileDownloadController::downloadcore/modules/system/src/FileDownloadController.php
| Package Name | Ecosystem | Vulnerable Versions | First Patched Version |
|---|---|---|---|
| drupal/core | composer | >= 8.0.0, < 10.4.9 | 10.4.9 |
| drupal/core | composer | >= 10.5.0, < 10.5.6 | 10.5.6 |
| drupal/core | composer | >= 11.0.0, < 11.1.9 | 11.1.9 |
| drupal/core | composer | >= 11.2.0, < 11.2.8 | 11.2.8 |
Ongoing coverage of React2Shell