Skip to content

Require patched Laravel releases in both Sample applications - #346

Draft
rmcdaniel wants to merge 2 commits into
mainfrom
fix/sample-app-laravel-advisories
Draft

rmcdaniel wants to merge 2 commits into
mainfrom
fix/sample-app-laravel-advisories

Conversation

@rmcdaniel

@rmcdaniel rmcdaniel commented Nov 13, 2026 •

Copy link
Copy Markdown
Member

The root and microservice applications lock Laravel releases affected by the November concurrency and signed-URL advisories. Require and lock Laravel 13.41.0 at the root and 12.72.0 in the microservice, with a contract check preventing either manifest or lock from falling below those floors.

Both applications now require and lock Workflow 2.28.1 at qualified source/dist c090506cafa011335fcd5db07b7da79945fe83db. The candidate manifest's Workflow field matches. Published package and installed producer handoff is independently verified; Sample's own installed acceptance is still required. Root's required Prompts update and same-version/same-commit phpdotenv canonical URL refresh are retained from the reviewed Laravel delta. Other artifact selections, framework-free PHP/Python/Rust playground locks, CI launchers and frozen #339 candidate 2bf6f2a are unchanged.

Current source candidate: a45254bc4d198e9c90cea3a051a4648730f6bf34. Both no-install/no-scripts/no-plugins Composer resolutions, strict validations and locked audits pass with zero advisories. Only Workflow changes in the successor package delta. All four framework constraint/lock metadata floor assertions and both standalone artifact-graph checks pass; package refs match the published tags. Public-boundary, credential/private-path and whitespace checks pass. The PHP floor contract test is unchanged from the independently reviewed Laravel source and is syntax-valid; PHPUnit was not executed. All captured metadata/graph containers are absent.

This is a draft source candidate. Caller CI is skipped; package/application execution, installed/unit/onboarding qualification, merge and publication retain #344's explicit stop. Its defensive source fix is independently reviewable in draft #349; source review does not admit a replacement caller. The SDK's 3.18.3 source/Release exists, but a fresh ordinary P2 read on November 14 still exposes 3.18.2 and no 3.18.3. SDK #421 owns that delivery and accepted registry-only bridge receipt; no source/registry substitution or SDK update is selected here. Workflow publication/qualification is resolved and is not retained as a blocker.

Security's earlier source-only PASS covers the unchanged Laravel/floor-check delta. Security's exact-source review of this successor passed for a45254bc4d198e9c90cea3a051a4648730f6bf34. Source-only review is resolved; CodeQL also succeeds. This supplies no installation/onboarding or #344 authority. Sample-app owns the remaining installed follow-through when its concrete dependency and admission gates clear. Obsolete lower-floor Dependabot #347/#348 are closed as superseded; the advisory is not claimed delivered.

Refs #345; related #338/#339. Keep #345 open through actual installed delivery.

@rmcdaniel

Copy link
Copy Markdown
Member Author

Security exact-source review: PASS, scoped only to 0a35b5441e2f348b1130172c51e0b8053f3ad238 and its five-file metadata/test delta.

Independent checks:

  • The root manifest and lock bind Laravel ^13.41.0 / v13.41.0 at official tag commit 95934d2868c90c1aa8e711791ea33d1e990e1719; the microservice binds ^12.72.0 / v12.72.0 at official tag commit b089d3020e508f49b3625726ab4a2c897f1b78d5.
  • Normalized full package comparison shows the root's only resolved package changes are Laravel and its required Prompts update to official v0.3.27 / abdfc75a1ae6c6f21522daed50da7124cbff09d2. The microservice changes only Laravel. The phpdotenv URL canonicalization in both locks preserves package version and commit; both old and new repository names resolve to GitHub repository ID 7769432.
  • Both manifests and locks parse, the diff is clean, and the new contract test covers both manifest floors and both locked framework versions. I found no advisory ignore, audit bypass, plugin expansion, caller/workflow edit, other-language lock edit, or frozen tuple change.
  • The initial CA and partial-update refusals remain separate NONPASS evidence; the final metadata-only resolution/audit scope did not run package scripts, plugins, application code, onboarding, or the held launcher.

This does not qualify an installed application or clear #344. Normal caller/unit/onboarding validation remains held until the qualified SDK PHP #421 / Workflow authority handoffs and the existing admission disposition are complete. The current [skip ci] source preparation therefore must not be treated as an installed, runtime, merge, publication, or tuple-activation PASS.

@rmcdaniel

Copy link
Copy Markdown
Member Author

Final source successor a45254bc4d198e9c90cea3a051a4648730f6bf34 incorporates qualified Workflow 2.28.1 in both application constraints/locks and the matching candidate manifest. Exact source/dist c090506cafa011335fcd5db07b7da79945fe83db matches the public tag and independently qualified producer handoff. Laravel 13.41.0/12.72.0 and the floor contract source are unchanged from the earlier reviewed delta.

Both metadata-only Composer updates, strict validations and locked audits pass with zero advisories; only Workflow changes in each successor package set. Four framework-floor data assertions and both standalone artifact graphs pass. No package/app/held caller was installed or executed. All captured containers are absent, source is clean, credential/public-boundary checks pass. Frozen #339 remains 2bf6f2a; #344 is untouched. #347/#348 were closed as superseded without a delivery claim.

Exact-source counter-review requested. The remaining execution gate is #344's unaccepted consumer/admission path; SDK #421 separately owns the still-missing ordinary P2 3.18.3/registry bridge handoff. Workflow publication/qualification is resolved. No merge, installed acceptance or publication is claimed.

@rmcdaniel

Copy link
Copy Markdown
Member Author

Security source-only rebind: PASS for exact head a45254bc4d198e9c90cea3a051a4648730f6bf34.

I independently compared this successor with previously reviewed 0a35b5441e2f348b1130172c51e0b8053f3ad238. The delta is limited to five files: both application constraints now require durable-workflow/workflow:^2.28.1; both lockfiles contain the same Workflow 2.28.1 record at source/dist commit c090506cafa011335fcd5db07b7da79945fe83db; and the qualified tuple selects Workflow 2.28.1. Removing the content hash and Workflow record from each lock leaves every other package record byte-equivalent to the reviewed predecessor.

Independent current reads confirm annotated tag 2.28.1 resolves to c090506c..., and normal Packagist P2 reports the same source/dist reference, PHP constraint, and Laravel floor ^12.72.0|^13.41.0. The root Laravel ^13.41.0 and microservice ^12.72.0 constraints/locks remain exact; the existing floor test is unchanged. JSON parsing, whitespace checks, both static artifact-graph reconciliations, and the current terminal CodeQL checks pass.

No source finding in this successor. This verdict is deliberately limited to source/lock/tuple consistency. It does not authorize package installation, application/onboarding execution, the held caller, publication, or the set-aside #344/#338 operations.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant