phpatch.com

← phpatch.com home

mitbbs.ai php2shell Patch Case Study

By PHP Patch Assurance · Last updated: 2026-10-25 · Plain-text version

On October 21, 2026, the bilingual news portal mitbbs.ai ran the highest-risk php2shell configuration: PHP 8.3.35 under Apache mod_php. That evening it was patched to 8.3.36 with about 10 seconds of downtime, verified live across its key pages, with no signs of compromise in the pre-patch logs. It became the reference case for the patch service built that same night.

The starting point

mitbbs.ai — a New York-based bilingual news portal and forum — ran PHP 8.3.35 under Apache mod_php, the highest-risk arrangement for php2shell: PHP inside the web server's own processes. Before patching, the pre-patch logs were checked for compromise signs: no segfaults, no out-of-memory fatals, no www-data shell children. Nothing found.

The patch

The Dockerfile was pinned to php:8.3.36-apache and the new image was built while the old container kept serving. The swap took about 10 seconds, and the site answered 200 again about 4 seconds after the new container started. The same pin, build, verify and swap path later became the product's Docker patch flow.

Verification

After the swap: PHP 8.3.36 running, mod_php loaded, and the home page, the English edition, mail and the health endpoint all returning 200, with webmail reaching the mail server. Verification is not a courtesy step — it is what turns a patch into a finished job.

The work report

A five-page work report was delivered the same evening: the CVE mechanisms, the server inventory, the compromise assessment, step-by-step remediation with times, the post-patch verification table, the downtime, and the follow-ups. Every patch the service does now ends with a report in that same shape, because protection you cannot verify is not protection.

What it proved

From patch to product in one night

At about 23:08 the same evening, the site's owner commissioned a product from the evening's playbook: detect, one-click patch, verify, work report. Version 1.0 was committed at 23:30, and phpatch.com went live at 00:35 — 15 hours and 5 minutes after the php2shell disclosure at 09:30.

Check your site free Patch service

This guide pairs with the patch service.

Frequently asked questions

Was mitbbs.ai compromised?

No signs of compromise were found in the pre-patch logs: no segfaults, no out-of-memory fatals, no www-data shell children. The check happened before the patch, not after.

Why was mod_php the highest risk?

Because PHP runs inside Apache's own processes, with no process boundary between the web server and PHP. See the <a href='/guides/mod-php-vs-php-fpm'>SAPI guide</a> for the full comparison.

Is the same patch available to me?

For Docker hosts, yes: the <a href='/patch'>patch service</a> follows this same path — snapshot and restore-test first, patch, live verification, work report — for $49, or $99 with rollback.

← php2shell fix guide