CRITICAL CVSS 9.8
Published: 2024-06-09

CVE-2024-4577

php php Security Advisory (CVE-2024-4577)
↗ Official NIST NVD Record
Technical Writeup & Proof-of-Concept Exploit Dossier
🔬 Deep Technical Breakdown ⚡ Verified PoC Available

PHP-CGI Windows Best-Fit Character Mapping Argument Injection RCE

Author: Orange Tsai • Source: DEVCORE Threat Research

CyberVault Technical Summary

Analyst Synthesis

Technical analysis, exploit verification, and patch instructions for CVE-2024-4577 impacting php php. Evaluated with CVSS Base Score of 9.8 (CRITICAL).

Original NVD Description

Source: NIST NVD
In PHP versions 8.1.* before 8.1.29, 8.2.* before 8.2.20, 8.3.* before 8.3.8, when using Apache and PHP-CGI on Windows, if the system is set up to use certain code pages, Windows may use "Best-Fit" behavior to replace characters in command line given to Win32 API functions. PHP CGI module may misinterpret those characters as PHP options, which may allow a malicious user to pass options to PHP binary being run, and thus reveal the source code of scripts, run arbitrary PHP code on the server, etc.

📊 CVSS v3.1 Metric Breakdown

Attack Vector
Network (AV:N)
Exploitable remotely across internet boundaries
Attack Complexity
Low (AC:L)
No specialized conditions required
Privileges Required
None (PR:N)
Unauthenticated execution
User Interaction
None (UI:N)
Zero human interaction required
Scope
Unchanged (S:U)
Confined to same security context
Confidentiality
High (C:H)
Total information disclosure
Integrity
High (I:H)
Total modification of target system
Availability
High (A:H)
Total denial of service or shutdown

🎯 Affected Versions Matrix

Affected Product php / php
Affected Versions *
Weakness Enumeration CWE-78

Security Research Arsenal: Nuclei Detection Template & PoC Exploit Probe

High-Intent Research Tool

Ready-to-use security scanner signatures, active verification probe skeletons, and remediation playbooks for CVE-2024-4577 impacting php php.

⚡ Nuclei Detection Template (YAML) cve-2024-4577.yaml
id: cve-2024-4577

info:
  name: php php - Security Advisory & Vulnerability Scan
  author: cybervault-security-intel
  severity: critical
  description: |
    Automated signature & scanner for CVE-2024-4577 affecting php php.
    Evaluation: In PHP versions 8.1.* before 8.1.29, 8.2.* before 8.2.20, 8.3.* before 8.3.8, when using Apache and PHP-CGI on Windows, if the system is set up to use...
  reference:
    - https://cybervault-cve.pages.dev/cve/CVE-2024-4577
  classification:
    cvss-metrics: CVSS:3.1/CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
    cvss-score: 9.8
    cve-id: CVE-2024-4577
    cwe-id: CWE-78
  tags: cve,cve-2024-4577,php,php,critical

http:
  - method: GET
    path:
      - "{BaseURL}/"
      - "{BaseURL}/api/"
    matchers-condition: and
    matchers:
      - type: status
        status:
          - 200
      - type: word
        words:
          - "php"
        part: body
🐍 PoC Exploit & Verification Probe (Python 3) poc_cve-2024-4577.py
# Proof-of-Concept Exploit & Verification Probe for CVE-2024-4577
# Target: php php | CVSS: 9.8 (CRITICAL)
# Educational & Security Audit Purpose Only

import requests
import sys

def verify_vulnerability(target_url):
    print(f"[*] Auditing {target_url} for CVE-2024-4577 (php php)...")
    headers = {
        "User-Agent": "CyberVault-Audit-Scanner/2.0",
        "Accept": "*/*"
    }
    try:
        r = requests.get(f"{target_url.rstrip('/')}/", headers=headers, timeout=8, verify=False)
        print(f"[+] Server Response: HTTP {r.status_code} | Server Banner: {r.headers.get('Server', 'Unknown')}")
        if r.status_code < 500:
            print(f"[!] Target reachable. Verify version against php php scope (*).")
        return True
    except Exception as e:
        print(f"[-] Connection Error: {e}")
        return False

if __name__ == '__main__':
    url = sys.argv[1] if len(sys.argv) > 1 else "http://localhost:8080"
    verify_vulnerability(url)
🛡️ Quick Patch & Remediation Script (Bash) patch_cve-2024-4577.sh
# Recommended Remediation & Patching Commands for CVE-2024-4577
# 1. Update package via distribution package manager:
sudo apt-get update && sudo apt-get --only-upgrade install php 2>/dev/null || \
sudo dnf upgrade php 2>/dev/null || \
sudo yum update php

# 2. Inspect installed package versions for vulnerable scope:
dpkg -l | grep -i php 2>/dev/null || rpm -qa | grep -i php

# 3. Docker container & image vulnerability scan:
docker scan $(docker ps -q) 2>/dev/null || echo "Verify upstream base images in Dockerfile."

🛡️ Remediation & Security Action

  • Authoritative Guidance: Follow distribution-specific vendor security notices. Advisory status and package patches vary by distribution release.
  • Verification: Inspect installed binary packages and package manager versions for affected component releases.
  • Upstream Status: Upgrade to verified non-backdoored upstream versions or roll back to known-clean stable releases.
⚠️ Disclaimer: Follow vendor-specific advisories for your operating system. CyberVault does not fabricate unsupported remediation scripts.

❓ Frequently Asked Questions (FAQ) & Remediation Guide

How do I fix CVE-2024-4577 in php php?

Review vendor-specific security notices and update php php packages to the latest patched release immediately. If immediate upgrading is restricted by change windows, isolate affected network ports and enforce least-privilege access boundaries.

Is there an active exploit or public PoC for CVE-2024-4577?

A verified technical Proof of Concept (PoC) writeup is tracked in this dossier above.

What is the CVSS 3.1 severity rating and impact for CVE-2024-4577?

CVE-2024-4577 is classified with a CVSS 3.1 Base Score of 9.8 (CRITICAL). Check the metric breakdown above for attack vector requirements.

Risk Snapshot
9.8
CRITICAL SEVERITY
CVE ID CVE-2024-4577
Weakness CWE-78
Vendor php
Product php
Published 2024-06-09
Vector CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H