Patchfirst
CVE-2021-3129 KEVRansomwarePublic exploit Critical · 9.8 EPSS 99.9%

Laravel Ignition File Upload Vulnerability

Laravel · Ignition

Summary

The flaw is an insecure use of file_get_contents() and file_put_contents() in Laravel's Ignition component, which is the error-page and debugging tool shipped with Ignition before 2.5.2 and with Laravel before 8.4.2. An unauthenticated remote attacker can execute arbitrary code over the network without user interaction, provided the affected site is running in debug mode.

Official description · NVD

Ignition before 2.5.2, as used in Laravel and other products, allows unauthenticated remote attackers to execute arbitrary code because of insecure usage of file_get_contents() and file_put_contents(). This is exploitable on sites using debug mode with Laravel before 8.4.2.

Breakdown
83.7 / 100
Exploited
Yes, in CISA KEV
Reports
1
Tactics
2/15

How an attack unfolds

Based on mappings. Select a step to see the evidence.
  1. How attackers get in

  2. What they do

First seen exploited 2 months after disclosure. Public exploit code (PoC-in-GitHub) appeared 1 day after disclosure.

  1. Disclosedday 0
  2. Public exploit codePoC-in-GitHub+1 day
  3. First seen exploitedVulnCheck KEV evidence+2 mo
  4. Added to CISA KEVknown ransomware use; EU database agrees+3 yrs

CISA KEV listing is when exploitation was confirmed, not necessarily the first attack.

3 fixes in facade/ignition over 17 months. The latest fix listed for facade/ignition is 2.5.2.

Fixes in facade/ignitionPackagist package, by fixed version. Earlier and later fixes in the same package, not necessarily the same bug.

  1. 2.0.5CVE-2020-139097 Jun 2020
  2. 2.0.6CVE-2021-4399617 Nov 2021
  3. 2.5.2CVE-2021-312912 Jan 2021KEVLatest listed

techniques

2 , grouped by in kill-chain order 2

Initial AccessTA0001

MITRE CTID mapping of the KEV entry · how it is exploited

This vulnerability is exploited when a remote unauthorized user sends a malicious payload to a server using an insecure version of Ignition. The payload targets the MakeViewVariableOptionalSolution.php module, leveraging insecure PHP functions file_get_contents and file_put_contents to specify a file path for executing arbitrary code.

ExecutionTA0002

MITRE CTID mapping of the KEV entry · primary impact

Detection

0 rules for this CVE · 244 general rules for its techniques

Rules for this CVE

0 that reference CVE-2021-3129 directly.

CVE-specific rules are not available in this build. Search SigmaHQ ↗

Sigma rules © SigmaHQ, Detection Rule License 1.1; linked, not reproduced.

Am I affected? What do I upgrade to?

From GitHub Security Advisories and OSV

1 package in 1 ecosystem. Main package: facade/ignition.

Packagistfacade/ignitionGHSA-4qwp-7c67-jmcc

Upgrade to 2.5.2 or later

Set the version to 2.5.2 or later in your composer.json.

The first fix for CVE-2021-3129. No other CVE tracked by Patchfirst affects this package.

Affected versions, by release line

If you runUpgrade to
2.5.0 up to 2.5.22.5.2
2.0.0 up to 2.4.22.4.2
1.7.0 up to 1.16.141.16.14
All versions before 1.6.151.6.15

“Up to” means the second version is the fix and is not affected.

Check your lockfile against all CVEs

What security researchers reported

Named in 1 threat report
1 reportEclecticIQ

Reports are matched by finding the exact id CVE-2021-3129 in their text; nobody has reviewed the match. One passage is shown per report, at most 320 characters, linked to the original.

Also mentioned in 50 community threat pulses (AlienVault OTX)

Weaker evidence

Pulses are indicator collections that anyone can publish. A mention is not confirmation of exploitation.

References

5 links, grouped by NVD tag (4 duplicates merged)
↑ ↓ chooseEnter openEsc close