XenForo 2.2.12 is now available for all licensed customers to download. We strongly recommend that all customers running previous versions of XenForo 2.2 upgrade to this release to benefit from increased stability.

We're pleased to announce the introduction of two new features available in XenForo 2.2.12.

New CAPTCHA provider: Cloudflare Turnstile​

In September, Cloudflare Turnstile was announced. You may have noticed that we quickly implemented this into the software and it has been running here now for a little while.

While on the surface this may seem like "just another CAPTCHA" option, we feel that Cloudflare has gotten a lot of things right in its approach to this product that is missing from many other providers including HCaptcha and Google reCAPTCHA. It's a much better experience for your users, respects your users privacy and with XF 2.2.12 also provides more granular logging in the Cloudflare dashboard so you can see analytics about where in the software a CAPTCHA is being used.

We encourage you to read more about Cloudflare Turnstile on their blog and consider signing your site up, for free, right here or if you are an existing Cloudflare user, get started in your Cloudflare dashboard.

Advanced cookie consent system​

Starting with XF 2.2.12 you will be able to enable a new "Advanced" cookie consent system. This enables your users to have much more granular control over the specific cookies that are set, the purpose of each cookie and prevents certain cookies from being set at all until explicit consent is given.

As ever, this system is also extendable by add-on developers so that cookies set by an add-on can be appropriately categorised and also require consent before certain functionality is available.

Some of the changes in XF 2.2.12 include:
  • Always default to an empty array when IPv6 lookup fails
  • Fix a server error when guests tried to access non-existent search results
  • Include some missing entries in the hashes file
  • Suppress warnings when converting invalid IP addresses on older versions of PHP
  • Implement suggested password normalization for PhpBb3 authentication
  • Check for "Manage add-ons" permission when viewing or triggering a file health check
  • Fix not being able to follow users in an email bounced user state
  • Fix custom user titles set to falsy values not being displayed
  • Add missing pagination when searching for a user's reported content
  • Only sign emails if DKIM setup has been verified
  • Properly account for falsy values in wholeWordTrim and snippetString functions
  • Fix PHP 8.1 compatibility issue when performing a search with no keywords
  • Update Swiftmailer to v6.3.0 for PHP 8.1 support
  • Make adjustments to Facebook media site to support new pfbid IDs
  • Add support for detecting utf8mb3 and treating it the same as utf8 thus ensuring unicode mismatch detection and table conversion to utf8mb4 is working correctly.
  • Add missing CSS to the comment macro in the profile_post_macros template
  • When trying to unapprove a deleted thread, undelete it and put it in the approval queue
  • Prevent configuration of two-factor authentication when it is disabled via the config.php switch
  • Fix outdated link in the you_can_preview_icons_and_their_names_here phrase
  • Fix typo in legacy Instagram embed template
  • Re-implement Instagram embeds without a reliance on the oEmbed endpoints and support reel links.
  • Adjust template Parser to allow for more precise parentheses placement in some previously ambiguous usages.
  • If guest content is awaiting approval, show the username the content was submitted under
  • Fix PHP 8.1 compatibility issue when rebuilding a thread's first post information
  • Remove extraneous line breaks from the news feed option description
  • If a user is also a moderator, update the URL on their admin profile page to only show forums they moderate
  • Exclude nodes where a user can't view thread content from search queries
  • When importing from an RSS feed and posting as a particular user, respect their auto-watch preferences
  • Add support for 3GP encoded videos
  • Fix $fromEmail variable not being set correctly when sending emails
  • Fix accidentally exposing thread content to guests without the "View threads by others" permission when the thread starter's account has been deleted
  • Ensure error logging isn't silently skipped if stacktrace arguments contain invalid utf-8.
  • Adjust CSS for Spotify media embed.
  • Adjust Select2 and native auto-completer to accept tab key as selecting a result.
  • Support node_name / URL portion for categories (relevant if categoryOwnPage option enabled)
  • Remove reference to non-existent reaction_text column
  • Fix typo in mail template rendering exception message
  • Fix connected account providers not appearing on the login form in some cases
  • More accurate way of parsing byte values from PHP config values.
  • Ensure only valid users are able to change their username.
  • Better support cross platform directory separator trimming in ComposerAutoload
  • Mark XF\Payment\CallbackState as allowing dynamic properties.
  • Include PHP 8.2 compatibility fixes in non-vendor classes and utf8.php
  • Fix Vimeo embed start timestamp behavior
  • Use late static binding in utility classes to make them easier to extend
  • Ensure job max run-time checks occur at end of loops
  • Dynamically build link to front-end in the control panel
  • Include content IDs in extra data when performing spam checks
  • Include content IDs in extra data when performing spam checks
  • Improve the extensibility of spam trigger log request data
  • Add validation to widget display conditions
  • Fix validation for negative whole number custom fields
  • Adjust title attributes on bookmark links and buttons
  • Adjust line height of inline mod go button to match select height
  • In Text::copy return a Text element rather than Tag.
  • Properly escape regex when rendering a BB code table.
  • Disable PSR class path inspection in extension_hint.php
  • In the ChangeLoggable behaviour add a new option to force a change to be from a specific user ID. In contexts where actions are performed from an email link, such as email stop or password resets, this allows us to ensure the password reset change log is attributed to the correct user.
  • Update flow.js to the latest version, remove legacy FustyFlow for ancient IE fallback.
  • Apply recommended fix for wrapping selection text in different editor functionality.
  • Return a HTTP 404 error code when trying to view a tag with no viewable content
  • Handle null arguments when stripping BBcode from strings
The following public templates have had changes:
  • PAGE_CONTAINER
  • _help_page_cookies
  • _media_site_embed_oembed
  • _media_site_legacy_embed
  • account_confirm_resend
  • account_security
  • app.less
  • app_inlinemod.less
  • approval_queue_macros
  • bookmark_macros
  • captcha
  • captcha_turnstile
  • contact_form
  • core_bbcode.less
  • core_utilities.less
  • editor_base.less
  • forum_post_quick_thread
  • forum_post_thread
  • google_analytics
  • helper_attach_upload
  • login
  • lost_password
  • misc_cookies
  • notice_cookies
  • notices.less
  • register_form
  • report_search
  • thread_list_macros
  • thread_reply
  • thread_view
Where necessary, the merge system within the "outdated templates" page should be used to integrate these changes.

Current requirements​

Please note that XenForo 2.2 has higher system requirements than earlier versions.

The following are minimum requirements:
  • PHP 7.0 or newer (PHP 8.0 recommended)
  • MySQL 5.5 and newer (Also compatible with MariaDB/Percona etc.)
  • All of the official add-ons require XenForo 2.2.
  • Enhanced Search requires at least Elasticsearch 2.0.
Today, we are releasing XenForo 2.2.11 to address a potential security vulnerability. We recommend that all customers running XenForo 2.2 upgrade to 2.2.11 or use the attached patch file as soon as possible.

The issue relates to HTML attribute injection which can be triggered when rendering editor content, such as when a post is edited or quoted.

XenForo extends thanks to security researcher @PaulB, the team at @NamePros and @Xon for reporting the issues.

We recommend doing a full upgrade to resolve the issues, but a patch can be applied manually. See below for further details.

Note: There are no other changes in this release and any work previously done towards XenForo 2.2.11 - including a new CAPTCHA option by Cloudflare Turnstile and various bug fixes and improvements - will be released alongside XenForo 2.2.12 in the coming weeks.
  • Like
Reactions: ogzfurkan
  • Shortly after we released XenForo 2.2.10 we became aware of a number of minor issues that may have affected a number of customers.
  • Therefore, today, we have released XenForo 2.2.10 Patch 1 to rectify these issues.
2.2.10 will be one of the last releases of the 2.2.x series before we move 2.3.0 to beta
Some of the changes in XF 2.2.10 include:

The following public templates have had changes:
  • core_block.less
  • poll_create
  • poll_edit
  • poll_macros
  • tag_macros
  • widget_forum_statistics
Where necessary, the merge system within the "outdated templates" page should be used to integrate these changes.
XenForo 2.2.9 is now available for all licensed customers to download. We strongly recommend that all customers running previous versions of XenForo 2.2 upgrade to this release to benefit from increased stability.

In addition to the usual bug fixes and improvements, we've continued to improve compatibility with PHP 8.1 and added support for self-hosted licenses to more easily sign outgoing emails with DKIM as per this recent suggestion by @digitalpoint.

One-click upgrade to XenForo 2.2.9

Directly from your admin control panel

If you are a XenForo Cloud customer, your upgrade will be scheduled automatically.

Some of the changes in XF 2.2.9 include:

The following public templates have had changes:
  • PAGE_CONTAINER
  • alert_user_report_rejected
  • alert_user_report_resolved
  • attachment_macros
  • browser_warning_macros
  • core_block.less
  • core_datalist.less
  • core_menu.less
  • core_tab.less
  • editor_base.less
  • login_password_confirm
  • member.less
  • message.less
  • page_nav
  • poll_create
  • post_article_macros
  • progress_bar.less
  • progress_bar_macros
  • push_user_post_merge
  • push_user_report_rejected
  • push_user_report_resolved
  • thread_preview
  • widget_html
Where necessary, the merge system within the "outdated templates" page should be used to integrate these changes.

As always, new releases of XenForo are free to download for all customers with active licenses. You may now upgrade from your admin control panel or grab the new version from the customer area.

Current requirements​

Please note that XenForo 2.2 has higher system requirements than earlier versions.

