GHSA-mmj4-63m4-r6h5: Malicious File Upload

Published Aug 7, 2026
·
Updated

Impact This is an unsafe file upload validation vulnerability that can lead to remote code execution in vulnerable application configurations.

Applications are impacted when they: - validate uploads using isimage or mimein without an independent safe extension check, such as extin on patched versions - save uploaded files using the client-supplied filename - place uploads in a web-accessible directory where PHP files can execute

Patches Upgrade to v4.7.4 or later.

Workarounds - Save uploads outside the public web root, preferably under writable/uploads. - Use $file->store() or $file->move($path, $file->getRandomName()) instead of preserving the original client filename. - Disable script execution in any public upload directory. - Manually verify the client filename extension before moving the file. - For image uploads, reject files when $file->getClientExtension() is not an allowed image extension. - For exact MIME-type validation, reject files when $file->getClientExtension() does not match $file->guessExtension().

Affected Software

1 affected componentFixes available
composer/codeigniter4/framework<4.7.4
4.7.4

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade composer/codeigniter4/framework to a version that resolves this vulnerability.

    Fixed in 4.7.4
  2. Upgrade

    Upgrade unknown (application) to a version that resolves this vulnerability.

    Fixed in 4.7.4
  3. Configuration

    Disable script execution in any public upload directory.

    File upload handling Public upload directory script execution = disabled
  4. Configuration

    Reject files when `$file->getClientExtension()` does not match `$file->guessExtension()` (for exact MIME-type validation).

    File upload validation Extension validation (client vs guessed) = reject on mismatch
  5. Configuration

    For image uploads, reject files when `$file->getClientExtension()` is not an allowed image extension.

    Image uploads Allowed image extension enforcement = reject if not allowed
  6. Configuration

    Manually verify the client filename extension before moving the file.

    File upload processing Client filename extension verification before move = manual verify before moving
  7. Configuration

    Save uploads outside the public web root, preferably under `writable/uploads`.

    Filesystem placement for uploads Upload storage location = outside public web root (e.g., writable/uploads)
  8. Configuration

    Use `$file->store()` or `$file->move($path, $file->getRandomName())` instead of preserving the original client filename.

    File upload saving Preserve original client filename = do not preserve; use random name

Event History

Aug 7, 2026
Advisory Published
via GitHub·06:24 PM
Data Sourced
via GitHub·06:24 PM
DescriptionSeverityWeaknessAffected Software
Free Weekly Intel

Don't miss critical vulnerabilities

Join thousands of security professionals who receive our weekly digest of trending CVEs, zero-days, and exploited vulnerabilities.

No spam. Unsubscribe anytime.

Frequently Asked Questions

1

What is the severity of GHSA-mmj4-63m4-r6h5?

The severity of GHSA-mmj4-63m4-r6h5 is critical with a score of 9.8.

2

How do I fix GHSA-mmj4-63m4-r6h5?

To fix GHSA-mmj4-63m4-r6h5, ensure that file uploads are validated with both safe extension checks and appropriate MIME type checks.

3

What happens if GHSA-mmj4-63m4-r6h5 is exploited?

Exploiting GHSA-mmj4-63m4-r6h5 can lead to remote code execution on the vulnerable application.

4

Which software is affected by GHSA-mmj4-63m4-r6h5?

The vulnerability GHSA-mmj4-63m4-r6h5 affects the composer/codeigniter4/framework software.

5

What type of vulnerability is GHSA-mmj4-63m4-r6h5 categorized as?

GHSA-mmj4-63m4-r6h5 is categorized as a Malicious File Upload vulnerability.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203