PHP2Shell: patches released Oct 21, 2026 — PHP 8.5.12 · 8.4.27 · 8.3.36 · 8.2.35. What your agency should do
Forward-deployed engineers for local government

Keep public services online through PHP2Shell.


Permit portals, payment pages, council sites and records search often run on PHP. CivicOps helps city, county and agency IT teams patch CVE-2026-109618 and CVE-2026-109619, confirm every vendor did too, and explain it all to leadership in plain language.

Works with your IT staff & vendorsFixed-scope, procurement-readyDocumentation for council & leadership
Free version check

Is this system vulnerable?

Enter the PHP version from php -v, your hosting panel, or your vendor's reply. The check runs in your browser — nothing is sent.

Vendor-managed servers often run distribution packages that carry the fix under an older number. Ask the vendor to confirm in writing.

In plain language

What is PHP2Shell?

PHP2Shell is the name for two critical flaws in PHP — CVE-2026-109618 and CVE-2026-109619 — the software that runs a large share of government websites and online services. An attacker on the internet can send a crafted request and take control of an unpatched server, with no login. Fixes were released on October 21, 2026. Updating Drupal, WordPress or a vendor's application is not enough: the PHP software underneath must be patched.

Impact
Server takeoverUnauthenticated remote code execution; resident data and services at risk.
Severity
CVSS v4.0 9.2Critical rating from the PHP security team, for both flaws.
Activity
Attacks startingSecurity firms report exploitation attempts; working exploits have been shown.
Fix
Update PHP8.5.12, 8.4.27, 8.3.36, 8.2.35 — or a vendor-patched package.
A response plan for public agencies

Your first 72 hours

A practical sequence for city, county and agency IT. Follow it yourself — or hand any phase to a CivicOps engineer who works alongside your staff.

Hours 0–24

Find & contain

  • List every public-facing site and portal, including vendor-hosted ones
  • Record each PHP version and who maintains it
  • Patch anything you control that's internet-facing
  • Restrict or take offline what you can't patch today
  • Send vendors the written confirmation request

CivicOps can: build the inventory with your team — including the systems nobody remembers owning.

Hours 24–48

Patch & confirm

  • Patch remaining systems in planned maintenance windows
  • Back up first; keep a tested rollback for each change
  • Restart every PHP worker after updating
  • Chase vendors that haven't confirmed in writing
  • Post resident notices for any service that's offline

CivicOps can: patch and test alongside your staff, and handle the vendor follow-up so your one IT person isn't on hold all day.

Hours 48–72

Verify & report

  • Verify each system actually runs a fixed build
  • Review logs since October 20 for suspicious activity
  • Bring restricted services back online once fixed
  • Brief leadership: patched, pending, and needing upgrade
  • List end-of-life PHP systems for a modernization plan

CivicOps can: verify every fix independently and deliver a council-ready status report with an upgrade plan.

Short-staffed? Hand us the plan.

Put a CivicOps engineer on your systems and your vendors. You keep control; we do the heavy lifting and the paperwork.

For your manager, council or board

A briefing you can send today

Leadership needs to know what happened, what it means for residents, and what IT is doing. Copy this, adjust it, send it.

  • No jargon — written for elected officials and administrators
  • Accurate — based on the PHP security advisory
  • Action-oriented — clear next steps and owners
Briefing · PHP2Shell

Subject: Critical PHP security update (PHP2Shell) — status and next steps

  1. What happened: On October 21, 2026, the PHP project fixed two critical flaws (CVE-2026-109618 and CVE-2026-109619, “PHP2Shell”). Unpatched public websites built on PHP can be taken over remotely without a password.
  2. Why it matters: Several of our public services may run on PHP, including vendor-hosted systems. Security firms report attacks beginning.
  3. What IT is doing: Inventorying every public-facing PHP system, patching internet-facing systems first, and requesting written confirmation from vendors.
  4. If a system can't be patched quickly: We will temporarily restrict or take it offline and post an alternative for residents.
  5. Next update: IT will report which systems are confirmed patched, which are pending, and any upgrade needs for outdated systems.
Need the real numbers for this briefing?

