Priority: Apply on all internet-facing FusionPBX / FreeSWITCH GUI hosts. Fixed runtime is PHP 8.2.35 (Debian bookworm-security).
Package and helper scripts (install-offline.sh, install-online.sh, verify.sh, rollback.sh) were generated by Renovate bot for this emergency PHP security rollout.
Summary
PHP critical flaws CVE-2026-109618 and CVE-2026-109619 (PHP2Shell) can allow unauthenticated remote code execution on PHP serving web requests. FusionPBX is affected through its PHP-FPM runtime, not through a FusionPBX application bug.
Expertflow validated fix: upgrade the GUI host to PHP 8.2.35 from Debian security, point nginx at php8.2-fpm.sock, keep old PHP packages until verified.
Do you need downtime?
|
Service |
Downtime? |
Notes |
|---|---|---|
|
Voice / FreeSWITCH calls |
No planned downtime |
PHP-FPM restart does not stop FreeSWITCH. |
|
FusionPBX web GUI / PHP APIs |
Brief (typically under 1–2 minutes) |
During |
|
GUI sessions |
May need re-login |
PHP sessions can reset. |
This is not a full platform outage. Calling can continue; only the admin/web UI has a short blip.
Requirements
-
Debian 12 (bookworm), architecture amd64
-
FusionPBX with nginx + PHP-FPM
-
Root access
Choose your path
|
Customer environment |
Use |
|---|---|
|
No internet (air-gapped / closed) |
Offline package + |
|
Has internet to Debian security |
|
Attachment / package
-
php82-offline-bundle-8.2.35-deb12-amd64.tar.gz — Debian
.debs + scripts from Renovate bot:install-offline.sh,install-online.sh,verify.sh,rollback.sh
After unpack, scripts are at:
php82-offline-bundle-*/scripts/install-offline.sh
php82-offline-bundle-*/scripts/install-online.sh
php82-offline-bundle-*/scripts/verify.sh
php82-offline-bundle-*/scripts/rollback.sh
SHA256 of rebuilt package (must match after you re-upload):
cffc7fb2c015844c9d4a98e750a3abdb4a094216cea0defbf5114415161295cd php82-offline-bundle-8.2.35-deb12-amd64.tar.gz
Path A — Offline (no internet)
-
Copy the tarball to the customer FusionPBX VM.
-
As root:
Bashtar -xzf php82-offline-bundle-8.2.35-deb12-amd64.tar.gz cd php82-offline-bundle-*/ ./scripts/install-offline.sh ./scripts/verify.sh -
Confirm GUI login works.
Path B — Online (internet available)
cd php82-offline-bundle-*/
./scripts/install-online.sh
./scripts/verify.sh
Verify the fix
php-fpm8.2 -v
# Expect: PHP 8.2.35
zgrep -E 'CVE-2026-109618|CVE-2026-109619' /usr/share/doc/php8.2-fpm/changelog.Debian.gz
ls php82-offline-bundle-*/scripts/rollback.sh
systemctl is-active php8.2-fpm php8.1-fpm
curl -skI https://127.0.0.1/login.php | head
Rollback
|
Location |
Path |
|---|---|
|
Inside the offline package (after unpack) |
|
|
On the host after install (preferred) |
|
Confirm it is in the package:
tar -tzf php82-offline-bundle-8.2.35-deb12-amd64.tar.gz | grep rollback.sh
How to run
# Preferred after install:
/root/php-upgrade-rollback-<timestamp>/scripts/rollback.sh
# Or from unpacked package:
./scripts/rollback.sh
Do not purge php8.1* until the site is stable for several days.
This rollback.sh was generated by Renovate bot.
Notes
-
If Sury PHP repo GPG key is expired, online install still works from Debian security (
-t bookworm-security). -
Wrong OS/arch (not Debian 12 amd64): do not use this bundle; contact Expertflow for another build.
-
Restrict FusionPBX admin GUI to VPN/allowlist where possible.
-
Helper scripts in this package were generated by Renovate bot.
References
-
PHP security advisory (21 Oct 2026): fixed versions 8.5.12 / 8.4.27 / 8.3.36 / 8.2.35
-
CVEs: CVE-2026-109618, CVE-2026-109619