Skip to content

API Token Privilege Escalation

Moderate
iainsproat published GHSA-xpf3-5q5x-3qwh Dec 14, 2023

Package

speckle/speckle-server (DockerHub)

Affected versions

<2.17.6

Patched versions

2.17.6

Description

Impact

This vulnerability only affects users who:

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

When creating a new 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.

However, Speckle server was not verifying that other privileges granted to the new token were not in excess of the privileges of the requesting token. A malicious actor could use a token with only token write scope to subsequently generate further tokens with additional privileges.

These privileges would only grant privileges up to the existing privileges of the user. This vulnerability cannot be used to escalate a user's privileges or grant privileges on behalf of other users.

Immediate Action

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 permanently revoke any they do not recognise.
  • revoke existing tokens and create new tokens.
  • review usage of their account for suspicious activity.

Patches

This has been patched as of version 2.17.6.

Workarounds

No workaround exists; operators of Speckle servers are recommended to upgrade.

References

Speckle provided early information about this security vulnerability via our Insider's Channel. If you are maintaining and operating a Speckle Server, we highly recommend you join the Insider's Channel.

Severity

Moderate

CVSS overall score

This score calculates overall vulnerability severity from 0 to 10 and is based on the Common Vulnerability Scoring System (CVSS).
/ 10

CVSS v3 base metrics

Attack vector
Network
Attack complexity
High
Privileges required
Low
User interaction
Required
Scope
Changed
Confidentiality
Low
Integrity
High
Availability
None

CVSS v3 base metrics

Attack vector: More severe the more the remote (logically and physically) an attacker can be in order to exploit the vulnerability.
Attack complexity: More severe for the least complex attacks.
Privileges required: More severe if no privileges are required.
User interaction: More severe when no user interaction is required.
Scope: More severe when a scope change occurs, e.g. one vulnerable component impacts resources in components beyond its security scope.
Confidentiality: More severe when loss of data confidentiality is highest, measuring the level of data access available to an unauthorized user.
Integrity: More severe when loss of data integrity is the highest, measuring the consequence of data modification possible by an unauthorized user.
Availability: More severe when the loss of impacted component availability is highest.
CVSS:3.1/AV:N/AC:H/PR:L/UI:R/S:C/C:L/I:H/A:N

CVE ID

CVE-2023-50713

Weaknesses

Credits