Security release for the legacy 1.9 line (PHP 7.4).
🔒 Security
- PHP injection via translation tokens (GHSA-xw8p-7592-hg99):
@@Text@@entries are written withvar_export()instead of hand-made escaping. Tokens containing control characters or more than 1024 characters are rejected, and generated language files stop receiving entries above 1 MiB. Both limits are configurable throughi18n_token_max_lengthandi18n_lang_file_max_size. After upgrading, inspect and delete poisoned files intemplate/template_lang/— the advisory has the exact commands.
✨ Added
- Native WebP support: WebP files can be uploaded, processed and used like JPEG or PNG; image extension integrity checks cover the format.
🛠️ Changed
- Setup config writer:
write_conf_file()emits string values withvar_export(); the localescape_quote()helper is removed. - IPTC charset handling: validity is checked once and the data converted once.
🐛 Fixed
- Legacy IPTC charset: data without a 1:90 tag is decoded as Windows-1252 through
makeCharsetConversion()instead of the deprecatedutf8_encode(). - PHP 8.5 deprecations:
imagedestroy(),finfo_close()andcurl_close()replaced withunset();FEUSER_LOGIN_STATUSguarded against redeclaration; non-array article image data normalized; unused dynamicFeedItem::$updateDatewrite removed. - Forms and replacers: custom form anchors are honored,
parse_markdown()passes UTF-8 to CommonMark, captured{IMAGE*}/{RANDOM_*}values are escaped.
📦 Dependency Updates
phpmailer/phpmailer7.2.0,phpoffice/phpspreadsheet1.30.8,netcarver/textile4.1.9, plus the currentsimplepie/simplepiesnapshot.
Requires PHP 7.4+ and MySQL 5.5+ / MariaDB. Ships database revision r554.