• MetaBlog
  • Security update to Flarum Sticky 0.1.0-beta.15.1

Today we are releasing a security update for the bundled Flarum Sticky extension. It addresses a cross-site scripting (XSS) vulnerability present in versions beta 14 and beta 15 of the extension.

How to update

If you are using Flarum beta 15:

In your Flarum folder (containing composer.json and config.php), run:

composer update flarum/sticky --prefer-dist --no-dev -a

You can then confirm the update worked by checking Composer output (should say "updating to v0.1.0-beta.15.1"), or by checking the version number in the admin panel on the extension page.

If you are using Flarum beta 14, disable the Sticky extension until you can update to Flarum beta 15.

If you are using Flarum beta 13, you are not impacted by this particular issue. You should still update to Flarum beta 15 as soon as possible because the version is no longer under support and will not receive any security fix.

Impact

A change in release beta 14 of the Sticky extension caused the plain text content of the first post of a pinned discussion to be injected as HTML on the discussion list. The issue was discovered following an internal audit.

Any HTML would be injected through Mithril's m.trust() helper. This resulted in an HTML injection where <script> tags would not be executed. However it was possible to run javascript from other HTML attributes, enabling a cross-site scripting (XSS) attack to be performed.

Since the exploit only happens with the first post of a pinned discussion, an attacker would need the ability to pin their own discussion, or be able to edit a discussion that was previously pinned.

On forums where all pinned posts are authored by your staff, you can be relatively certain the vulnerability has not been exploited.

Forums where some user-created discussions were pinned can look at the first post edit date to find whether the vulnerability might have been exploited. Because Flarum doesn't store the post content history, you cannot be certain if a malicious edit was reverted.

Patches

The fix will be available in version v0.1.0-beta.16 with Flarum beta 16. The fix has already been back-ported to Flarum beta 15 as version v0.1.0-beta.15.1 of the Sticky extension.

Workarounds

Forum administrators can disable the Sticky extension until they are able to apply the update. The vulnerability cannot be exploited while the extension is disabled.

Links

    peopleinside thanks for the comments!

    We are researching the best options. Currently we have no way of "pushing" updates or notifications to a forum so that's not a viable option, but this will definitely come in the future once we work on the marketplace.

    Right now the following options are available to follow updates:

    • Subscribe to the blog tag here on Discuss by visiting https://discuss.flarum.org/t/blog and enable the email notification for tag following (should be on by default)
    • Join the Discord server and follow #announcements, you can even have it publish the updates on one of your own Discord servers
    • Subscribe to the release notifications on GitHub. Unfortunately you will need to follow core and every core extension to be notified of their security updates

    We will probably set up some kind of newsletter in the future.

    Another useful feature is that if you manage your forum as a GitHub repository, GitHub will notify you when one of your packages has a security update, including Flarum and its extensions.

      clarkwinkelmann not to get to off topic but I would be good with a twitter account and I can subscribe to be instantly pinged when your twitter posts. Maybe create an account for updates.

        MikeJones I think the first one option is good for all members that are also active here.
        I was not subscrived to the blog but now I'm active if this will not generate too much emails 😃 Will try.

        I have updated - thanks for the heads up!

        Just wondering if this warning message I got means anything vital?

        Thank you!

          16 days later
          luceos unstickied the discussion .