The following are minimum requirements:
  • PHP 7.0 or newer (PHP 8.0 recommended)
  • MySQL 5.5 and newer (Also compatible with MariaDB/Percona etc.)
  • All of the official add-ons require XenForo 2.2.
  • Enhanced Search requires at least Elasticsearch 2.0.
Shortly after releasing 2.2.8, we became aware of an issue that may affect the expected operation of the image proxy system which may cause cached images to no longer refresh as expected.
Some of the changes in XF 2.2.8 include:
  • Do not wrap iconic inputs when directly adjacent to other inline items
  • Generate PhpStorm metadata for validator classes
  • Optionally normalize a URL passed into getRoutePathFromUrl to exclude the script part of the URL if it is passed in.
  • Fix further JavaScript regression in editor.js that affected older browsers.
  • Fix undefined variable $option when failing to refresh an OAuth email access token.
  • If the location field is required at registration, indicate so on the account details page
  • Correctly mark Applebot as a robot
  • Fix the type hint in AbstractDriver for the imageFromFile method
  • Ensure report comments are ordered consistently
  • Allow API thread filtering by prefix_id when the specific forum is unknown
  • Add support for podcast episodes to the Spotify BB code media site
  • Adjust the way answers are counted and represented within the JSON-LD schema for question threads
  • If the forum used for reports is deleted, revert back to using the report centre
  • Throw a prettier error if downloading an XF upgrade package fails
  • When sending a payment receipt for user upgrades, display the price paid and not the current price of the user upgrade
  • Fix an issue preventing numeric custom fields from being searched
  • Remove itemprop attribute from the fnUsernameLink templater function
  • Silence errors when a template doesn't exist
  • Patch a regression in Froala which caused images inside clipboard data to no longer be uploaded as expected.
  • Consistently nest date of birth privacy options in the admin control panel user edit page.
  • Fix password strength meter background color bleed.
  • coerce the lbThumbsAuto option value to a boolean to ensure it works as expected.
  • Fix vertical alignment of sort order indicator inside filter bar toggles.
  • Remove CSS rule that inadvertently increases the size of the text of some form row elements.
  • When requesting a new attachment key and hitting a permission error, make the error more clear.
  • Fix an issue with the wrong reaction sprite displaying when switching between reactions on different sprite sheets.
  • Support adding data attributes to <xf:eek:ptgroup> elements inside <xf:checkbox> and <xf:radio> elements.
  • Remove orphaned buttons from the button manager and correctly indicate button visibility
  • When using ImageMagick, correctly set its temp directory to tempDataPath
  • Include 'all' filter within page navigation when batch updating threads
  • Improve handling for batch updating a large number of records in one go
  • Add .opus as a supported audio file extension
  • Ensure advanced flag for options is both imported and exported correctly
  • Restore the default tab for a node when deleting its associated navigation tab
  • Disable page load scroll adjustment on browsers supporting native scroll anchoring
  • Filter removed buttons from editor dropdowns
  • Inhibit scroll button click event when clicking between buttons
  • Avoid truncating long widget descriptions
  • Make it easier to extend valid image proxy mime types
  • Fix layout shift when profile posts not visible on user profiles.
  • Workaround an issue that could allow certain registration moderation requirements to be bypassed.
  • Prevent posts from being moved or copied to threads that a moderator cannot view
  • Ensure node ID constraints are always in a numerical array when searching for posts
  • Re-work session activity updates to reduce locking pressure
  • When encountering an invalid cost amount error with PayPal, expand the error message with a hint to check for additional shipping and handling charges
  • Display the correct image for certain emojis containing a zero width joiner
  • Record image proxy file hashes, and do not overwrite files if their hashes have not changed
  • When replying to a thread that has been deleted during the reply, throw a clearer error message
  • When filtering for unsolved questions, encourage MySQL to use a better index
  • Prevent member tabs from overlapping the avatar when member stats aren't being displayed
  • Add global template data to the API templater
The following public templates have had changes:
  • PAGE_CONTAINER
  • account_details
  • alert_user_report_rejected
  • core_datalist.less
  • core_filter.less
  • core_formrow.less
  • core_input.less
  • core_menu.less
  • core_meter_bar.less
  • editor_base.less
  • helper_user_dob_edit
  • member.less
  • member_view
  • message_macros
  • poll_macros
  • thread_type_fields_article
XenForo 2.2.7 inadvertently shipped with an implicit minimum requirement of PHP 7.1 due to the way that newer versions of composer attempt to validate your platform is compatible with the included dependencies.

If you're currently running PHP 7.0 you may have been unable to upgrade to or run XenForo 2.2.7. Patch 1 removes this platform check.

Additionally, if you're currently running PHP 7.0 we would strongly urge you to consider upgrading to a newer version as soon as possible. XenForo 2.3 will be shipping with a minimum requirement of PHP 7.2.5. We currently recommend upgrading to PHP 8.0 where possible.
Back
Top