CVE-2024-1874CWE-116

Command injection via array-ish $command parameter of proc_open()

Critical · published April 29, 2024

CVSS v3.1
9.4
EPSS
33%
Percentile
98.3
In the wild
Unconfirmed
What it is

🚨 A crafty argument can turn into a backdoor. When using proc_open() in PHP, malicious users might slip in commands that execute arbitrarily on your Windows shell! 🔥 Think of it like a restaurant chef taking orders without checking what’s on the ticket — if a diner slips in a hidden request for a secret ingredient, chaos can ensue in the kitchen! An attacker could potentially execute ANY command on the system, leading to unauthorized access, data breaches, or even complete system takeover. The implications could be absolutely devastating for your environment.

Put simply

Think of it like a restaurant chef taking orders without checking what’s on the ticket — if a diner slips in a hidden request for a secret ingredient, chaos can ensue in the kitchen! This vulnerability arises from the insufficient escaping of arguments in the proc_open() command, allowing attackers to manipulate commands executed in the Windows shell if they control the input.

What to do

An attacker could potentially execute ANY command on the system, leading to unauthorized access, data breaches, or even complete system takeover. The implications could be absolutely devastating for your environment. Update your PHP version immediately to 8.1.28, 8.2.18, or 8.3.5 to patch this vulnerability. Additionally, review your usage of proc_open() and ensure robust input validation for any user-supplied data. You've got this! With a quick update and some careful checks, you'll keep your environment secure. 🛡️

The record
Technical detail
CVSS v3.1
9.4 · CRITICAL
Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:L
CVSS v4.0
Not supplied
EPSS
0.32568 · 98.3th percentile
Weakness
CWE-116 · Improper Encoding or Escaping of Output
Published
2024-04-29T03:57Z
EPSS history
Timeline
  • 29 APR 03:57Z
    Command injection via array-ish $command parameter of proc_open()
    cvelistv5