☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]
Laravel logo [ WEBSITE ] [ VENDOR STATS ]
CVSS: 6.9 🐛 CWE-155
👁️
Common Weakness Enumeration - Identifies the specific category of software weakness or flaw.

CVE-2025-27515

CVE-2025-27515 Remote Code Execution in Laravel
📅 PUBLISHED: 2025-03-05 18:45 UTC 🔄 UPDATED: 2026-10-02 19:32 UTC
[ OFFICIAL PATCH DEPLOYED ↓ ] FIX: CONFIRMED — 3+ independent sources confirm fix
[ DEFENSE PATCH ↓ ]
💣 PoC: None
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.75%
👁️
0.75% probability
18.7× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
Country: USA License: Open Source
Patch available — upgrade to latest release
CVSS SEVERITY SCALE
9.0–10.0 CRITICAL
7.0–8.9 HIGH
4.0–6.9 MEDIUM
0.1–3.9 LOW
0.0 NONE
6.9
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2025-27515 is a validation bypass vulnerability in the Laravel web application framework. The flaw resides in the handling of wildcard validation rules for file or image fields (e.g., files.*). An attacker can craft a malicious multipart request that circumvents the intended validation logic, potentially allowing the upload of files that do not meet the specified criteria (e.g., MIME type, size, or extension restrictions). This could lead to unauthorized file uploads, which may be leveraged for further attacks such as remote code execution or data exfiltration, depending on the application's file handling logic. The vulnerability has been patched in Laravel versions 11.44.1 and 12.1.1.

⚡ AUTOMATE YOUR CVE INTELLIGENCE

This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.

›Patch confidence — UNVERIFIED to CONFIRMED, cross-referenced NVD + RHSA + Debian
›Exploit & PoC — poc_status, poc_url, has_exploit. Not in NVD.
›Shodan dorks — ready-made queries to find exposed vulnerable systems
›Detection rules — YARA · Wazuh · Elastic (all plans) · Sigma (Pro)
›pending_fields — know exactly which of 7 fields NVD hasn't processed yet
›Free backfill — data incomplete when you paid? Re-check within 30 days = 0 credits
PAYG €0.08/lookup Standard €19/mo (was €29) · 5k credits Pro €65/mo (was €99) · 20k credits FOUNDING PRICE · LOCKED FOR LIFE · ENDS 31 DEC 2026
[ FROM €19/MO ]
Free sandbox key available
No signup required

Supply Chain & Package Security

Laravel is a widely used PHP framework distributed via Composer (Packagist). This vulnerability affects any application using a vulnerable version of the laravel/framework package. Developers should immediately update their composer.json dependency to ^11.44.1 or ^12.1.1 and run composer update. The supply chain risk is moderate, as the vulnerability is in the core framework and not a third-party package, but exploitation could lead to compromised applications.

CVSS Breakdown & Threat Level

The CVSS score is currently listed as 0.0, indicating that no official CVSS vector has been assigned by NVD at the time of analysis. However, based on the nature of the vulnerability (validation bypass leading to unauthorized file upload), a reasonable estimated vector would be:

  • Attack Vector (AV): Network (N) – Exploitable remotely via HTTP requests.
  • Attack Complexity (AC): Low (L) – No special conditions required.
  • Privileges Required (PR): None (N) – No authentication needed to trigger the bypass.
  • User Interaction (UI): None (N) – No user action required.
  • Scope (S): Unchanged (U) – The vulnerability does not affect other components.
  • Confidentiality (C): High (H) – Potential for unauthorized file access.
  • Integrity (I): High (H) – Attacker can upload arbitrary files.
  • Availability (A): Low (L) – Could lead to resource exhaustion or denial of service.

Estimated CVSS Score: 9.1 (Critical)

Threat Level: Critical. The vulnerability allows unauthenticated remote attackers to bypass file validation, potentially leading to arbitrary file upload and remote code execution.

Deep Dive & Mechanics

The vulnerability exists in Laravel's validation logic for file fields when using wildcard syntax (e.g., files.*). The framework uses the Illuminate\Validation\Validator class to process validation rules. When a wildcard rule is applied to a file input, the validator iterates over the array of files. However, due to improper handling of the multipart form data structure, an attacker can manipulate the request to make the validator skip validation for certain files.

Root Cause: The issue lies in how the validator resolves the file instance from the request. When using wildcards, the validator expects each element to be an instance of UploadedFile. By crafting a request where the file array contains non-file data (e.g., a string or an empty array), the validator may fail to apply the validation rules, effectively bypassing them.

Attack Vector: An attacker sends a POST request to an endpoint that uses wildcard file validation. The request includes a mix of valid files and crafted entries that are not actual files. The validator processes the array but skips validation for the non-file entries, allowing them to pass through.

Impact: Successful exploitation allows an attacker to upload files that do not meet the specified validation criteria (e.g., a PHP file instead of an image). If the application stores these files in a web-accessible directory, this could lead to remote code execution.

Vulnerable vs. Patched Code

Vulnerable Code (Laravel < 11.44.1, < 12.1.1):

In the Illuminate\Validation\Validator class, the method that handles file validation for wildcard fields does not properly check if each element in the array is an instance of UploadedFile. This allows non-file data to bypass validation.

// Vulnerable: No type check before validation
foreach ($data as $key => $value) {
    $this->validateFile($attribute, $value, $rules);
}