A CivicOps Assessment tells you exactly which systems are patched, which are pending, and which need replacing — in a report written for council.

Guidance by role

What your part looks like

PHP2Shell isn't only an IT problem. Pick your role to see your next steps — and what CivicOps takes off your plate.

IT director & staff

You own the fix. Exposure first, perfection later.

  1. Inventory everythingEvery public PHP system, including vendor-hosted and department-bought tools.
  2. Patch internet-facing first8.5.12, 8.4.27, 8.3.36, 8.2.35 or a vendor package — then restart workers.
  3. Contain the restRestrict or take offline anything you can't patch quickly.
  4. Get it in writingVendor version, install date, restart and how they verified it.
CivicOps takes on

InventoryPatching with rollbackVendor follow-upIndependent verification

Add engineers to my team
Where to look

Public systems that often run PHP

Start with anything residents reach from the internet. Vendor-hosted doesn't mean vendor-patched.

City & county websites

Drupal and WordPress sites for departments, news, agendas and emergency alerts.

Permits & licensing

Building permits, business licenses, inspections scheduling and applications.

Online payments

Utility bills, parking tickets, court fees, recreation registration.

Records & transparency

Public records requests, document archives, open data and meeting video portals.

Service requests & GIS

311-style reporting, maps and property lookups built on PHP front ends.

Intranets & internal tools

Staff portals and legacy custom apps — often the oldest PHP in the building.

Fixed versions

Patch to these releases

BranchFixed inStatus
PHP 8.58.5.12Official fix
PHP 8.48.4.27Official fix
PHP 8.38.3.36Official fix
PHP 8.28.2.35Official fix
PHP 7.4 – 8.1Backports / vendor packagesEnd-of-life
PHP 5.4 – 7.3None from PHPUpgrade or isolate

Restart every PHP worker after updating. Interim settings from the PHP security team (an enforced memory_limit=-1, session.upload_progress.enabled=0) reduce exposure but are not a fix.

Vendor-hosted systems

Questions to send your vendors

Vendor checklist
  1. Which PHP version or patched package is installed on each server hosting our systems?
  2. When was it installed, and were all PHP workers restarted afterward?
  3. How did you verify the fix for CVE-2026-109618 and CVE-2026-109619?
  4. Are any of our systems on PHP 8.1 or older? What is the upgrade plan and date?
  5. Have you seen any suspicious activity on our systems since October 20, 2026?

Systems that can't be patched promptly should be restricted or taken offline until fixed, as the UK NCSC and CERT-EU advise.

Vendors slow to answer?

CivicOps will send the questions, follow up, and independently verify each answer — so “we're patched” becomes evidence you can file.

Two-minute self-check

How ready is your agency?

Nine quick questions. You'll get a readiness score and a short list of gaps — and can send it straight to a CivicOps engineer.

  1. Do you have a list of every public-facing system that runs PHP?Including vendor-hosted sites and tools departments bought on their own.
  2. Do you know which PHP version each of those systems runs?Not just “the vendor handles it.”
  3. Are the internet-facing systems you control patched?PHP 8.5.12, 8.4.27, 8.3.36, 8.2.35 or a vendor package — with workers restarted.
  4. Has every vendor confirmed the fix in writing?Installed version, install date, restart, and how they verified it.
  5. Is anything you can't patch restricted or offline?With another way for residents to get the service.
  6. Did every change have a backup and rollback plan?So a patch can't take a service down for days.
  7. Have you reviewed logs since October 20?Looking for signs of compromise before the patch landed.
  8. Does leadership have a written status update?Patched, pending, and needing replacement.
  9. Is there a plan for end-of-life PHP systems?Anything on PHP 8.1 or older.
Keeping residents informed

If a service has to go offline

Taking an unpatched portal offline is often the safest call. Tell residents clearly, give them another way to get it done, and line up help the right way.

Resident notice template

[Service name] temporarily unavailable for a security update

To protect residents' information, [City/County] has temporarily taken [service name] offline while we apply an important security update. No action is needed from you.

While the service is unavailable, you can [pay / apply / request records] by calling [phone], emailing [email], or visiting [location] during business hours. Deadlines affected by this outage will be [extended / handled case by case].

