Drupal security updates, in plain English · Module

S3 File System CORS Upload

1,225 sites report using it · on drupal.org · 1 security update explained here

This module allows users to upload very large files directly to a remote storage service from their browser.

Below is every security update for S3 File System CORS Upload that this site has covered, newest first. Each one says who could exploit it, whether it applies to your site, how urgent it is, and what to tell your developer. If your site uses this module and you are not sure which version, that is the first question to ask whoever looks after it.

S3 File System CORS Upload

Critical · 1,225 sites report using it · SA-CONTRIB-2026-295 · on drupal.org · Week of 4 November 2026

The module does not properly check who is allowed to manage uploaded files. Anyone could delete files they should not have access to. They might uncover hidden details or alter content.

  • Who could do thisAnyone visiting the site. No login needed.
  • Does it apply to youAny site using this module.
  • Has it been used in attacksNo sign of it.
  • How urgentDrupal rates this critical. Cyber Essentials expects a fix within 14 days. Do it this week.

Tell your developerUpdate S3 File System CORS Upload to 8.x-1.3.

For developers: what the fix changed

The fix introduces an `UploadToken` service to sign upload directories and reserve file keys for the current user. It validates these tokens in `AjaxController::getKey()` and `AjaxController::saveFile()` and adds download access checks in `S3fsCorsFile::valueCallback()` to prevent users from overwriting or accessing files they do not own.

Also in this release Added filename validation for disallowed characters, fixed raw HTML in error messages, added human-readable file size units, fixed file input visibility after failed uploads, and fixed duplicated protocol in custom S3FS hostname.

8.x-1.2 to 8.x-1.3 9 commits, 13 files including 2 tests.

  • .cspell-project-words.txt +1 −1
  • config/schema/s3fs_cors.schema.yml +7 −0
  • s3fs_cors.info.yml +1 −0
  • s3fs_cors.js +130 −80 fix
  • s3fs_cors.module +30 −0
  • s3fs_cors.services.yml +4 −0 fix
  • src/Controller/AjaxController.php +71 −32 fix
  • src/Element/S3fsCorsFile.php +42 −6 fix
  • src/Plugin/Field/FieldWidget/S3fsCorsFileWidget.php +22 −0
  • src/Plugin/Field/FieldWidget/S3fsCorsImageWidget.php +22 −0
  • src/UploadToken.php +79 −0 fix

Full diff, 8.x-1.2 to 8.x-1.3

The comparison is against the release immediately before the fix. If your site is on an older release, more will have changed.

Not sure what your site is running?

Send me your Drupal site's address.

I'll tell you what I can see from outside, what the Drupal 10 end of life on 9 December means for it, and what it would cost to have me keep it patched. There's no charge for that and no obligation. peter@peterbrady.co.uk


Get in touch

Tell me who you are, what your organisation does, and what you need. That might be a Drupal site that needs looking after, an upgrade to get done before December, or an agency that needs Drupal cover.

If I can help, I'll say so and suggest a call. If I can't, I'll tell you straight away rather than waste your time.

peter@peterbrady.co.uk

For context: I work mainly with UK membership bodies, charities and research organisations, and with the agencies that look after their websites. Not recruiters.

Or start smaller and connect with me on LinkedIn. That's where I post what I find digging around in charity and grants data, and where the free tools turn up first.