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.
| Package | Affected versions | Patched versions |
|---|---|---|
vantage6PyPI | < 3.8.0 | 3.8.0 |
Affected products
1Patches
1798aca1de142Merge pull request from GHSA-vvjv-97j8-94xh
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- github.com/advisories/GHSA-vvjv-97j8-94xhghsaADVISORY
- nvd.nist.gov/vuln/detail/CVE-2023-22738ghsaADVISORY
- github.com/pypa/advisory-database/tree/main/vulns/vantage6/PYSEC-2023-53.yamlghsaWEB
- github.com/vantage6/vantage6/commit/798aca1de142a4eca175ef51112e2235642f4f24ghsax_refsource_MISCWEB
- github.com/vantage6/vantage6/security/advisories/GHSA-vvjv-97j8-94xhghsax_refsource_CONFIRMWEB
News mentions
0No linked articles in our index yet.