We expect the service to return by [date]. We'll post an update here when it's back. Thank you for your patience.

Getting outside help, by the rules

  • Emergency provisions: many purchasing policies allow expedited procurement for urgent security threats — check yours with finance.
  • Existing vehicles: current IT contracts or cooperative agreements may already cover engineering support.
  • Fixed scope: a defined assessment keeps spending predictable and easy to approve.
  • Paper trail: keep the justification, scope and deliverables together for audit.

CivicOps can: provide a fixed-scope statement of work, a quote written for public purchasing review, and documentation that supports an urgent-need justification.

Request a fixed-scope quote

This is general guidance, not legal or procurement advice. Follow your jurisdiction's purchasing rules.

Ways to work with us

Three ways in

Start small with an assessment, fix what matters, or keep engineers alongside your team.

01

CivicOps Assessment

Understand the workflow, systems and constraints, then define a useful scope.

  • Inventory of public PHP systems
  • Vendor and host patch confirmation
  • Prioritized findings for leadership
Start an assessment
02

CivicOps Implementation

A defined build, deployment and handover around an agreed departmental improvement.

  • Patching, rebuilds and testing
  • Rollback plans and maintenance windows
  • Handover documentation for your staff
Request implementation
03

Embedded CivicOps

Ongoing engineering capacity with agreed responsibilities, priorities and working reviews.

  • Legacy PHP modernization
  • Routine patching and maintenance
  • Automation for departmental workflows
Talk about embedding
Built for the people you serve

How we work with government

Scope first

A short assessment produces a clear, fixed scope before any larger commitment.

Procurement-ready

Statements of work and quotes written for public purchasing review.

With your team

We work inside your change process, alongside IT staff and existing vendors.

Documented

Plain-language records of what changed, for leadership, auditors and future staff.

Discuss your workflow

Tell us about your systems

Three short steps. An engineer reads every request and replies with a proposed first step and scope.

  • Vendor says it's patched — you need confirmation
  • Several departments, no single inventory
  • Older systems on PHP 7 or earlier
  • Leadership is asking for a status report

Prefer email? team@kalfoundry.com

Step 1 of 3
Where are you today?
FAQ

Questions from public-sector IT

Does PHP2Shell affect our city or county website?

If any public website or portal runs PHP and hasn't been patched, yes. That includes many Drupal and WordPress government sites and a large share of permitting, licensing, payment and records portals. Both flaws can allow remote takeover without a login.

Our vendor hosts everything. Are we covered?

Only if the vendor patched PHP on the servers that run your systems. Ask for written confirmation of the installed version or package, the install date, whether PHP workers were restarted, and how they verified it. Our vendor checklist above has the exact questions.

What should we do first?

List every public-facing system that uses PHP, including vendor-hosted ones. Patch or confirm patching for internet-facing systems first, restart PHP workers, and restrict or take offline anything that can't be fixed quickly. Then document what was done for leadership.

Which PHP versions fix it?

PHP 8.5.12, 8.4.27, 8.3.36 and 8.2.35. PHP 7.4–8.1 have no official release (source backports and some vendor packages exist). PHP 5.4–7.3 get no fix from the PHP project and need upgrading or isolation.

What should elected officials ask IT?

Three questions: Are any of our public systems affected? Are they patched — including vendor-hosted ones? What is still pending, and when will it be done? Ask for a short written update, and support brief service interruptions if IT needs them. See the role guide above.

Should we take a vulnerable service offline?

If an internet-facing PHP system can't be patched promptly, restricting or taking it offline is the safer call. Post a resident notice with another way to pay, apply or request records, and an expected return date — the template above is ready to copy.

Can you work within our procurement rules?

Yes. We start with a fixed-scope assessment and write statements of work and quotes for public purchasing review. Tell us your requirements in the form and we'll match them.

We're a small town with one IT person. Is this for us?

Especially. CivicOps engineers work alongside your staff and vendors so one person isn't carrying an emergency alone, and we leave documentation behind so the knowledge stays with you.

Better systems. Better public service.

Discuss your workflow
Sources — facts on this page come from the PHP security advisory as reported by:

Last reviewed October 21, 2026.

Discuss your workflow