CVE-2025-54418: Codeigniter4/framework CodeIgniter4's ImageMagick Handler Has Command Vulnerability

CRITICAL
Advisory Identifier: GHSA-9952-gv64-x94c
CVSS 9.8
CWE-78
Published
Advisory Summary

CVE-2025-54418 is a CRITICAL (CVSS 9.8) codeigniter4's imagemagick handler has command vulnerability (CWE-78: Improper Neutralization of Special Elements used in an OS Command ('OS Command Injection')) affecting Codeigniter4/framework libraries in the Packagist ecosystem. The issue involves codeigniter4's imagemagick handler has command injection vulnerability. Remediation is available by upgrading affected packages to version 4.6.2.

CVE-2025-54418 at a Glance

CVE Identifier CVE-2025-54418
GHSA Identifier GHSA-9952-gv64-x94c
Severity CRITICAL
CVSS v3.1 Base Score 9.8
CWE Classification CWE-78: Improper Neutralization of Special Elements used in an OS Command ('OS Command Injection')
Affected Product Codeigniter4/framework
Package Ecosystem Packagist
Published Date
Last Updated

Security Impact

CVSS: 9.8

The security impact metrics below are parsed directly from the CVSS v3.1 vector string (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H).

Attack Vector Network (AV:N)
Attack Complexity Low (AC:L)
Privileges Required None (PR:N)
User Interaction None (UI:N)
Scope Unchanged (S:U)
Confidentiality High (C:H)
Integrity High (I:H)
Availability High (A:H)

How to Fix CVE-2025-54418

To remediate this vulnerability, upgrade all affected Codeigniter4/framework dependencies to a patched release. Both direct and transitive dependencies should be checked, as frameworks or security libraries may pull in vulnerable versions transitively.

codeigniter4/framework fixed: 4.6.2
Upgrade codeigniter4/framework to 4.6.2
Verify Direct and Transitive Dependencies

Run the following command in your project directory to verify that all resolved dependencies use the patched release:

inspect dependencies for codeigniter4/framework

How to Check if You Are Affected

To determine whether your application is affected by CVE-2025-54418, inspect your project dependencies for Codeigniter4/framework:

inspect dependencies for codeigniter4/framework

Analyze the terminal output to locate any version of Codeigniter4/framework in your dependency tree. If any resolved version matches the vulnerable ranges listed in the table below (for example, versions earlier than 4.6.2), your application is affected.

Note: Verify declared build manifests and deployed runtime container environments.

Technical Details

Vulnerability Mechanism & Technical Analysis

This vulnerability is classified under CWE-78: Improper Neutralization of Special Elements used in an OS Command ('OS Command Injection'), where the product constructs all or part of an os command using externally-influenced input from an upstream component, but it does not neutralize or incorrectly neutralizes special elements that could modify the intended os command when it is sent to a downstream component. In Codeigniter4/framework, software state validation or input boundaries are circumvented during processing. Review the official source advisory statement below for specific affected components, classes, and reproduction details.

Source Advisory Statement

### Impact This vulnerability affects applications that: * Use the ImageMagick handler for image processing (`imagick` as the image library) * **AND** either: * Allow file uploads with user-controlled filenames and process uploaded images using the `resize()` method * **OR** use the `text()` method with user-controlled text content or options An attacker can: * Upload a file with a malicious filename containing shell metacharacters that get executed when the image is processed * **OR** provide malicious text content or options that get executed when adding text to images ### Patches Upgrade to v4.6.2 or later. ### Workarounds * **Switch to the GD image handler** (`gd`, the default handler), which is not affected by either vulnerability * **For file upload scenarios**: Instead of using user-provided filenames, generate random names to eliminate the attack vector with `getRandomName()` when using the `move()` method, or use the `store()` method, which automatically generates safe filenames * **For text operations**: If you must use ImageMagick with user-controlled text, sanitize the input to only allow safe characters: `preg_replace('/[^a-zA-Z0-9\s.,!?-]/', '', $text)` and validate/restrict text options ### References * [OWASP Command Injection Prevention](https://owasp.org/www-community/attacks/Command_Injection) * [CWE-78: OS Command Injection](https://cwe.mitre.org/data/definitions/78.html)

CVE-2025-54418 Affected Codeigniter4/framework Versions

1 component(s)
Fixed Versions:
4.6.2
Product / Package Ecosystem Affected Versions Fixed Version
codeigniter4/framework
Packagist
< 4.6.2
4.6.2

References

Frequently Asked Questions

What is CVE-2025-54418?
CVE-2025-54418 is a security vulnerability in Codeigniter4/framework involving CodeIgniter4's ImageMagick Handler has Command Injection Vulnerability under CWE-78: Improper Neutralization of Special Elements used in an OS Command ('OS Command Injection').
Which Codeigniter4/framework versions are affected?
Affected versions include releases prior to 4.6.2 across affected packages: codeigniter4/framework.
What version fixes CVE-2025-54418?
Upgrading to 4.6.2 (or the latest patched release for your respective branch) resolves the vulnerability.
Is codeigniter4/framework affected?
Yes, codeigniter4/framework is affected in releases prior to 4.6.2. Upgrade your dependency to 4.6.2 or later.
What is the CVSS score of CVE-2025-54418?
CVE-2025-54418 has a CVSS v3.1 base score of 9.8 (CRITICAL) with vector string CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H.
What CWE is associated with CVE-2025-54418?
CVE-2025-54418 is classified under CWE-78: Improper Neutralization of Special Elements used in an OS Command ('OS Command Injection') (The product constructs all or part of an OS command using externally-influenced input from an upstream component, but it does not neutralize or incorrectly neutralizes special elements that could modify the intended OS command when it is sent to a downstream component.).
How can I check Packagist dependencies for CVE-2025-54418?
Run the dependency tree command: 'inspect dependencies for codeigniter4/framework'. This command lists direct and transitive dependencies in your build configuration so you can verify if a vulnerable version is resolved.
Machine-readable OSV JSON OSV v1.5 Schema
Normalized schema output
{
  "schema_version" : "1.4.0",
  "id" : "GHSA-9952-gv64-x94c",
  "modified" : "2025-07-28T16:08:20Z",
  "published" : "2025-07-28T16:08:20Z",
  "aliases" : [ "CVE-2025-54418" ],
  "summary" : "CodeIgniter4's ImageMagick Handler has Command Injection Vulnerability",
  "details" : "### Impact\nThis vulnerability affects applications that:\n* Use the ImageMagick handler for image processing (`imagick` as the image library)\n* **AND** either:\n  * Allow file uploads with user-controlled filenames and process uploaded images using the `resize()` method\n  * **OR** use the `text()` method with user-controlled text content or options\n\nAn attacker can:\n* Upload a file with a malicious filename containing shell metacharacters that get executed when the image is processed\n* **OR** provide malicious text content or options that get executed when adding text to images\n\n### Patches\nUpgrade to v4.6.2 or later.\n\n### Workarounds\n* **Switch to the GD image handler** (`gd`, the default handler), which is not affected by either vulnerability\n* **For file upload scenarios**: Instead of using user-provided filenames, generate random names to eliminate the attack vector with `getRandomName()` when using the `move()` method, or use the `store()` method, which automatically generates safe filenames\n* **For text operations**: If you must use ImageMagick with user-controlled text, sanitize the input to only allow safe characters: `preg_replace('/[^a-zA-Z0-9\\s.,!?-]/', '', $text)` and validate/restrict text options\n\n\n### References\n* [OWASP Command Injection Prevention](https://owasp.org/www-community/attacks/Command_Injection)\n* [CWE-78: OS Command Injection](https://cwe.mitre.org/data/definitions/78.html)",
  "severity" : [ {
    "type" : "CVSS_V3",
    "score" : "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H"
  } ],
  "affected" : [ {
    "package" : {
      "ecosystem" : "Packagist",
      "name" : "codeigniter4/framework"
    },
    "ranges" : [ {
      "type" : "ECOSYSTEM",
      "events" : [ {
        "introduced" : "0"
      }, {
        "fixed" : "4.6.2"
      } ]
    } ]
  } ],
  "references" : [ {
    "type" : "WEB",
    "url" : "https://github.com/codeigniter4/CodeIgniter4/security/advisories/GHSA-9952-gv64-x94c"
  }, {
    "type" : "ADVISORY",
    "url" : "https://nvd.nist.gov/vuln/detail/CVE-2025-54418"
  }, {
    "type" : "WEB",
    "url" : "https://github.com/codeigniter4/CodeIgniter4/commit/e18120bff1da691e1d15ffc1bf553ae7411762c0"
  }, {
    "type" : "WEB",
    "url" : "https://cwe.mitre.org/data/definitions/78.html"
  }, {
    "type" : "PACKAGE",
    "url" : "https://github.com/codeigniter4/CodeIgniter4"
  }, {
    "type" : "WEB",
    "url" : "https://owasp.org/www-community/attacks/Command_Injection"
  } ],
  "database_specific" : {
    "cwe_ids" : [ "CWE-78" ],
    "severity" : "CRITICAL",
    "github_reviewed" : true,
    "github_reviewed_at" : "2025-07-28T16:08:20Z",
    "nvd_published_at" : "2025-07-28T15:15:26Z"
  }
}