Tiki 29.4
Tiki 29.4 is a security maintenance release that also includes selected bug fixes and enhancements since Tiki PREVIOUS_VERSION.
Users of Tiki PREVIOUS_VERSION are strongly encouraged to upgrade.
1. Upgrade Notes
2. Security
- [+] Language: block path traversal and PHP injection in translation editor
- [+] Graph formula: replace eval() with Math_Formula library
- [+] File Gallery: block shell injection and add CSRF protection
- [+] Wiki rankings: prevent SQL injection via categId
- [+] Authentication: prevent unauthenticated password changes for new users
- [+] Rankings: validate and sanitize request parameters
- [+] Email 2FA: improve secure token generation
- [+] Email 2FA: decrypt stored token before comparing OTP
- [+] Realtime: prevent empty WebSocket token from reusing admin permissions
- [+] Performance stats: prevent SQL injection in sorting
- [+] Installer: harden base image loading
- [+] API tokens: strengthen token generation and storage
- [+] Harden auth tokens and tighten token access controls
- [+] MediaWiki importer: prevent path traversal in attachment filenames
- [+] TikiAccessLib: refactor CSRF handling and remove unnecessary logging
- [+] Harden remember-me cookies and invalidate them after password changes
- [+] Installer: prevent SQL injection in database user provisioning
- [+] API: prevent tracker/form data from being cached in wiki page responses
- [+] PHP CLI: prevent arbitrary command execution
- [+] Score: add missing indexes to object score history
3. Bug Fixes
- [+] Wiki: restore page history and source view in French locale
- [+] ES and Lucene indexing: resolve max clause count
- [+] PluginDiv: fix undefined style variable warning
- [+] Tabular: fix CSV/JSON synchronization and separator handling
- [+] ListExecute: respect pagination and selected objects
- [+] Attachments migration: update image plugin source type
- [+] FileGals: make file delete permissions consistent across all views
- [+] Element Plus Select: keep remote multiple selects usable after selection
- [+] Cookie consent: preserve category keys in defaults
- [+] Calendar: correctly import all-day events from ICS files
- [+] MediaWiki importer: block unsafe attachment URLs and sanitize filenames
- [+] MediaWiki importer: block unsafe attachment URLs and sanitize filenames
- [+] User mentions: replace modal with inline suggestions dropdown
- [+] Calendar: add landscape layout option for PDF export
- [+] Date Time field: use current date on initial display
- [+] Installer: avoid secdb duplicate key during release packaging
4. Enhancements
- [+] System configuration: support multiple INI files
- [+] GetStringsCommand: add custom translation and string preservation options
- [+] Calendar: export all events from selected calendars
- [+] Calendar: adjust margins for landscape PDF layout
5. Dependency Updates
- [+] Update composer.lock
- [+] Plotly.js: bump minimum version to 3.5.1
- [+] Element Plus: update library and improve Tiki integration
- [+] Regenerate package-lock.json with Node.js 20
6. References