Skip to main content

Laravel-Mediable CVE-2026-49972

HIGH
Unrestricted Upload of File with Dangerous Type (CWE-434)
2026-07-13 VulnCheck
7.7
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Recon
    Reach Mediable upload endpoint
  2. Delivery
    Submit crafted shell.php.jpg
  3. Exploit
    Bypass MIME/extension/aggregate checks
  4. Install
    File stored with inner .php basename
  5. C2
    Request stored file URL
  6. Execute
    Misconfigured server executes as PHP
  7. Impact
    Webshell RCE on host

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V5 - File Handling File type validation, storage isolation
MITRE ATT&CK

2 techniques across 2 tactics: Command and Control, Persistence

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Requires the target to run laravel-mediable before 7.0.0 AND host it on an Apache or nginx server misconfigured to execute any filename containing '.php' (e.g., unanchored \.php handler/location rules rather than \.php$). The attacker must reach a Mediable file-upload endpoint and supply a crafted double-extension file (inner executable extension, benign outer extension such as shell.php.jpg) so validation keys on the .jpg while PATHINFO_FILENAME preserves shell.php in the stored name. Limiting factors: exploitation fails entirely on correctly configured servers (files served statically), and the authentication level is unconfirmed - the description says 'unauthenticated' while the vendor CVSS uses PR:L, so whether the upload endpoint requires a login must be verified per deployment.

Impact

The vendor CVSS 4.0 vector (AV:N/AC:L/AT:P/PR:L/UI:N/VC:H/VI:H/VA:H) scores 7.7 (High), and the AT:P (Attack Requirements: Present) metric correctly captures that exploitation depends on a condition outside the attacker's control - a misconfigured Apache/nginx server that executes .php-containing filenames. That single dependency is the dominant risk limiter: on a correctly configured server the uploaded file is served as a static .jpg and never executes, so real-world impact is conditional rather than universal. Note a conflict to verify: the description states 'unauthenticated attackers,' but the vendor vector uses PR:L (authenticated) - treat the auth requirement as not confirmed from available data and verify against the specific upload endpoint's protection. No EPSS score, no KEV listing, and no POC were provided, so despite high technical impact (full RCE) this reads as a real-but-conditional priority for teams running affected versions on permissive server configs, not a mass-exploited emergency.

Exploit ScenarioDerived

An attacker uploads shell.php.jpg through the application's Mediable-backed upload feature; the outer .jpg satisfies every MIME/extension/aggregate check while the stored basename retains shell.php. On an Apache/nginx server configured to execute any filename containing .php, the attacker then requests the stored file's URL and their embedded PHP webshell runs on the server. No public exploit code was identified at time of analysis; given AV:N/AC:L the request itself is trivial, but AT:P means success hinges on the server misconfiguration being present.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.8% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Jul 13, 2026

Remote code execution in the plank/laravel-mediable package before 7.0.0 lets attackers upload a double-extension file such as shell.php.jpg that passes all MIME, extension, and aggregate-type validation because of the trailing .jpg, yet retains an inner .php in its stored basename. On Apache/nginx servers misconfigured to execute any filename containing .php, the stored artifact runs as PHP. Reported by VulnCheck with a vendor patch in 7.0.0; there is no public exploit identified at time of analysis and it is not listed in CISA KEV.

RemediationAI

Upgrade to Laravel-Mediable 7.0.0 or later (Vendor-released patch: 7.0.0), which is a dedicated security release; apply the fix from commit 49e3583bed13423611b3391f89e6b002571eed73 per https://github.com/plank/laravel-mediable/releases/tag/7.0.0. Version 7.0.0 also introduces mediable.forbidden_file_extensions / MediaUploader::setForbiddenExtensions(), so blacklist php, phtml, php3-8, and phar after upgrading. Where immediate upgrade is not possible, harden the web server: on Apache remove broad AddHandler/SetHandler application/x-httpd-php rules and use FilesMatch "\.php$" (anchored) so only trailing-.php files execute; on nginx replace any location ~ \.php with location ~ \.php$ and add try_files $uri =404 in the PHP block - this closes the double-extension execution path with essentially no functional side effect. Additionally, store uploads outside the web root or serve them from a domain/path with PHP execution disabled (side effect: requires adjusting media-serving URLs), and rename stored files to remove any embedded .php segment.

Affects your stack

Find out whether the stacks and servers you run are on an affected version.

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

Laravel-Mediable is a Laravel media-management package handling uploads and attachment of files to Eloquent models. The root cause is CWE-434 (Unrestricted Upload of File with Dangerous Type): the uploader validates the outer/last extension (.jpg) and the derived MIME/aggregate type, but the filename is stored via PHP's PATHINFO_FILENAME, which strips only the final extension and thus preserves the inner .php in the base name (shell.php.jpg → basename shell.php). The vulnerability only becomes code execution when it meets a permissive web-server configuration - Apache with a loose AddHandler/SetHandler or nginx with a broad \.php location that passes any filename containing .php to the PHP-FPM handler - making this a chained application-plus-server-misconfiguration weakness. The affected artifact per CPE is cpe:2.3:a:plank:laravel-mediable:*:*:*:*:*:*:*:*.

