TecnoStack
Start a projectالعربية
Illustrative Laravel deployment diagram connecting PHP, the web service and a queue worker on a navy background.
Cloud & security

Laravel PHP security update: verify web runtimes, queues, scheduled tasks and permissions with a clear deployment, recovery and handover checklist.

In this article

Silent video with on-screen text. The transcript below repeats every screen and describes what it shows.

  1. 0:00–0:05

    Laravel security; Illustrative diagram; TecnoStack; 1 2 3 4 5 6; TECNOSTACK; Check your Laravel PHP release; Map the running processes; PHP; Web; Worker

    Illustrative diagram of PHP, Web, Worker. Proposed release checks, not customer results.

  2. 0:05–0:10

    Laravel security; Illustrative diagram; TecnoStack; 1 2 3 4 5 6; 01; Confirm the active PHP fix; Keep the runtime evidence; Runtime; Web; Worker

    Illustrative diagram of Runtime, Web, Worker. Proposed release checks, not customer results.

  3. 0:10–0:15

    Laravel security; Illustrative diagram; TecnoStack; 1 2 3 4 5 6; 02; Follow a queued job; Verify the completed result; Request; Worker; Result

    Illustrative diagram of Request, Worker, Result. Proposed release checks, not customer results.

  4. 0:15–0:20

    Laravel security; Illustrative diagram; TecnoStack; 1 2 3 4 5 6; 03; Test the access rules; Check permitted and denied requests; Account; Allow; Deny

    Illustrative diagram of Account, Allow, Deny. Proposed release checks, not customer results.

  5. 0:20–0:25

    Laravel security; Illustrative diagram; TecnoStack; 1 2 3 4 5 6; 04; Record the release evidence; Name the remaining work; Runtime; Tests; Owner

    Illustrative diagram of Runtime, Tests, Owner. Proposed release checks, not customer results.

  6. 0:25–0:30

    Laravel security; Illustrative diagram; TecnoStack; 1 2 3 4 5 6; TECNOSTACK; Request a scoped assessment; Bring the deployment details; Assess; Agree; Verify; tecnostack.com

    Illustrative diagram of Assess, Agree, Verify. Proposed release checks, not customer results.

A Laravel PHP security update needs evidence from the web runtime, background workers and scheduled tasks, followed by tests of the application's access rules. Ask your operator to identify the running processes and the applicable PHP fix, then agree who will test each business workflow. Updating Composer dependencies alone does not complete that work.

This production checklist expands the release record: what changed, which processes now use it, which requests passed or failed, and what remains open. Use it with your application's installed-version documentation and a named release owner. The examples below are proposed acceptance tests, not findings from a customer system.

As of 23 October 2026, the original PHP advisory covers CVE-2026-109618 and CVE-2026-109619. Confirm the appropriate fixed package or runtime with your operator; our PHP incident response and version table keeps the release versions and older-version caveats together. A framework dependency change and a PHP runtime update need separate evidence.

PHP's 23 October follow-up identifies CVE-2026-115560 in an unusual session-handler configuration involving upload progress. Ask your maintainer to assess its applicability and current mitigation guidance separately. Do not assume that closing the original patch ticket settles the follow-up or that every Laravel application has the relevant configuration.

Keep urgent remediation distinct from a larger framework migration. Record the current framework, runtime source, deployment method and compatibility constraints. If an older application needs wider changes, assign that work explicitly; the staged modernisation planning guide can support the longer-term decision without delaying the immediate exposure assessment.

Read Laravel's live incident notice, updated 23 October at 08:31 UTC. It reports Cloud's running applications patched; Forge requires per-server action; Vapor requires a redeploy for native PHP 8.2+ runtimes and a new deployment for custom or Docker runtimes. Its older OS/runtime restrictions are product-specific. Recheck the notice before acting.

Start the ticket with the product and environment name. A colleague's Cloud confirmation cannot establish the status of your Forge server or custom image. Ask the owner to attach the completed action or provider confirmation for the application concerned, then identify who verifies the result. Retain the notice's access date because its instructions have changed during the incident.

For infrastructure outside those products, obtain guidance from the actual runtime or package supplier. Avoid translating one platform's dashboard steps into commands for another. Our hosting operations responsibility guide helps you separate server operation from application maintenance when different suppliers share the job.

Write one row for each distinct execution path. A shell version check describes that invocation; ask the operator how it relates to the processes serving requests and running jobs. Include additional servers, worker groups and production environments before declaring the inventory complete.

Execution pathEvidence to requestProposed acceptance check
Web requestsRuntime or image used by the active web serviceAn authenticated business request completes
Queue workersWorker group, runtime and replacement/restart recordA permitted job reaches its intended result
SchedulerInvocation owner, runtime and agreed scheduleA selected task completes at the expected time
Long-running application serviceService identity and deployment methodNew requests use the intended release

Record the application release identifier beside the runtime evidence. If containers are involved, ask which image reference actually reached each environment and whether older instances still receive traffic. The completion record should distinguish an image built in a registry from one deployed to a running workload.

Name the people who can make each change. An application developer may be able to deploy code but lack access to the host's runtime. A hosting operator may complete the package work without knowing the expected result of an internal reporting job. Agree the handover between them before the maintenance window.

Composer's basic usage documentation describes dependency installation and the lockfile. Keep that dependency record alongside the PHP package or image record. Ask the team to state which layer changed and why, so a successful dependency installation cannot be mistaken for runtime remediation.

Prepare a protected staging test with the proposed runtime and the intended application release. Write down the important extensions and integrations the maintainer needs to check. Use test accounts and agreed external destinations; confirm that the test environment cannot accidentally send live customer messages or create production transactions.

Decide whether a dependency change is necessary for compatibility. Keep unrelated feature work out of the incident ticket unless the release owner accepts its additional testing and recovery requirements. Record any exception, including the test you could not complete and the person responsible for resolving it.

For the longer-term stack decision, use the existing Laravel and Node.js architecture comparison. This checklist concerns an application you operate today, so its acceptance criteria should describe that application's behaviour rather than reopen the framework selection debate.

Laravel's queue documentation explains that workers retain application state and need restart handling during deployment. Match the procedure to your installed version and process manager. Record how the replacement process starts, and check that the job runner returns after the change.

Choose one harmless, authorised example such as a report export using test data. Follow the request through acceptance, queue processing, file creation and authorised download. Record identifiers that let the team connect those events without attaching confidential records to a shared ticket. A success message at submission does not show that the job finished.

Agree how to handle a job that fails halfway through. Before retrying it, establish whether it already produced a file, sent a message or changed a business record. Let the application owner decide the safe retry path and expected outcome. Keep the resulting observation in the release record, including a failure that remains unresolved.

Use the scheduler documentation for your version to inspect scheduled work. Agree the intended timezone, execution environment and next run for a representative task. Test that task's actual result; reviewing a schedule definition alone leaves its execution unverified.

Laravel's deployment guide directs web traffic to the public entry point, requires production debug mode to be disabled and addresses long-running services. Review the effective production settings with the maintainer. Use documentation for the installed version before applying a command or copying server configuration.

Ask the team to check public exposure of environment files, repository metadata, logs and backup archives within the agreed scope. Keep diagnostic information in restricted records. For a proposed staging test, trigger an expected upload failure and inspect both the visitor's message and the operator's log, excluding secrets and unnecessary customer data from the evidence.

Treat encryption-key rotation as planned work. Laravel's encryption documentation describes effects on sessions and previously encrypted data. Review what relies on the key and how recovery will work before changing it. Do not include key values in the ticket or initial enquiry.

If the same business also runs a WordPress site, use its separate WordPress hosting and update checklist. Keep each application's runtime confirmation and test record identifiable, even when both share a hosting supplier.

Use test accounts with agreed roles and records. Laravel provides authorisation mechanisms in its authorisation documentation; your team must define and test the business rules. Include the server request as well as the interface, because a hidden control does not prove that the operation rejects an unauthorised caller.

The following matrix is a proposed starting point. Adapt it to the application's policy and record actual results after the update.

Request using test dataExpected result to agreeEvidence to retain
Customer reads their own recordAllowedCorrect record and account
Customer requests another customer's recordRejected without disclosing itResponse and absence of protected data
Ordinary user calls an admin operationRejected without the changeResponse and unchanged business state
Logged-out caller changes account detailsRejectedResponse and unchanged account
Background task exports restricted dataLimited to its authorised scopeExport contents and permitted download

For an application serving multiple organisations, add a cross-organisation case using dedicated test tenants. Include relevant API routes and file downloads. Check the result in the stored business state as well as the displayed response, and identify the reviewer who accepted it. Mark untested cases clearly rather than inferring a pass from neighbouring tests.

Agree a backup and recovery path before changing production. Identify who can restore the relevant data and configuration, where the recovery evidence is kept, and how the team will protect records created after the change. If a database migration is necessary, include its recovery decision in the release plan.

Set clear stop conditions: an unverified web runtime, a worker that does not return, an unexpected permission result or a critical workflow failure. Ask the release owner to decide the next action and customer communication. Recovery may require more than restoring application files; document the specific dependencies your team must coordinate.

Close with one record containing the runtime fix, follow-up assessment, application release, worker and scheduler checks, permission results and remaining exceptions. Name the person who reviews errors after release and the agreed review time. Patching and functional tests do not establish that an earlier compromise never occurred; suspected compromise needs its own assessment, consistent with NCSC's incident guidance.

TecnoStack can assess the installation, agree a compatible PHP remediation or upgrade plan, verify the active runtime and test the application's important functions. Discuss your Laravel PHP security update alongside the managed infrastructure scope. Server hardening, backups, monitoring and management remain subject to the selected plan and agreed allowance; framework code changes, upgrades and additional investigation need separate scope where required.

Send the website address, hosting product, framework version, PHP version if known, worker/scheduler setup and critical business workflows. Identify suspected compromise and any maintenance constraints. Keep passwords, application keys and customer records out of the initial message; arrange access through the agreed secure handover process.

Request a PHP security assessment. We confirm scope, timing and price after review, including any separate investigation, malicious-code cleanup, major application changes or continuing maintenance. The handover records the work completed, the tests performed and the person responsible for each remaining item.

Discuss your website, store, app or AI project in Arabic or English. We agree the scope before work starts.

Book a free scoping callCompare services and prices