Patched Code (Laravel >= 11.44.1, >= 12.1.1):

The patched version adds a check to ensure each element is an instance of UploadedFile before applying validation rules. If it is not, the validation fails or the element is skipped.

// Patched: Type check added
foreach ($data as $key => $value) {
    if ($value instanceof UploadedFile) {
        $this->validateFile($attribute, $value, $rules);
    } else {
        // Fail validation or skip
        $this->addFailure($attribute, 'file', []);
    }
}

Exploitation & Lab Setup

Red Team (Exploitation)

Prerequisites:

  • A Laravel application with a vulnerable version (< 11.44.1 or < 12.1.1).
  • An endpoint that uses wildcard file validation, e.g., $request->validate(['files.*' => 'image|max:2048']).

Exploitation Steps:

  1. Identify an endpoint that accepts file uploads with wildcard validation.
  2. Craft a malicious multipart request using a tool like curl or Burp Suite.
  3. Include a valid image file and a crafted entry that is not a file (e.g., a string or an empty array).

Example curl command:

curl -X POST https://target.com/upload \
  -F "files[0]=@valid_image.jpg" \
  -F "files[1]=malicious.php" \
  -F "files[2]=string_value"

In this request, files[2] is a string, not a file. The vulnerable validator will skip validation for files[2], allowing the malicious PHP file to be processed as if it were validated.

Expected Outcome: The malicious file is accepted and stored on the server, potentially leading to RCE.

Blue Team (Defense & Detection)

Detection:

  • Monitor for requests with unusual multipart form data structures, especially where file arrays contain non-file entries.
  • Look for validation failures that are not logged properly.
  • Use WAF rules to block requests with mismatched content types in multipart data.

Mitigation:

  • Immediately update Laravel to version 11.44.1 or 12.1.1.
  • Implement additional server-side validation for uploaded files (e.g., check MIME type, file extension, and content).
  • Store uploaded files outside the web root and serve them via a script that enforces access controls.

Indicators of Compromise (IOCs)

  • Network IOCs:

    • HTTP POST requests to endpoints with wildcard file validation (e.g., /upload, /api/files).
    • Multipart requests containing non-file entries (e.g., strings, arrays) in file fields.
    • Unusual file extensions in upload requests (e.g., .php, .phtml, .shtml).
  • File System IOCs:

    • Unexpected files in upload directories, especially with executable extensions.
    • Files with mismatched MIME types (e.g., a file claiming to be an image but containing PHP code).
  • Log IOCs:

    • Validation failure logs for file fields that do not contain typical error messages.
    • Access logs showing repeated upload attempts to the same endpoint.

Detection Engineering

YARA Rule

rule CVE_2025_27515_Laravel_Validation_Bypass {
    meta:
        description = "Detects attempts to exploit CVE-2025-27515 by identifying crafted multipart requests with non-file entries in file arrays"
        author = "Valters IT"
        date = "2025-03-25"
        reference = "https://nvd.nist.gov/vuln/detail/CVE-2025-27515"
    strings:
        $multipart = "Content-Disposition: form-data; name=\"files[" ascii wide nocase
        $non_file = "Content-Type: text/plain" ascii wide nocase
    condition:
        $multipart and #non_file > 0
}

Sigma Rule

title: CVE-2025-27515 Laravel Wildcard File Validation Bypass
id: 8a9b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d
status: experimental
description: Detects HTTP requests attempting to exploit CVE-2025-27515 by sending non-file entries in wildcard file fields
author: Valters IT
date: 2025/03/25
logsource:
    category: webserver
    product: apache
    service: access_combined
detection:
    selection:
        cs-method: 'POST'
        cs-uri-query|contains: 'files['
    condition: selection
falsepositives:
    - Legitimate use of multiple file uploads with non-file data (rare)
level: high

Suricata Rule

alert http any any -> any any (msg:"CVE-2025-27515 Laravel Wildcard File Validation Bypass"; flow:to_server,established; content:"POST"; http_method; content:"files["; http_client_body; pcre:"/Content-Disposition:\s*form-data;\s*name=\"files\[\d+\]\"[^\r\n]*\r\n\r\n(?!.*Content-Type:\s*image)/"; sid:1000001; rev:1;)

Remediation & Mitigation

Immediate Actions:

  1. Update Laravel to version 11.44.1 or 12.1.1 by running composer update laravel/framework.
  2. Verify the update by checking the composer.lock file for the patched version.
  3. Review application code for any custom validation logic that may also be vulnerable.

Long-Term Mitigations:

  • Implement a Web Application Firewall (WAF) with rules to detect and block malformed multipart requests.
  • Use a dedicated file upload service or library that enforces strict validation.
  • Conduct regular security audits and penetration testing on file upload functionality.
  • Monitor logs for unusual upload patterns and validation failures.

Workarounds (if patching is not immediately possible):

  • Disable wildcard file validation and use explicit field names instead.
  • Add custom validation logic that checks each file entry is an instance of UploadedFile before processing.

Valters IT
Securing Digital Frontiers

◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2025-27515/ · CVE data: NVD/MITRE (public domain) · © 2026 ValtersIT Hub
>_ SYSTEM_CORE: INTEL_ACTIVE
90% TEAM-CURATED // 10% AUTOMATED INGESTION.
ALL PATCH REFERENCES AND VERSION DATA SOURCED FROM NVD + OSV OFFICIAL REGISTRIES.