PHP2Shell: Check Power BI Data Feeds

23 Oct 2026 · 5 min read

Power BI itself and SaaS reporting services are not automatically affected by PHP2Shell. Check whether a custom API, export endpoint or intermediary supplying your reports runs PHP. Your hosting owner confirms the runtime fix; reporting checks then establish that the feed is current, complete and reconciled with the source.

Get your PHP-backed reporting feeds current and reconciled again. We can repair the connector, query or refresh path supplying Power BI, then compare the report's records and totals with the source. The relevant dependency may be a PHP API returning JSON, a CSV export endpoint or a connector's server-side intermediary.

Request urgent reporting-feed help. Share the affected report, source, host and decision deadline. Download the fillable patch and data-feed handoff checklist to record the checks with your team.

Guidance checked: 23 October 2026. For the PHP runtime or website application itself, use Turing Websites' PHP security update service. The reporting work below checks the path from the restored source to the figures your team uses.

Restore the feed your report depends on

The repair depends on where the source-to-report path has changed:

Your reporting problemThe repair and check
A PHP API or export has changed its response after the updateCheck authentication, response format and field types, repair the connector or transformation, then compare source and imported records.
Refresh completes but the report is stale or incompleteTrace timestamps, pagination and duplicate keys, repair the affected query or gateway configuration, then reconcile a bounded period.
A WordPress or AWS-hosted PHP source feeds operational reportingCheck the restored endpoint and published refresh route together, then compare agreed counts and totals with the source on the same date and currency basis.

Use the WordPress PHP update guide or AWS PHP update guide for the hosting-specific checks. A report that reads directly from a database has a different dependency path from one that calls a PHP endpoint.

Confirm the PHP fix with the runtime owner

PHP's 21 October security release addresses CVE-2026-109618 and CVE-2026-109619, which can allow unauthenticated remote code execution. Its scope includes PHP serving web requests through FPM, Apache mod_php, CGI, FrankenPHP and LiteSpeed. The upstream fixed releases are:

PHP branchFixed release, or a later maintained release on that branch
8.28.2.35
8.38.3.36
8.48.4.27
8.58.5.12

Follow the official PHP advisory and its linked vulnerability records. Distribution or LTS packages may backport both fixes while retaining an older-looking version: obtain the vendor's package/CVE confirmation, as illustrated by Ubuntu's package guidance. PHP 8.1 and older lack routine upstream security support; exceptional source backports do not restore that support.

The full runtime patch is the remediation target. PHP describes its temporary mitigations as incomplete. Follow current vendor guidance rather than treating a WAF or an isolated setting as a complete fix. UK NCSC guidance advises considering affected systems offline when timely mitigation is unavailable. Suspected compromise belongs with hosting security support or an NCSC-assured incident-response provider; patching and report reconciliation do not establish that an incident is resolved.

Locate the dependency before changing the report

Trace one report backwards: semantic model, gateway or connector, API/export, application and runtime owner. Record which components run PHP and which provider maintains them. A database behind a PHP website does not make every database connection a PHP connection.

Ask the hosting owner for the deployed package, fixed-CVE confirmation and any required worker restart. Confirm the web-serving runtime separately from a command-line version. Preserve the last validated report, refresh history and source extracts in your controlled environment. Your hosting team or Turing Websites' PHP update service can address the runtime and application; Turing BI handles the reporting connection and acceptance checks below.

Validate the feed, then its report

Work with the reporting owner on these checks after the host confirms remediation:

  1. Response and schema: authentication still works and the response is the expected JSON/CSV, with the same fields and types. An HTTP 200 carrying a login page is not a valid feed.
  2. Freshness: compare the source's latest business timestamp with the extract and report. Record time zones and the agreed acceptable delay.
  3. Completeness: compare a bounded source record list with the extract. Account for pagination, missing identifiers, duplicates and blank fields.
  4. Totals: reconcile one agreed measure for the same dates, currency, filters and refund/tax basis. Preserve an unchanged control period.
  5. Refresh route: check the published model's refresh as well as Desktop, including the gateway or intermediary. Use the existing refresh and gateway guide.

For an operational webhook that also writes records or sends messages, use Turing Automate's PHP2Shell workflow checks to reconcile actions before replaying them.

An illustrative acceptance specification

Fictional planning example, not an executed Power BI test or client result: a controlled period contains 100 unique orders totalling £12,500 on an agreed GBP basis. The patched feed must preserve both values. In an authorised test environment, adding order TEST-101 for £250 should produce 101 unique orders and £12,750. Re-reading the feed should retain those figures; the previous period should remain unchanged.

Record observed values beside those expectations, including the source, extract and report timestamps. A matching arithmetic example specifies a useful check; your connected systems still need execution and review.

Get help checking your reporting feed

Turing BI can repair the affected connector, query or refresh configuration and reconcile the refreshed output. Use our data integration service for a source connection or Power BI repair service for an affected report.

Request urgent reporting-feed help with your host's patch status, affected source, last validated output and deadline. Keep original logs and customer data within your own systems.

Frequently asked questions

Does PHP2Shell mean Power BI itself is vulnerable?

The advisories concern PHP runtimes serving web requests. Check PHP-hosted APIs, exports and intermediaries in your own reporting path. Using Power BI or another SaaS reporting product alone does not establish exposure. Ask each relevant provider to confirm its position.

Does a successful refresh prove the report is correct after patching?

A completed refresh records execution, not business accuracy. Compare source timestamps, expected records, duplicate keys and agreed totals for the same period, currency and filters. Check both an unchanged control period and an authorised test record.

What should I send with a reporting-feed enquiry?

Name the report, source application, hosting owner, PHP package or patch reference, last validated refresh and decision deadline. Use redacted errors. Keep credentials, gateway recovery keys, report files and customer records in your controlled systems.

Check the data feeding your report

Request urgent reporting-feed help after the PHP2Shell advisory. Share the PHP-backed source, hosting owner's patch status, affected report and decision deadline so the connector and source-to-report checks cover your reporting need.