CVE-2026-59989
Received Received - Intake

Phalcon Framework PHP Code Injection in Volt Templates

Vulnerability report for CVE-2026-59989, including description, CVSS score, EPSS score, affected products, exploitability, helpful resources, and attack-flow context.

Publication date: 2026-08-21

Last updated on: 2026-08-21

Assigner: GitHub, Inc.

Description

Phalcon is a high-performance, full-stack PHP framework. In 5.15.0 and earlier, resolveFilter in phalcon/Mvc/View/Engine/Volt/Compiler.zep builds the join filter by inserting the raw separator and array token values into generated PHP without passing them through expression(). An attacker who can influence Volt template source can place quote-breaking content in a join argument, inject PHP into the compiled cache file, and execute it when Phalcon\Mvc\View\Engine\Volt::render() loads the template. This issue is fixed in version 5.16.0.

CVSS Scores

EPSS Scores

Probability:
Percentile:

Meta Information

Published
2026-08-21
Last Modified
2026-08-21
Generated
2026-08-22
AI Q&A
2026-08-22
EPSS Evaluated
N/A
NVD
EUVD

Affected Vendors & Products

Showing 1 associated CPE
Vendor Product Version / Range
phalcon phalcon 5.16.0

Helpful Resources

Exploitability

CWE
CWE Icon
KEV
KEV Icon
CWE ID Description
CWE-94 The product constructs all or part of a code segment using externally-influenced input from an upstream component, but it does not neutralize or incorrectly neutralizes special elements that could modify the syntax or behavior of the intended code segment.
CWE-1336 The product uses a template engine to insert or process externally-influenced input, but it does not neutralize or incorrectly neutralizes special elements or syntax that can be interpreted as template expressions or other code directives when processed by the engine.

Attack-Flow Graph

AI Quick Actions

Instant insights powered by AI
Executive Summary

This vulnerability affects Phalcon, a PHP framework. In versions 5.15.0 and earlier, a function called resolveFilter in the Volt template compiler does not properly sanitize input when building a join filter. An attacker who can modify Volt template source code can inject malicious PHP code into the compiled template cache. When the template is rendered, this injected code executes, potentially allowing arbitrary code execution on the server.

Detection Guidance

To detect this vulnerability, check if your Phalcon framework version is 5.15.0 or earlier. Use the command: php -r "echo (new Phalcon\Mvc\Application())->getVersion();" to verify the installed version. If it is vulnerable, update to version 5.16.0 or later immediately.

Impact Analysis

If you use Phalcon 5.15.0 or earlier, an attacker with access to modify Volt templates could execute arbitrary PHP code on your server. This could lead to data theft, server compromise, or unauthorized system access. The impact depends on server permissions and the extent of the injected code.

Compliance Impact

This vulnerability could lead to unauthorized data access or exfiltration, violating GDPR's data protection requirements and HIPAA's security rules. A breach could result in legal penalties, reputational damage, and loss of compliance certifications.

Mitigation Strategies

Upgrade Phalcon to version 5.16.0 or later to address the vulnerability in resolveFilter. Review Volt template files for suspicious content that could exploit the join filter injection. Clear any existing compiled cache files to prevent execution of injected PHP code.

Chat Assistant

Ask questions about this CVE
Hi! I’m here to help you understand CVE-2026-59989. Ask me anything about the vulnerability, its impact, or mitigation strategies.
0/70

EPSS Chart