Know when PHP gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (VulnCheck) PRIMARY 7.7 HIGH
CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
vuln.today AI 7.5 HIGH

AC:H because RCE depends on an attacker-uncontrolled server misconfiguration executing .php-containing names; PR:L follows the vendor vector given the auth conflict; C/I/A:H reflect full webshell RCE.

3.1 AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H
4.0 AV:N/AC:L/AT:P/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
Present
Privileges Required
Low
User Interaction
None
Vulnerable system: Confidentiality
High
Vulnerable system: Integrity
High
Vulnerable system: Availability
High
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

DescriptionCVE.org

Laravel-Mediable before 7.0.0 contains a file upload vulnerability that allows unauthenticated attackers to achieve remote code execution by uploading a file with an embedded PHP extension disguised within a double extension such as shell.php.jpg. The PATHINFO_FILENAME extraction preserves the inner .php extension in the base name, and on misconfigured Apache or nginx servers that execute any filename containing .php as PHP, the stored file is interpreted as executable code while all MIME type, extension, and aggregate type validation checks pass due to the outer .jpg extension.

Executive ViewAI

Why It Matters

The plank/laravel-mediable package before version 7.0.0 contains a remote code execution vulnerability exploitable through double-extension file upload bypass; no public exploit identified at time of analysis. Organizations using this Laravel media handling component in production environments with standard Apache or nginx server configurations face risk of unauthorized code execution and potential full server compromise.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.8%
Top 48% exploitable
Prevalence
Low
niche Laravel media-handling Composer package, limited enterprise footprint
Social Media
2
Sightings
Data Quality
6 sources
Confidence: High
NVD CVE.org EPSS Vulnrichment CIRCL GitHub VulDB

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.8%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact
High
Technical Impact
Total

Priority Score

39
Low Medium High Critical
KEV: 0
EPSS: +1
CVSS: +38
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Malicious file upload attacks exploit insufficient validation when web applications accept user-provided files.

Remote Code Execution represents the critical moment when an attacker successfully runs arbitrary code on a target system without physical access.

Affected Products (CPE)CVE.org

cpe:2.3:a:plank:laravel-mediable:*:*:*:*:*:*:*:*

More in PHP

View all
CVE-2019-11043 CRITICAL POC
9.8 Oct 28

In PHP versions 7.1.x below 7.1.33, 7.2.x below 7.2.24 and 7.3.x below 7.3.11 in certain configurations of FPM setup it

CVE-2012-1823 CRITICAL POC
9.8 May 11

sapi/cgi/cgi_main.c in PHP before 5.3.12 and 5.4.x before 5.4.2, when configured as a CGI script (aka php-cgi), does not

CVE-2016-1555 CRITICAL POC
9.8 Apr 21

(1) boardData102.php, (2) boardData103.php, (3) boardDataJP.php, (4) boardDataNA.php, and (5) boardDataWW.php in Netgear

CVE-2018-11138 CRITICAL POC
9.8 May 31

The '/common/download_agent_installer.php' script in the Quest KACE System Management Appliance 8.0.318 is accessible by

CVE-2024-11680 CRITICAL POC
9.8 Nov 26

ProjectSend versions prior to r1720 are affected by an improper authentication vulnerability. Rated critical severity (C

CVE-2025-49113 CRITICAL POC
9.9 Jun 02

Roundcube Webmail contains a critical PHP object deserialization vulnerability (CVE-2025-49113, CVSS 9.9) that allows au

CVE-2017-9841 CRITICAL POC
9.8 Jun 27

Util/PHP/eval-stdin.php in PHPUnit before 4.8.28 and 5.x before 5.6.3 allows remote attackers to execute arbitrary PHP c

CVE-2025-0108 HIGH POC
8.8 Feb 12

Palo Alto Networks PAN-OS management web interface contains an authentication bypass allowing unauthenticated attackers

CVE-2021-25298 HIGH POC
8.8 Feb 15

Nagios XI version xi-5.7.5 is affected by OS command injection. Rated high severity (CVSS 8.8), this vulnerability is re

CVE-2021-25296 HIGH POC
8.8 Feb 15

Nagios XI version xi-5.7.5 is affected by OS command injection. Rated high severity (CVSS 8.8), this vulnerability is re

CVE-2013-4983 CRITICAL POC
10.0 Sep 10

The get_referers function in /opt/ws/bin/sblistpack in Sophos Web Appliance before 3.7.9.1 and 3.8 before 3.8.1.1 allows

CVE-2023-6553 CRITICAL POC
9.8 Dec 15

The Backup Migration plugin for WordPress is vulnerable to Remote Code Execution in all versions up to, and including, 1

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy