Skip to content

fix: enforce mimeTypes restriction when useTempFiles is enabled#16255

Open
eddieran wants to merge 4 commits intopayloadcms:mainfrom
eddieran:fix/mime-validation-tempfiles
Open

fix: enforce mimeTypes restriction when useTempFiles is enabled#16255
eddieran wants to merge 4 commits intopayloadcms:mainfrom
eddieran:fix/mime-validation-tempfiles

Conversation

@eddieran
Copy link
Copy Markdown

@eddieran eddieran commented Apr 12, 2026

This replaces #16236 which was auto-closed when the fork was deleted.

Overview

Fixes MIME type validation being skipped on upload collections when upload.useTempFiles: true is set globally.

Key Changes

  • When file.data is empty (as it is with temp files), read content from file.tempFilePath before running validation
  • Removed the !useTempFiles gate that was causing the entire fallback validation block to be skipped

Design Decisions

The original code used the useTempFiles config flag to decide whether to run fallback validation, but checking tempFilePath directly is more accurate.

Files uploaded via the local API always have file.data populated even when useTempFiles is enabled.

Simply removing the gate (as originally suggested) would've fixed the extension check but left validateSvg broken, since it would still run on an empty buffer and always return safe.

Fixes #16233.

eddieran and others added 4 commits April 10, 2026 08:53
When `useTempFiles` is true, `file.data` is an empty buffer so
`fileTypeFromBuffer` returns undefined. The fallback extension-based
validation was gated behind `!useTempFiles`, which meant it was skipped
entirely — allowing any file type to bypass MIME restrictions.

Remove the `!useTempFiles` condition so extension-based validation
always runs when buffer detection fails, regardless of temp file mode.

Fixes payloadcms#16233

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@PatrikKozak PatrikKozak self-assigned this Apr 13, 2026
@PatrikKozak PatrikKozak self-requested a review April 13, 2026 13:25
@PatrikKozak PatrikKozak force-pushed the fix/mime-validation-tempfiles branch from c7974af to 42f08a3 Compare April 13, 2026 13:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Security] MIME type validation bypass when useTempFiles is enabled

2 participants