Medium Severity

lunary

Unauthorized Role Assignment and Project Joining in Free Plan

A vulnerability in lunary-ai/lunary allowed Free plan users to invite others with any role, including those exclusive to Paid and Enterprise plans, to join their project. This issue, present in version 1.2.2, was patched in version 1.2.25. It bypassed backend validation for roles and permissions, enabling unauthorized access control.

Available publicly on Jun 07 2024

5.4

CVSS:

CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:N

Credit:

acciobugs
Threat Overview

The core of this vulnerability lies in the lack of backend validation for user roles and permissions during the invitation process. Specifically, the system failed to verify if the inviting user was on a Paid or Enterprise plan before allowing them to assign roles exclusive to these plans. Additionally, the signup process did not validate if the organization belonged to a user who had paid for a plan, allowing users to join projects under Free plan accounts with roles they should not have access to.

Attack Scenario

An attacker, using a Free plan account, could exploit this vulnerability by directly sending a crafted POST request to the server, bypassing the UI restrictions that prevent Free plan users from sending invitations. The request would include an unauthorized role assignment for the invitee. Once the invitee accepts the invitation through a link sent via email, they could join the project with elevated privileges not intended for Free plan users.

Who is affected

This vulnerability affects all users of the lunary-ai/lunary platform, particularly those on Free plans. It undermines the integrity of the platform's access control and role assignment mechanisms, potentially allowing unauthorized users to gain access to functionalities and data reserved for Paid or Enterprise plans.

Technical Report
Want more out of Sightline?

Sightline offers even more for premium customers

Go Premium

We have 290 related security advisories that are available with Sightline Premium.