Situation
Two security vulnerabilities were discovered in PHP. As a result, all PHP versions shipped with Plesk are also affected. These security vulnerabilities have been identified as CVE-2026-109618 and CVE-2026-109619 and are also known as PHP2Shell.
Affected product version
- PHP on Plesk Obsidian for Linux:
| Product | Affected versions | Patched versions |
|---|---|---|
| PHP 8.5 | 8.5.11 and below | 8.5.12 |
| PHP 8.4 | 8.4.26 and below | 8.4.27 |
| PHP 8.3 | 8.3.35 and below | 8.3.36 |
| PHP 8.2 | 8.2.34 and below | 8.2.35 |
| PHP 8.1 (EOL) | 8.1.34 (built before 21 Oct 2026) | 8.1.34 (built on 21 Oct 2026) |
| PHP 8.0 (EOL) | 8.0.30 (built before 21 Oct 2026) | 8.0.30 (built on 21 Oct 2026) |
| PHP 7.4 (EOL) | 7.4.33 (built before 21 Oct 2026) | 7.4.33 (built on 21 Oct 2026) |
- PHP on Plesk Obsidian for Windows:
| Product | Affected versions | Patched versions |
|---|---|---|
| PHP 8.5 | 8.5.11 and below | 8.5.12 |
| PHP 8.4 | 8.4.26 and below | 8.4.27 |
| PHP 8.3 | 8.3.35 and below | 8.3.36 |
| PHP 8.2 | 8.2.34 and below | 8.2.35 |
- Plesk Obsidian (
sw-enginecomponent):
| Product | Affected versions | Patched versions |
|---|---|---|
| Plesk for Linux (sw-engine, part of Plesk UI) |
|
|
| Plesk for Windows (plesk-engine, part of Plesk UI) |
|
|
Note: for older versions of PHP (5.6, 7.2, 7.3) it is recommended to use paid TuxCare Extended Lifecycle Support for PHP.
Impact
Both vulnerabilities are rated critical (CVSS scores of 9.2). Remote code execution (RCE) is possible on affected PHP versions.
Call to action
Update Plesk to the latest available version.
A fix is available for most affected versions. The PHP vendor released the fixed PHP versions on 21 October 2026 at 14:00 UTC (PHP News Archive | 21 Oct 2026).
Fixes for Plesk for Linux are already available for PHP 8.2 (as 8.2.35), 8.3 (as 8.3.36), 8.4 (as 8.4.27) and 8.5 (as 8.5.12).
Fixes for EOL PHP versions on Plesk for Linux 7.4.33, 8.0.30, 8.1.34 have the same version number, but different build date. Versions built on 21 October 2026 have fixes included.
Fixes for Plesk for Windows are available for PHP 8.2 (as 8.2.35), 8.3 (as 8.3.36), 8.4 (as 8.4.27) and 8.5 (as 8.5.12)
Change Log for Plesk Obsidian / PHP Updates
Fixes for sw-engine/plesk-engine (PHP engine used by Plesk itself) are already available in Plesk Obsidian 18.0.81 Update 4 and 18.0.80 Update 11 for both Plesk for Linux and Plesk for Windows:
Check the Plesk version installed on the server.
Additional Information:
If the update fails with The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 5B6AB2160B50DB96 error (on Ubuntu/Debian), check the Unable to update Plesk: The following signatures couldn't be verified because the public key is not available article.
How to check PHP version on Plesk server:
- Log into Plesk.
- Navigate to Tools & Settings > PHP Settings menu. Versions should be reflected in handler names:
- Connect to the server via SSH
-
Execute the command below for corresponding PHP version (8.3 is used in this example):
# /opt/plesk/php/8.3/bin/php -v
PHP 8.3.36 (cli) (built: Oct 21 2026 08:04:57) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.3.36, Copyright (c) Zend Technologies
with Zend OPcache v8.3.36, Copyright (c), by Zend Technologies
Comments
One additional finding: the outdated PHP versions reported by
plesk bin php_handler --listwere caused by stale handler metadata.Running:
plesk bin php_handler --rereadupdated all reported versions correctly, including PHP 8.5.11 → 8.5.12.
So the security patches had already been installed independently of Obsidian Update #4, but Plesk's handler information had not been refreshed automatically.
This explains the confusion. I still think that during a critical security incident, the update status should be much clearer and the handler metadata should be refreshed automatically after package updates.
Any update on the state of 18.0.81#4 being available? We've had the Plesk interface disabled on our customers' servers since the announcement.
One important clarification after investigating this further:
It turns out that the situation was almost the opposite of what I initially understood.
sw-enginewith PHP 8.4.25, and Obsidian 18.0.81 Update #3. According to the security advisory, the fix for this component is still pending in Update #4.The outdated PHP versions shown by
plesk bin php_handler --listwere corrected by running:plesk bin php_handler --rereadSo I had taken my already patched websites offline while leaving the Plesk administration interface accessible.
I've now temporarily stopped
sw-cp-serveruntil the remaining hotfix becomes available.I think the distinction between the separately updated PHP packages for hosted websites and the still-pending
sw-enginefix needs to be communicated much more clearly, especially during a critical security incident.…such as https://www.plesk.com/extensions/tuxcare-php/
Panel update now available since about an hour ago with 18.0.81 #4:
(as stated by several posters above, we need to fix a.) any PHP versions used on a hosted website = the first patches we received here and b.) plesk GUI since it's also exposed to the internet when turned on, this is available now with 18.0.81.4, here's how to install it)
SSH:
----
plesk installer --select-release-current --upgrade-installed-components
plesk version | head -1
/usr/local/psa/admin/bin/php -v | head -1
---
Once that returnes version 4 (and php 8.4.27 which Obsidian uses internally), you can restart your panel:
----
systemctl start sw-cp-server
systemctl is-active sw-cp-server
---
If you have tasks running (e. g. scheduled backup that take long) they might still use the olds components while running.
systemctl status sw-cp-server
Showed that the update did not restart the panel after running it. I had to manually restart the panel.
systemctl restart sw-cp-server
Thank you to the Plesk team for your quick response to these critical PHP vulnerabilities.
We appreciate the timely fixes, clear guidance, and patches for older PHP versions—especially for applications that cannot yet be migrated.
Confirmed: Plesk Obsidian 18.0.81 Update #4 installed successfully.
I've restarted
sw-cp-server, and the Plesk panel is accessible again.Thanks to the Plesk team for providing the hotfix!
Thanks Plesk team!
Raj Gorsia : “if I was to update just the PHP 8.X via the Plesk updater GUI - what are the chances Plesk GUI going mental and screwing up? ” :
That should work perfectly fine with no issues. Just as you can have several php versions installed at the same time (e. g. try 8.5 on stagings sites but run production sites on 8.3), the Plesk Obsidian GUI uses a “separate php package”. So you can update them separately. And if all need fixing, you also NEED to update ALL of them, not just php 8.4 but also the GUI = Obsidian with “it's own php 8.4”
In the 5 years since switching to plesk, we never had a single issue with the GUI with any update. But as always in IT and medicine, even the most certain things and easiest procedures still come with a risk of something going wrong… So make sure you have working backups, know how to restore them, and tested that they actually work.
Sorry Raj, it seems you asked this 20 hours ago but I was notified of the question only just now and couldn't see it yesterday. I hope you've been able to update by now. Some of yesterday's confusion was that it was such a severe and critical vulnerability that the updates were released one by one, with several versions/components being ready a few hours earlier. So we could patch the php for your websites, while Obsidian/the Plesk GUI had not yet been patched so it was vulnerable (thats why I turned it off until the 18.0.81 #4 update was installed).
John Beranek For an older CentOS, support gave me:
@ all, I did find that the Plesk web GUI found no update available when using the dashboard check.
plesk installer updatedid find and install the update to Plesk itself.Please sign in to leave a comment.