Repository navigation
Release v1.23.0
v1.23.0
Changelog
Security: the admin UI refuses to compile without form CSRF protection (CsrfProtectionPass, fail closed). See UPGRADING.
Security
- CSRF fails closed also when only form CSRF is disabled: new
CsrfProtectionPassmakes the container refuse to compile while the panel (web_ui.enabled) or the setup wizard (setup.enabled) is registered andsecurity.csrf.token_managerorform.type_extension.csrfis missing, orframework.form.csrf_protectionis false. The controllers already denied mutations without a token manager, but withframework.form.csrf_protection: falsethe token manager exists while the panel / wizard forms skipped token validation, so backup / restore / delete and setup steps accepted tokenless cross-site POSTs. See UPGRADING and SECURITY.
Added
- Developer tooling:
make check-no-raw-html-formfails on raw<form>/<input>/<textarea>/<select>in bundle views and demo templates, and runs inrelease-check(REQ-TWIG-005).
Changed
-
Demo: the force-setup flag buttons (home page and guest layout gate escape) render through a Symfony Form Type (
CsrfOnlyType, CSRF token iddemo_force_setup) withform_start/ child loop /form_end, and the POST handlers validate withhandleRequest+isValid()instead of a hand-rolled_csrf_tokeninput (REQ-TWIG-005). -
Developer tooling:
make release-checkruns the full REQ-MAKE-002 chain withensure-upfirst (then the Cursor co-author, open-PR and Twigextragates, composer-sync, cs-fix, cs-check, rector-dry, phpstan, igor, translations, coverage-check and the demo release-check). -
Developer tooling:
composer test-coverageruns PHPUnit withmemory_limit=1Gso the HTML coverage report no longer runs out of memory at the 128M default (make test-coverage/coverage-checkread the % again).
What's Changed
- fix(security): panel and setup wizard refuse to compile without form CSRF by @HecFranco in #27
Full Changelog: v1.22.2...v1.23.0