VYPR
High severityNVD Advisory· Published Mar 1, 2023· Updated Mar 6, 2025

Improper Preservation of Permissions in vantage6

CVE-2023-22738

Description

vantage6 is a privacy preserving federated learning infrastructure for secure insight exchange. Assigning existing users to a different organizations is currently possible. It may lead to unintended access: if a user from organization A is accidentally assigned to organization B, they will retain their permissions and therefore might be able to access stuff they should not be allowed to access. This issue is patched in version 3.8.0.

Affected packages

Versions sourced from the GitHub Security Advisory.

PackageAffected versionsPatched versions
vantage6PyPI
< 3.8.03.8.0

Affected products

1

Patches

1
798aca1de142

Merge pull request from GHSA-vvjv-97j8-94xh

https://github.com/vantage6/vantage6Frank MartinFeb 28, 2023via ghsa
1 file changed · +0 22
  • vantage6-server/vantage6/server/resource/user.py+0 22 modified
    @@ -497,9 +497,6 @@ def patch(self, id):
                         items:
                           type: integer
                         description: Extra rules for the user on top of the roles
    -                  organization_id:
    -                    type: integer
    -                    description: Organization id of the user
     
             parameters:
               - in: path
    @@ -543,7 +540,6 @@ def patch(self, id):
             parser.add_argument("firstname", type=str, required=False)
             parser.add_argument("lastname", type=str, required=False)
             parser.add_argument("email", type=str, required=False)
    -        parser.add_argument("organization_id", type=int, required=False)
             data = parser.parse_args()
     
             # check if user defined a password, which is deprecated
    @@ -665,24 +661,6 @@ def patch(self, id):
     
                 user.rules = rules
     
    -        if data["organization_id"] and \
    -                data["organization_id"] != g.user.organization_id:
    -            if not self.r.e_glo.can():
    -                return {'msg': 'You lack the permission to do that!'}, \
    -                    HTTPStatus.UNAUTHORIZED
    -            else:
    -                # check that newly assigned organization exists
    -                org = db.Organization.get(data['organization_id'])
    -                if not org:
    -                    return {'msg': 'Organization does not exist.'}, \
    -                        HTTPStatus.NOT_FOUND
    -                else:
    -                    log.warn(
    -                        f'Running as root and assigning (new) '
    -                        f'organization_id={data["organization_id"]}'
    -                    )
    -                    user.organization_id = data["organization_id"]
    -
             try:
                 user.save()
             except sqlalchemy.exc.IntegrityError as e:
    

Vulnerability mechanics

Generated by null/stub on May 9, 2026. Inputs: CWE entries + fix-commit diffs from this CVE's patches. Citations validated against bundle.

References

5

News mentions

0

No linked articles in our index yet.