Shared and managed hostingUnpatched PHP runtime

Your host hasn't patched PHP yet: what you can do today

On shared or managed hosting the provider controls the PHP binary, so only they can install a security release. Confirm the version and build your site actually runs, ask the host for a patch date in writing, switch PHP versions only if the target is already patched, and apply the vendor's server-level mitigations through your hosting panel while you wait.

This guide covers check 08: Observability and deployment; check 04: Input validation and error handling in the Zenveus Production Readiness Standard.

For builders

What this means, in plain words

On most shared hosting you can't update PHP yourself; the host does it for every customer on the server. Until they do, your job is to confirm what your site actually runs, get a date from them, and use the safety settings the PHP project recommends. Switching versions in the panel only helps if the version you switch to is already patched.

A scoped repair request

Using an AI builder? Paste this

Use this prompt in Lovable, Cursor, Replit, or Claude Code with the relevant server files available.

Help me assess PHP patch status for my site on shared hosting. Give me read-only steps to find the PHP version the web server uses (not just the CLI), compare it with the fixed release for that branch from the official advisory, and list which vendor mitigations I can set from a hosting panel versus ones that need server configuration. Draft a short support ticket asking my host for a patch date. Do not change any server setting.

The same failure may appear as

  • Hosting panel offers no patched PHP version yet
  • X-Powered-By still shows the old PHP version
  • SSH shows a different PHP version from the website
  • Support says the update is coming but gives no date

Find the failure layer

Run these checks before rewriting anything

Each check removes a class of causes. Keep the first failing result, its timestamp, and the production log beside it.

01

Find the version the website runs

The command-line PHP over SSH can differ from the build the web server uses. Check the response header, the hosting panel, or a temporary probe file that you delete straight away.

If this failsA version below the fixed release for its branch means the site is still exposed, whatever SSH reports.
curl -sI https://example.com | grep -i x-powered-by
# or a one-line probe file with a random name, opened once, then deleted:
# <?php echo PHP_VERSION, ' ', PHP_SAPI;
02

Check every version the host offers

Look at each PHP version in the hosting panel or under the host's PHP directories. Some hosts patch one branch before the others.

If this failsIf no offered version is patched, switching in the panel won't help; keep the version you're on and use the mitigations below.
03

Read the vendor's mitigations

Security advisories usually list settings that reduce exposure until you can update. Note which ones you can set from your hosting panel.

If this failsPHP's advisory notes that settings such as session.upload_progress.enabled must apply before the request is parsed, so ini_set() and .user.ini are too late; use the hosting panel or ask the host.

Ranked diagnosis

Common root causes, in the order we would test them

01

The host controls PHP

Shared and managed plans run PHP builds the host compiles and deploys, so customers can't install releases themselves.

02

Staged rollout

Large hosts test and roll security builds across many servers, which can take hours or days.

03

Backported packages

Some providers patch an existing build without changing its version number, so the version alone can be misleading.

Step-by-step repair

How to fix this in your app

Use your hosting panel's PHP settings and a support ticket. If you have SSH, use it only to read versions; the web server's PHP is configured by the host.

Production safety ruleNever disable access controls, expose service keys, or add wildcard CORS as a routine shortcut.

01

Ask for a date in writing

Open a support ticket naming the CVE IDs and your site, and ask when patched builds will be live on your server and whether existing builds were backported.

02

Switch only to a patched version

If the panel offers a patched build on a branch your site supports, test the site on it and switch. Don't jump to an unpatched branch just because it's newer.

03

Apply panel-level mitigations

Set the vendor's recommended values, such as a lower post_max_size and upload_max_filesize, through the hosting panel's PHP settings so they apply at the server level.

04

Reduce what is exposed

Put admin tools and staging copies behind a password or IP allowlist, and remove PHP apps you no longer use until the patch lands.

Implementation example

Support ticket: what to ask your host

Subject: Patch status for PHP security release (CVE IDs)

Our site example.com runs PHP 8.x.y on your platform.
1. When will the patched PHP build be deployed to our server?
2. Have existing builds been backported, and how can we confirm it?
3. Which mitigations do you recommend or apply at the server level until then?
Please reply with the expected date and the build we should see afterwards.

Replace the placeholders with your domain, version and the CVE IDs from the vendor advisory. Keep the reply as evidence of when you asked and what you were told.

Prove the repair

How to check that the fix worked

Run these checks with synthetic data in your test environment, then repeat the relevant acceptance checks after deployment.

  • The website's PHP version matches or exceeds the fixed release for its branch.
  • The check is made from the web side, not only with php -v over SSH.
  • Mitigation settings show the intended values in the hosting panel.
  • Uploads, forms and admin still work after any setting change.

If the check still fails

If the host can't give a date and the vulnerability is being exploited, move the most exposed sites to hosting where you control PHP, or put them behind a firewall or maintenance page until the patch lands.

When the built-in AI fix makes it worse

Recover one reproducible failure.

Pause generated changes, restore a known working branch, and capture one failing request with its logs. Change one layer and rerun the allowed and denied checks before proceeding.

Engineering handoff

What Zenveus checks when the quick fix is not enough

We trace one production request through the complete path, isolate the failing boundary, and leave behind evidence your team can repeat.

Runtime inventory

Every site and service, its PHP build and who controls updates.

Exposure window

Which sites are reachable, what they hold and how long they stay unpatched.

Interim controls

Mitigations, access limits and monitoring until the patch lands.

Hosting decision

Whether critical apps should move to infrastructure you can patch yourself.

Typical repair pattern

The website runs a patched PHP build, confirmed from the web side

The response header or probe shows the fixed release, mitigations are recorded, and the host's confirmation is on file.

Evidence left behind
  • Root-cause note
  • Verified production check
  • Rollback and prevention steps

Before the next release

Prevent this failure from returning

Keep a list of every site and the PHP version it runs, so you can check exposure in minutes.
Choose hosting that publishes security response times, or run PHP where you control updates.

Clear answers

Questions teams ask before they touch production

01Can I upload my own patched PHP to shared hosting?

Usually not. The web server only runs the PHP builds the host provides, so the fix has to come from them or from moving the site to hosting you control.

02Does a newer PHP version in the panel mean I'm safe?

Only if that build includes the security fix. Check the exact version against the vendor's fixed release for that branch, or ask the host whether it was backported.

03Will changing post_max_size break uploads?

It limits the largest request your site accepts. Set it above your largest real upload, keep upload_max_filesize below it, and test media and form uploads after the change.

04How do I know the fix worked in my app?

Run the verification checks on this page after the host updates PHP. The version the website reports should match or exceed the fixed release for its branch.

Free next step

Check the boundary before you hand it over

The free tool helps you inspect this symptom. Its result does not establish whether the whole app is production ready.

Take it further

Fixed this one? Find the next one first.

This fix solves one symptom. A guided self-assessment walks you through the rest of the app, one session at a time, and ends with a report and a ranked fix list you can act on or hand to a developer.

Planning more than one stage? Founder Bundles combine the guided products from $149 and save up to $405.

The Verdict

Know whether the symptom is contained or structural.

We can see the symptom from here. What we cannot tell you from outside is whether it is contained or structural. A scanner collects evidence. A named senior engineer makes the decision. For $299, a named senior engineer reads your code and signs a written Verdict against the nine checks in the Zenveus Production Readiness Standard. The 48-hour clock begins when the required access and context are available. If the report does not give your developer a list they can act on, you do not pay.

The 48-hour clock starts when the required access and context are available.

Scroll to Top

Optional tracking stays off until you enable it. You can change your choice at any time.

Essential — always active
Security, requested features, and remembering these choices.

Read our cookie policy