September 11, 2024
December 15, 2023
Blog

Security Advisory: Personal Access Tokens

Here at Speckle, we review our products to ensure continuous improvements. As part of a recent review we identified a moderate security vulnerability in Speckle server which may affect some users. We have patched Speckle server, and this new version (2.17.6) is available from our GitHub releases [https://github.com/specklesystems/speckle-server/releases]. This version is already available on speckle.xyz [http://speckle.xyz], app.speckle.systems [http://app.speckle.systems] , and all other Server

Dimitrie Stefanescu
CEO at Speckle
Contents

Here at Speckle, we review our products to ensure continuous improvements. As part of a recent review we identified a moderate security vulnerability in Speckle server which may affect some users. We have patched Speckle server, and this new version (2.17.6) is available from our GitHub releases. This version is already available on speckle.xyz, app.speckle.systems , and all other Server’s hosted by Speckle Systems.

This vulnerability could not be used to escalate a user's privileges or grant privileges on behalf of other users. Only a limited subset of users may have been vulnerable. We do not believe the vulnerability has been exploited ‘in the wild’.

Impact

This moderate security vulnerability only affects users who:

  • authorised an application which requested a 'token write' scope on their behalf.
  • or, using frontend-2, created a Personal Access Token (PAT) with 'token write' scope.

Description

A Personal Access Token allows applications and scripts to securely authenticate with Speckle Server and act on behalf of a user. You can read more about Personal Access Tokens in Speckle’s documentation.

When creating a new Personal Access Token, an agent needs to authorise the request with an existing token (the 'requesting token'). The requesting token is required to have ‘token write’ scope in order to generate new tokens.

Creating a token with ‘token write’ scopes was only possible in the new web interface (”Frontend 2”), a behaviour that has since been removed as of version 2.17.6, or via an application which a user authorised on their behalf.

However, Speckle server was not verifying that other privileges granted to the new token were the same, or less, of those granted to the requesting token. If a malicious actor was to get hold of a token with ‘token write’ scope, they could use that token to subsequently generate more tokens with other privileges that the user held.

This vulnerability could not be used to escalate a user's privileges or grant privileges on behalf of other users.

Immediate Actions

All operators of Speckle servers should upgrade their server to version >=2.17.6.

Any users who authorised an application with 'token write' scope, or created a token in frontend-2 with 'token write' scope should:

  • Review existing tokens and revoke any they do not recognise.
  • Revoke existing tokens and create new tokens.
  • Review usage of their account for suspicious activity.

We provided advanced notice to this Insiders group to enable server operators time to patch their servers. If you are operating a server and not already part of the Speckle Insiders group, please join here: https://speckle.community/g/Insiders

We encourage the responsible disclosure of security vulnerabilities. If you encounter what may be a security vulnerability in a Speckle product, please email us immediately at security@speckle.systems.

What's Next

Join us at SpeckleCon, where you and your team can present projects you are proud of. Showcase how you leveraged Speckle's connected and collaborative aspect, and let’s shape the future of AEC together!

More about SpeckleCon!

Subscribe to Speckle News

Stay updated on the amazing tools coming from the talented Speckle community.

Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.
Author
Dimitrie Stefanescu
CEO at Speckle

Visit LinkedIn