Skip to main content

pfSense CE CVE-2026-111222

| EUVDEUVD-2026-102334 HIGH
Improper Neutralization of CRLF Sequences ('CRLF Injection') (CWE-93)
2026-10-15 VulnCheck
7.5
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Authenticate to pfSense web GUI as General Setup admin
  2. Delivery
    Submit timezone value with quote and newline
  3. Exploit
    Inject auto_prepend_file into php.ini
  4. Execution
    Wait for boot or php-fpm restart
  5. Impact
    Execute arbitrary PHP as root

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization CRLF sequence sanitization
Exploitation Conditions

Requires an authenticated pfSense CE account holding General Setup privileges (administrator-equivalent) to reach the System > General Setup timezone field. Exploitation depends on injecting a quote and newline into the unvalidated timezone value to append an auto_prepend_file directive to php.ini. Code execution is NOT immediate: the malicious directive only runs after php.ini is regenerated, which occurs at system boot or on a php-fpm restart - the attacker may need to wait for or indirectly trigger this, which limits reliability. Affected: Netgate pfSense CE through 2.9.0. The required admin-level privilege is the primary limiting factor, making this a post-authentication root-escalation rather than an unauthenticated remote compromise.

Impact

This is a credible but conditional privilege-escalation/code-execution issue rather than a mass-exploitation threat. The CVSS 4.0 vector (AV:N/AC:H/AT:P/PR:H/UI:N, score 7.5) is internally consistent with the description: exploitation is network-reachable through the pfSense web GUI (AV:N) but requires high privileges - an authenticated account with General Setup privileges, i.e. effectively an administrator (PR:H) - and carries attack complexity plus an attack requirement (AC:H/AT:P) because malicious php.ini directives only take effect after php.ini is regenerated at boot or on a php-fpm restart, which the attacker cannot always trigger on demand. Technical impact is high across confidentiality, integrity and availability (VC:H/VI:H/VA:H) since the injected auto_prepend_file executes PHP as root. A public exploit (abraxas/pfsense-timezone-phpini) exists, which raises practical risk, but there is NO CISA KEV listing and NO EPSS score in the provided data, so there is no evidence of active or widespread exploitation. The PR:H requirement is the dominant mitigating factor - this is primarily a post-authentication root-escalation primitive for an attacker who already holds admin-equivalent web access, so real-world priority is moderate and should be weighed against how exposed and trusted the pfSense admin interface is in a given environment. MISSING DATA: EPSS and KEV status are absent from the input and are treated as 'not present,' not confirmed-negative.

Exploit ScenarioDerived

An attacker who already holds (or has phished/credential-stuffed) a pfSense web account with General Setup privileges submits a crafted timezone value containing an embedded quote and newline, injecting an auto_prepend_file directive referencing attacker-controlled content under /var/db/zoneinfo. When php.ini is regenerated at the next boot or php-fpm restart, the attacker's PHP executes as root. A public proof-of-concept exploit is available, lowering the effort to reproduce.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
1 public PoC No patch listed yet 1.0% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 15, 2026

Authenticated pfSense CE administrators with General Setup privileges can achieve root-level PHP code execution by injecting an auto_prepend_file directive into php.ini through an unvalidated timezone value. Publicly available exploit code exists, but exploitation is conditional: the injected directive only runs after php.ini is regenerated at boot or on a php-fpm restart, and the attacker already holds administrator-equivalent access, making this a post-authentication privilege escalation rather than an unauthenticated remote compromise or mass-exploitation threat. Netgate pfSense CE through 2.9.0 is affected.

RemediationAI

No vendor-released patch version is identified in the provided data; apply the latest pfSense CE release and monitor the Netgate/VulnCheck advisory for a fixed version. Because the attacker already needs administrator-equivalent General Setup privileges, the primary mitigation is to treat that privilege as equivalent to root: strictly limit membership in the admins group, enforce multi-factor authentication for all pfSense administrators, and remove General Setup rights from any delegated or untrusted accounts. A custom patch or input-validation fix to reject newline characters in the timezone field could be applied pending an official update; disabling or restricting access to the timezone setting is not a supported workaround, and the delayed execution (boot or php-fpm restart) means an attacker may need to persist or wait, though the privilege gained is root. After updating, verify that php.ini no longer contains injected auto_prepend_file directives.

Affected VersionsENISA

pfSense CE 0 ≤2.9.0

Affected Packages

euvd pfsense_ce no fix

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

pfSense CE generates php.ini dynamically at boot or when php-fpm restarts, sourcing values from the webGUI configuration (see src/etc/rc.php_ini_setup and src/etc/inc/system.inc in the referenced pfSense source). The timezone setting is written into that generated file without neutralizing CRLF sequences (CWE-93), so an authenticated user with General Setup privileges can submit a timezone value containing a quote and newline that breaks out of the timezone assignment and appends an arbitrary php.ini directive such as auto_prepend_file=/var/db/zoneinfo. Because php-fpm runs as root and loads the generated php.ini, the injected auto_prepend_file causes /var/db/zoneinfo to be interpreted as PHP code executed as root the next time php.ini is regenerated. The CPE string cpe:2.3:a:netgate:pfsense_ce:*:*:*:*:*:*:*:* covers the pfSense CE product line, and all versions through 2.9.0 are reported affected.

