OpenCATS v0.11.1 is a security and maintenance release containing 20 commits since v0.11.0.
This release continues the PHP 8.4.1 / PHP 8.5 modernisation work, with additional security hardening, Career Portal fixes, installer improvements and expanded regression testing.
Security
Security-related changes in this release include:
- Hardened CSV import field mapping by validating destination fields against the existing OpenCATS import definitions before they are used in database queries.
- Hardened mass-import temporary file deletion by verifying files with the existing
FileUtility::isUploadFileSafe()checks before deletion. - Hardened candidate duplicate/merge handling by consistently using the existing OpenCATS database escaping and integer-validation helpers when constructing SQL.
- Added stricter validation of installer timezone input and database updates.
- Improved output escaping in advanced-search handling for HTML attributes and JavaScript values.
- Tightened validation of checkbox extra-field values.
Associated GitHub Security Advisories will be published separately.
Career Portal and email fixes
- Fixed questionnaire submissions which could fail during Career Portal applications.
- Added regression coverage for Career Portal questionnaire submissions.
- Prevented the confusing candidate ownership notification email from being sent to applicants submitting through the Career Portal.
- Fixed Career Portal job descriptions so stored HTML is rendered correctly.
- Removed the forced OpenCATS footer from outgoing email.
Installer and upgrade reliability
- Added automated integration testing of upgrades from an OpenCATS 0.9.4-era database through to the current schema.
- Improved handling of legacy database migrations.
- Fixed relative
SystemUtility.phpincludes in the installer AJAX endpoint so they no longer depend on the current working directory.
The additional legacy-upgrade coverage is intended to reduce the risk of future changes breaking upgrades from older, long-running OpenCATS installations.
Other fixes
- Fixed the Queue CLI success status when there is no queue log output.
- Improved validation and display of checkbox extra fields.
- Updated CAPTCHA dependency to Gregwar Captcha 2.1.1.
- Pinned CKEditor to the final open-source CKEditor 4 release while a future editor replacement is considered.
- Restored generation of full GitHub release packages containing production dependencies.
Development and contributing
The contributing documentation has been substantially expanded, including:
- supported PHP versions
- OpenCATS coding and development principles
- testing requirements
- guidance for contributors
- links to the OpenCATS modernisation roadmap
Testing
OpenCATS v0.11.1 has been tested on:
- PHP 8.4.1
- PHP 8.5
The release pipeline includes:
- PHPUnit unit tests
- PHPUnit integration tests
- default Behat scenarios
- security Behat scenarios
- legacy database upgrade testing
Full release archives containing production dependencies are available in both .tar.gz and .zip formats.
Upgrading
As always, take a complete backup of your OpenCATS database and attachments before upgrading.
Users upgrading from older OpenCATS releases should use the normal installer/upgrade process so any required database migrations can be applied.
Thanks to everyone who reported issues, contributed fixes and helped test this release.