Loading...
Skip to main content

CVE-2026-33687 — Vulnerability in code16/sharp — CVE Details

HIGH

Sharp has Unrestricted File Upload via Client-Controlled Validation Rules

Published March 25, 2026Updated March 27, 2026Source: osv

Summary

### Summary The `code16/sharp` Laravel admin panel package contains a vulnerability in its file upload endpoint that allows authenticated users to bypass all file type restrictions. ### Details The upload endpoint within the `ApiFormUploadController` accepts a client-controlled `validation_rule` parameter. This parameter is directly passed into the Laravel validator without sufficient server-side enforcement. By intercepting the request and sending `validation_rule[]=file`, an attacker can completely bypass all MIME type and file extension restrictions. The vulnerable code is located in `src/Http/Controllers/Api/ApiFormUploadController.php` at line 24. ### Impact This vulnerability leads to several critical security risks: Attackers can upload arbitrary files, including PHP webshells, to the server. For more details on the package, visit: https://github.com/code16/sharp MIME type and extension validation can be bypassed entirely via client-controlled rules. Review the CWE definition here: https://cwe.mitre.org/data/definitions/434.html If the storage disk is configured to be publicly accessible, this can lead to Remote Code Execution (RCE). See the vendor repository: https://github.com/code16/sharp (Note: Under default configurations, executing uploaded PHP files directly is not possible unless a public disk configuration is in place.) ### Patches This issue has been addressed by removing the client-controlled validation rules and strictly defining upload rules server-side. The fix is available in pull request https://github.com/code16/sharp/pull/714. ### Workarounds - Restrict Disk Access: Ensure that the storage disk used for Sharp uploads is strictly private. Under default configurations, an attacker cannot directly execute uploaded PHP files unless a public disk configuration is explicitly used. For more details on Laravel disk configurations, visit: https://laravel.com/docs/13.x/filesystem ### Credits Reported by [zaurgsynv](https://github.com/zaurgsynv).

Advisory Timeline

  • First published March 25, 2026 (201 days ago).
  • Last revised March 27, 2026 — 2 days after initial publication.

Remediation

Upgrade to the fixed version using your package manager.

Composer
Update code16/sharp to 9.20.0 or later
composer require "code16/sharp:^9.20.0"

After upgrading, run your dependency scanner again to confirm the vulnerability is resolved.

Affected Packages (1)

Affects 1 ecosystem: packagist (1).

PackageEcosystemAffectedFixed In
code16/sharp
packagist
7.0.0-alpha.1, 7.27.0, 7.7.2, v4.0-BETA1 (+306 more)9.20.0

Vulnerability Classification

Common Weakness Enumeration (CWE) identifiers for this vulnerability type.

  • CWE-434
    Unrestricted File UploadMITRE

CVSS Score Breakdown

What the CVSS (Common Vulnerability Scoring System) 8.8 score means for each attack dimension.

Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High

CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H

Frequently Asked Questions

What is CVE-2026-33687?
Sharp has Unrestricted File Upload via Client-Controlled Validation Rules This vulnerability has been assigned a severity rating of HIGH (CVSS score: 8.8/10).
How do I check if my project is affected by CVE-2026-33687?
CVE-2026-33687 affects code16/sharp. Use GeekWala's free vulnerability scanner to check your dependencies against CVE-2026-33687 and 200,000+ other known vulnerabilities.

Severity & Exploitability

CVSS Score
8.8

High exploitability or significant impact. Prioritize remediation within days.

Also Known As

GHSA-fr76-5637-w3g9

Related CVEs

  • CVE-2026-56737
    HIGH

    phpMyFAQ's two-factor authentication login bypasses the password factor

  • CVE-2026-33686
    HIGH

    Sharp is Vulnerable to Path Traversal via Unsanitized Extension in FileUtil

  • CVE-2026-65954
    HIGH

    PHPCSUtils: Remote code execution via eval() in AbstractArrayDeclarationSniff::getActualArrayKey()

  • CVE-2026-61825
    HIGH

    code16/sharp has a stored XSS via data-html-content Sanitizer Bypass

Check if you're affected

Scan your dependencies to see if this vulnerability affects your projects.

Scan Your Dependencies