Know when Pfsense Ce gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (VulnCheck) PRIMARY 7.5 HIGH
CVSS:4.0/AV:N/AC:H/AT:P/PR:H/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
vuln.today AI 6.6 MEDIUM

Reachable over the network web GUI (AV:N) but needs General Setup admin rights (PR:H) and a php.ini regeneration to fire (AC:H); injected PHP runs as root, so C/I/A all High.

3.1 AV:N/AC:H/PR:H/UI:N/S:U/C:H/I:H/A:H
4.0 AV:N/AC:H/AT:P/PR:H/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Network
Attack Complexity
High
Attack Requirements
Present
Privileges Required
High
User Interaction
None
Vulnerable system: Confidentiality
High
Vulnerable system: Integrity
High
Vulnerable system: Availability
High
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

DescriptionCVE.org

Netgate pfSense CE through 2.9.0 contains a php.ini injection vulnerability that allows authenticated users with General Setup privileges to inject directives by submitting an unvalidated timezone value. Attackers can embed a quote and newline to add auto_prepend_file pointing at /var/db/zoneinfo, executing PHP as root after php.ini is regenerated at boot or php-fpm restart.

Technical POC Analysis

Note on evidence: the supplied source is the GitHub README for abraxas/pfsense-timezone-phpini.

Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.

Latest POC

1 public PoC link from github

Sign in to open the public PoC links collected for this CVE.

Executive ViewAI

Why It Matters

Netgate pfSense CE versions up to 2.9.0 contain a high-severity vulnerability that allows administrators with General Setup privileges to escalate to root-level PHP code execution via a timezone parameter injection. Publicly available exploit code exists, but exploitation requires existing administrative access and a php.ini regeneration event, making this a post-authentication privilege escalation rather than a remote unauthenticated threat. Organizations relying on pfSense CE for network perimeter security should prioritize mitigating this risk to prevent full firewall compromise by malicious insiders or attackers who have already obtained administrative credentials.

Business Impact: High
Compensating Controls

No vendor-released patch identified at time of analysis; interim mitigations include restricting administrative access to General Setup, enforcing MFA, monitoring php.ini for unauthorized auto_prepend_file directives, and limiting php-fpm restarts.

Threat Intelligence Overview

EPSS Score
1.0%
Top 39% exploitable
Prevalence
High
pfSense CE is a widely deployed open-source firewall across SMB and enterprise networks
Data Quality
4 sources
Confidence: Medium

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity HIGH
CISA KEV No
Public POC Yes
EPSS 1.0%
Patch available No
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
Poc
System Exposure· derived
Open
Automatable· derived
No
Human Impact
High

Priority Score

59
Low Medium High Critical
KEV: 0
EPSS: +1
CVSS: +38
PoC: +20
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Code Injection CRITICAL

Code injection occurs when an application accepts user input and passes it directly into a language interpreter or evaluator without proper sanitization.

CVE-2023-48795 MEDIUM POC
5.9 Dec 18

The SSH transport protocol with certain OpenSSH extensions, found in OpenSSH before 9.6 and other products, allows remot

CVE-2026-111214 HIGH POC
8.6 Oct 15

OS command injection in Netgate pfSense CE 2.7.0 through 2.9.0 allows an authenticated web-interface user who holds the

CVE-2026-111229 HIGH POC
8.6 Oct 15

Command injection in pfSense CE 2.7.0 through 2.9.0 allows authenticated users who hold only the Captive Portal HA privi

CVE-2026-111224 HIGH POC
7.7 Oct 15

Authenticated VPN users can execute arbitrary commands as root on pfSense CE through 2.9.0 by exploiting an OS command i

CVE-2026-97730 HIGH POC
8.5 Sep 25

PHP code execution on Netgate pfSense Plus and pfSense CE firewalls can be achieved by an authenticated, highly privileg

CVE-2026-111231 HIGH POC
8.6 Oct 15

Authorization bypass in Netgate pfSense CE through 2.9.0 allows an authenticated WebGUI account that holds page privileg

CVE-2026-111226 HIGH POC
8.6 Oct 15

Command injection in Netgate pfSense CE 2.4.5 through 2.9.0 lets an authenticated WebGUI user holding the Advanced Admin

CVE-2026-111223 HIGH POC
8.6 Oct 15

Command injection in Netgate pfSense CE 2.7.0 through 2.9.0 lets an authenticated administrator who holds IPsec Mobile c

CVE-2026-111220 HIGH POC
8.6 Oct 15

Root command execution on pfSense CE through 2.9.0 is achievable by authenticated attackers holding the 'WebCfg - Interf

CVE-2026-111218 HIGH POC
8.6 Oct 15

OS command injection in Netgate pfSense CE 2.7.0 through 2.9.0 lets an authenticated web GUI user who holds the Traffic

CVE-2026-111217 HIGH POC
8.6 Oct 15

Command injection in Netgate pfSense CE through 2.9.0 allows an authenticated user with Virtual IP (CARP) edit privilege

CVE-2026-111216 HIGH POC
8.6 Oct 15

OS command injection in Netgate pfSense CE (through 2.9.0) allows remote attackers holding an authenticated web-GUI acco

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy