/

CVE-2026-29001

Severity:

HIGH RISK

(7.2)

PHP Object Injection (CWE-502) in TastyIgniter Admin

CVE-2026-29001

Deferred

Vulnerability type

Category:

PHP Object Injection

CWE:

CWE-502

Impact:

Arbitrary Code Execution

Severity:

HIGH RISK

(7.2)

CVSS version:

3.1

Catch this CVE while code is being written

Detect vulnerable code directly in pull requests, so CVEs are fixed before merge.

Summary

TastyIgniter contains an unsafe PHP object deserialization vulnerability in administrator-controlled settings values. An authenticated administrator who can submit or alter a setting may cause a serialized object to be deserialized, potentially enabling operating-system command execution as the PHP application process user.

TastyIgniter contains an unsafe PHP object deserialization vulnerability in administrator-controlled settings values. An authenticated administrator who can submit or alter a setting may cause a serialized object to be deserialized, potentially enabling operating-system command execution as the PHP application process user.

Affected context

The issue may arise in TastyIgniter installations where authenticated administrators can manage settings that are stored without adequate type or content restrictions. Affected values may later be processed by an attribute accessor such as getValueAttribute(), and settings read during application or middleware execution can provide a trigger point for unsafe object deserialization.

The issue may arise in TastyIgniter installations where authenticated administrators can manage settings that are stored without adequate type or content restrictions. Affected values may later be processed by an attribute accessor such as getValueAttribute(), and settings read during application or middleware execution can provide a trigger point for unsafe object deserialization.

Exploit preconditions

  • Attack surface: Administrative settings management functionality
  • Required access: Authenticated administrator-level access or equivalent permission to modify the relevant setting
  • Trigger point: Reading a stored setting value through the application's value accessor
  • Why exploitation is possible: Serialized object data is accepted and stored without sufficient sanitization or type enforcement, then passed to a PHP deserialization mechanism that may construct attacker-controlled objects
  • Attack surface: Administrative settings management functionality
  • Required access: Authenticated administrator-level access or equivalent permission to modify the relevant setting
  • Trigger point: Reading a stored setting value through the application's value accessor
  • Why exploitation is possible: Serialized object data is accepted and stored without sufficient sanitization or type enforcement, then passed to a PHP deserialization mechanism that may construct attacker-controlled objects

Why this happens

The underlying bug is unsafe deserialization of data originating from an administrator-controlled settings field. When serialized PHP values are treated as trusted application objects rather than untrusted data, deserialization can instantiate classes and invoke gadget behavior embedded in the application's dependency graph. This behavior maps to CWE-502: Deserialization of Untrusted Data and can turn a data-processing operation into code execution.

The underlying bug is unsafe deserialization of data originating from an administrator-controlled settings field. When serialized PHP values are treated as trusted application objects rather than untrusted data, deserialization can instantiate classes and invoke gadget behavior embedded in the application's dependency graph. This behavior maps to CWE-502: Deserialization of Untrusted Data and can turn a data-processing operation into code execution.

Potential impact

  • Arbitrary operating-system command execution as the PHP application process user
  • Compromise of the TastyIgniter application runtime
  • Modification or theft of application data and configuration
  • Persistence of malicious behavior until the affected setting is overwritten or otherwise remediated
  • Possible lateral movement if the application process has access to other services or resources
  • Arbitrary operating-system command execution as the PHP application process user
  • Compromise of the TastyIgniter application runtime
  • Modification or theft of application data and configuration
  • Persistence of malicious behavior until the affected setting is overwritten or otherwise remediated
  • Possible lateral movement if the application process has access to other services or resources

General mitigation guidance

Mitigation generally focuses on removing unsafe object deserialization from settings-processing paths and reducing trust in administrative input.

Common defensive patterns include:

  • Store settings as primitive, explicitly typed values rather than serialized PHP objects
  • Use safe parsers and narrowly defined schemas for configuration and settings data
  • Reject object-like serialized input and enforce allowlisted value types before persistence
  • Separate validation from storage and validate again at every read boundary where data is interpreted
  • Restrict administrative permissions according to least privilege and require strong authentication
  • Run the PHP application with minimal filesystem, process, and service privileges
  • Ensure setting values can be safely overwritten or invalidated during incident response

Mitigation generally focuses on removing unsafe object deserialization from settings-processing paths and reducing trust in administrative input.

Common defensive patterns include:

  • Store settings as primitive, explicitly typed values rather than serialized PHP objects
  • Use safe parsers and narrowly defined schemas for configuration and settings data
  • Reject object-like serialized input and enforce allowlisted value types before persistence
  • Separate validation from storage and validate again at every read boundary where data is interpreted
  • Restrict administrative permissions according to least privilege and require strong authentication
  • Run the PHP application with minimal filesystem, process, and service privileges
  • Ensure setting values can be safely overwritten or invalidated during incident response

How teams detect issues like this

Organizations can look for:

  • Static analysis findings involving unserialize() or equivalent deserialization of request, database, or settings data
  • Code review signals where administrator-controlled values are stored without type enforcement and later converted into objects
  • Taint-tracking paths from settings forms or persistence layers to deserialization APIs
  • Runtime monitoring for unexpected child processes, shell activity, or command execution by the PHP worker identity
  • Policy checks that prohibit PHP object serialization for configuration and user-managed settings

Neutral automated code-review and software-composition tools may help identify dangerous deserialization paths and available gadget-bearing dependencies.

Organizations can look for:

  • Static analysis findings involving unserialize() or equivalent deserialization of request, database, or settings data
  • Code review signals where administrator-controlled values are stored without type enforcement and later converted into objects
  • Taint-tracking paths from settings forms or persistence layers to deserialization APIs
  • Runtime monitoring for unexpected child processes, shell activity, or command execution by the PHP worker identity
  • Policy checks that prohibit PHP object serialization for configuration and user-managed settings

Neutral automated code-review and software-composition tools may help identify dangerous deserialization paths and available gadget-bearing dependencies.

Sources

SourceLink
github.comgithub.com/tastyigniter/TastyIgniter/issues/1205#issuecomment-6314187869
vulncheck.comvulncheck.com/advisories/tastyigniter-php-object-injection-via-settings-deserialization

Frequently asked

questions

It may be exploitable through the web-based administration interface when that interface is reachable and the attacker has sufficient authenticated privileges to modify settings.

The described attack requires authenticated administrative access, or another account or control path that grants equivalent permission to change the affected setting.

Avoid deserializing PHP objects from settings or other externally influenced data. Store narrowly typed primitive values, validate them against an allowlisted schema, and treat persisted settings as untrusted at read time.

Apply least privilege to administrative roles, use secure-by-default parsing and storage formats, scan code for unsafe deserialization flows, and monitor application processes for unexpected command execution.

It may be exploitable through the web-based administration interface when that interface is reachable and the attacker has sufficient authenticated privileges to modify settings.

The described attack requires authenticated administrative access, or another account or control path that grants equivalent permission to change the affected setting.

Avoid deserializing PHP objects from settings or other externally influenced data. Store narrowly typed primitive values, validate them against an allowlisted schema, and treat persisted settings as untrusted at read time.

Apply least privilege to administrative roles, use secure-by-default parsing and storage formats, scan code for unsafe deserialization flows, and monitor application processes for unexpected command execution.

Find out what's already
exploitable in your codebase.