{"api_version":"1","generated_at":"2026-11-13T20:09:58+00:00","cve":"CVE-2026-128970","urls":{"html":"https://cve.report/CVE-2026-128970","api":"https://cve.report/api/cve/CVE-2026-128970.json","docs":"https://cve.report/api","cve_org":"https://www.cve.org/CVERecord?id=CVE-2026-128970","nvd":"https://nvd.nist.gov/vuln/detail/CVE-2026-128970"},"summary":{"title":"Missing membership acceptance check permits group share-right deletion by invitees in Psono Server","description":"Psono Server Community Edition versions 1.12.6 through 7.5.0 and Psono Server Enterprise Edition before 7.5.1 do not require accepted group membership when authorizing deletion of group share-rights. The DELETE /share/right/ endpoint checks for a membership matching the target group, the authenticated user, and share_admin=True, but omits accepted=True. An authenticated remote attacker who has been invited to a group with share-admin privileges, and who knows a group share-right UUID, can therefore delete that group's share-right record without accepting the invitation or after declining it. Pending invitations have accepted=None, while declined invitations retain accepted=False and the share_admin flag. Deletion revokes the group's access to the affected share and its contained secrets for all accepted group members, without deleting the underlying data or disclosing secret contents. The issue was fixed in version 7.5.1 of both editions, released on 2026-10-13.","state":"PUBLISHED","assigner":"esaqa","published_at":"2026-11-13 15:17:45","updated_at":"2026-11-13 15:17:45"},"problem_types":["CWE-863","CWE-863 CWE-863 Incorrect Authorization"],"metrics":[{"version":"3.1","source":"fdf66990-8419-4c8c-8848-ec15d75773b4","type":"Secondary","score":"5.4","severity":"MEDIUM","vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:L","data":{"version":"3.1","vectorString":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:L","baseScore":5.4,"baseSeverity":"MEDIUM","attackVector":"NETWORK","attackComplexity":"LOW","privilegesRequired":"LOW","userInteraction":"NONE","scope":"UNCHANGED","confidentialityImpact":"NONE","integrityImpact":"LOW","availabilityImpact":"LOW"}},{"version":"3.1","source":"CNA","type":"CVSS","score":"5.4","severity":"MEDIUM","vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:L","data":{"attackComplexity":"LOW","attackVector":"NETWORK","availabilityImpact":"LOW","baseScore":5.4,"baseSeverity":"MEDIUM","confidentialityImpact":"NONE","integrityImpact":"LOW","privilegesRequired":"LOW","scope":"UNCHANGED","userInteraction":"NONE","vectorString":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:L","version":"3.1"}}],"references":[{"url":"https://gitlab.com/esaqa/psono/psono-server/-/commit/86e7ce7fdbb04fc4ae3430cc434179630948d48d","name":"https://gitlab.com/esaqa/psono/psono-server/-/commit/86e7ce7fdbb04fc4ae3430cc434179630948d48d","refsource":"fdf66990-8419-4c8c-8848-ec15d75773b4","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://gitlab.com/esaqa/psono/psono-server/-/blob/v7.5.0/psono/restapi/views/membership_decline.py","name":"https://gitlab.com/esaqa/psono/psono-server/-/blob/v7.5.0/psono/restapi/views/membership_decline.py","refsource":"fdf66990-8419-4c8c-8848-ec15d75773b4","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://gitlab.com/esaqa/psono/psono-server/-/releases/v7.5.1","name":"https://gitlab.com/esaqa/psono/psono-server/-/releases/v7.5.1","refsource":"fdf66990-8419-4c8c-8848-ec15d75773b4","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://gitlab.com/esaqa/psono/psono-server/-/commit/11f9aa69dae370cd4f0213f4d03d1b1cc4df36dd","name":"https://gitlab.com/esaqa/psono/psono-server/-/commit/11f9aa69dae370cd4f0213f4d03d1b1cc4df36dd","refsource":"fdf66990-8419-4c8c-8848-ec15d75773b4","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://gitlab.com/esaqa/psono/psono-server/-/blob/v7.5.0/psono/restapi/serializers/create_share_right.py","name":"https://gitlab.com/esaqa/psono/psono-server/-/blob/v7.5.0/psono/restapi/serializers/create_share_right.py","refsource":"fdf66990-8419-4c8c-8848-ec15d75773b4","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://gitlab.com/esaqa/psono/psono-server/-/blob/v7.5.0/psono/restapi/serializers/delete_share_right.py","name":"https://gitlab.com/esaqa/psono/psono-server/-/blob/v7.5.0/psono/restapi/serializers/delete_share_right.py","refsource":"fdf66990-8419-4c8c-8848-ec15d75773b4","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://gitlab.com/esaqa/esaqa/security-advisories/-/blob/master/advisories/CVE-2026-128970.md","name":"https://gitlab.com/esaqa/esaqa/security-advisories/-/blob/master/advisories/CVE-2026-128970.md","refsource":"fdf66990-8419-4c8c-8848-ec15d75773b4","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://gitlab.com/esaqa/psono/psono-server","name":"https://gitlab.com/esaqa/psono/psono-server","refsource":"fdf66990-8419-4c8c-8848-ec15d75773b4","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-128970","name":"CVE Program record","refsource":"CVE.ORG","tags":["canonical"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-128970","name":"NVD vulnerability detail","refsource":"NVD","tags":["canonical","analysis"]}],"affected":[{"source":"CNA","vendor":"esaqa GmbH","product":"Psono","version":"affected 1.12.6 7.5.1 semver","platforms":[]},{"source":"CNA","vendor":"esaqa GmbH","product":"Psono","version":"affected 7.5.1 semver","platforms":[]}],"timeline":[{"source":"CNA","time":"2026-10-12T19:45:00.000Z","lang":"en","value":"Vulnerability reported to esaqa GmbH by Nicholas Mullenski / K70n0s510 (2026-10-12 21:45 CEST, UTC+02:00)"},{"source":"CNA","time":"2026-10-13T05:18:00.000Z","lang":"en","value":"Vendor fix implemented in commit 86e7ce7fdbb04fc4ae3430cc434179630948d48d, included in version 7.5.1 of both editions."}],"solutions":[{"source":"CNA","title":"","value":"Upgrade Psono Server Community Edition and Psono Server Enterprise Edition to version 7.5.1 or later. Version 7.5.1 was released for both editions on 2026-10-13. The patch adds accepted=True to the User_Group_Membership authorization query in DeleteShareRightSerializer.validate, making group share-right deletion require both accepted membership and share_admin=True, matching the group authorization check in the create path.","time":"","lang":"en"}],"workarounds":[{"source":"CNA","title":"","value":"Until the patch is deployed, use authorized group administration to remove pending and declined group memberships carrying share-admin privileges, or clear their share_admin flag. Avoid granting share-admin privileges to unaccepted invitees on affected versions.","time":"","lang":"en"}],"exploits":[],"credits":[{"source":"CNA","value":"Nicholas Mullenski / K70n0s510","lang":"en"}],"nvd_cpes":[],"vendor_comments":[],"enrichments":{"kev":null,"epss":null,"legacy_qids":[]},"source_records":{"cve_program":{"containers":{"cna":{"affected":[{"defaultStatus":"unaffected","modules":["Psono Server Community Edition"],"product":"Psono","programFiles":["psono/restapi/serializers/delete_share_right.py"],"repo":"https://gitlab.com/esaqa/psono/psono-server","vendor":"esaqa GmbH","versions":[{"lessThan":"7.5.1","status":"affected","version":"1.12.6","versionType":"semver"}]},{"defaultStatus":"unaffected","modules":["Psono Server Enterprise Edition"],"product":"Psono","vendor":"esaqa GmbH","versions":[{"lessThan":"7.5.1","status":"affected","version":"0","versionType":"semver"}]}],"credits":[{"lang":"en","type":"finder","value":"Nicholas Mullenski / K70n0s510"}],"datePublic":"2026-11-13T14:22:00.000Z","descriptions":[{"lang":"en","supportingMedia":[{"base64":false,"type":"text/html","value":"<p>Psono Server Community Edition versions 1.12.6 through 7.5.0 and Psono Server Enterprise Edition before 7.5.1 do not require accepted group membership when authorizing deletion of group share-rights. The DELETE /share/right/ endpoint checks for a membership matching the target group, the authenticated user, and share_admin=True, but omits accepted=True. An authenticated remote attacker who has been invited to a group with share-admin privileges, and who knows a group share-right UUID, can therefore delete that group's share-right record without accepting the invitation or after declining it. Pending invitations have accepted=None, while declined invitations retain accepted=False and the share_admin flag. Deletion revokes the group's access to the affected share and its contained secrets for all accepted group members, without deleting the underlying data or disclosing secret contents. The issue was fixed in version 7.5.1 of both editions, released on 2026-10-13.</p>"}],"value":"Psono Server Community Edition versions 1.12.6 through 7.5.0 and Psono Server Enterprise Edition before 7.5.1 do not require accepted group membership when authorizing deletion of group share-rights. The DELETE /share/right/ endpoint checks for a membership matching the target group, the authenticated user, and share_admin=True, but omits accepted=True. An authenticated remote attacker who has been invited to a group with share-admin privileges, and who knows a group share-right UUID, can therefore delete that group's share-right record without accepting the invitation or after declining it. Pending invitations have accepted=None, while declined invitations retain accepted=False and the share_admin flag. Deletion revokes the group's access to the affected share and its contained secrets for all accepted group members, without deleting the underlying data or disclosing secret contents. The issue was fixed in version 7.5.1 of both editions, released on 2026-10-13."}],"impacts":[{"descriptions":[{"lang":"en","value":"An authenticated user with a pending or declined group invitation carrying share_admin=True can delete the group's share-right records, revoking that group's access to the affected shares and their contained secrets for all accepted group members. The underlying shares and secrets are not deleted, and secret contents are not disclosed."}]}],"metrics":[{"cvssV3_1":{"attackComplexity":"LOW","attackVector":"NETWORK","availabilityImpact":"LOW","baseScore":5.4,"baseSeverity":"MEDIUM","confidentialityImpact":"NONE","integrityImpact":"LOW","privilegesRequired":"LOW","scope":"UNCHANGED","userInteraction":"NONE","vectorString":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:L","version":"3.1"},"format":"CVSS","scenarios":[{"lang":"en","value":"Authenticated user with a pending or declined group invitation carrying share_admin=True and knowledge of a target group share-right UUID. Unauthorized deletion modifies access-control records and removes the group's access to affected shared data."}]}],"problemTypes":[{"descriptions":[{"cweId":"CWE-863","description":"CWE-863 Incorrect Authorization","lang":"en","type":"CWE"}]}],"providerMetadata":{"dateUpdated":"2026-11-13T14:25:45.811Z","orgId":"fdf66990-8419-4c8c-8848-ec15d75773b4","shortName":"esaqa"},"references":[{"name":"Vendor fix","tags":["patch"],"url":"https://gitlab.com/esaqa/psono/psono-server/-/commit/86e7ce7fdbb04fc4ae3430cc434179630948d48d"},{"name":"Psono 7.5.1 release","tags":["release-notes"],"url":"https://gitlab.com/esaqa/psono/psono-server/-/releases/v7.5.1"},{"name":"Vendor security advisory for CVE-2026-128970","tags":["vendor-advisory"],"url":"https://gitlab.com/esaqa/esaqa/security-advisories/-/blob/master/advisories/CVE-2026-128970.md"},{"name":"Affected Community Edition deletion authorization in Psono 7.5.0","tags":["technical-description"],"url":"https://gitlab.com/esaqa/psono/psono-server/-/blob/v7.5.0/psono/restapi/serializers/delete_share_right.py"},{"name":"Community Edition create-path acceptance check in Psono 7.5.0","tags":["technical-description"],"url":"https://gitlab.com/esaqa/psono/psono-server/-/blob/v7.5.0/psono/restapi/serializers/create_share_right.py"},{"name":"Community Edition membership decline behavior in Psono 7.5.0","tags":["technical-description"],"url":"https://gitlab.com/esaqa/psono/psono-server/-/blob/v7.5.0/psono/restapi/views/membership_decline.py"},{"name":"Introduction of the Community Edition invite-only deletion authorization path","tags":["technical-description"],"url":"https://gitlab.com/esaqa/psono/psono-server/-/commit/11f9aa69dae370cd4f0213f4d03d1b1cc4df36dd"},{"name":"Psono Server Community Edition source repository","tags":["product"],"url":"https://gitlab.com/esaqa/psono/psono-server"}],"solutions":[{"lang":"en","supportingMedia":[{"base64":false,"type":"text/html","value":"<p>Upgrade Psono Server Community Edition and Psono Server Enterprise Edition to version 7.5.1 or later. Version 7.5.1 was released for both editions on 2026-10-13. The patch adds accepted=True to the User_Group_Membership authorization query in DeleteShareRightSerializer.validate, making group share-right deletion require both accepted membership and share_admin=True, matching the group authorization check in the create path.</p>"}],"value":"Upgrade Psono Server Community Edition and Psono Server Enterprise Edition to version 7.5.1 or later. Version 7.5.1 was released for both editions on 2026-10-13. The patch adds accepted=True to the User_Group_Membership authorization query in DeleteShareRightSerializer.validate, making group share-right deletion require both accepted membership and share_admin=True, matching the group authorization check in the create path."}],"source":{"discovery":"EXTERNAL"},"timeline":[{"lang":"en","time":"2026-10-12T19:45:00.000Z","value":"Vulnerability reported to esaqa GmbH by Nicholas Mullenski / K70n0s510 (2026-10-12 21:45 CEST, UTC+02:00)"},{"lang":"en","time":"2026-10-13T05:18:00.000Z","value":"Vendor fix implemented in commit 86e7ce7fdbb04fc4ae3430cc434179630948d48d, included in version 7.5.1 of both editions."}],"title":"Missing membership acceptance check permits group share-right deletion by invitees in Psono Server","workarounds":[{"lang":"en","supportingMedia":[{"base64":false,"type":"text/html","value":"<p>Until the patch is deployed, use authorized group administration to remove pending and declined group memberships carrying share-admin privileges, or clear their share_admin flag. Avoid granting share-admin privileges to unaccepted invitees on affected versions.</p>"}],"value":"Until the patch is deployed, use authorized group administration to remove pending and declined group memberships carrying share-admin privileges, or clear their share_admin flag. Avoid granting share-admin privileges to unaccepted invitees on affected versions."}],"x_generator":{"engine":"Vulnogram 1.0.5"},"x_internal":{"note":"The organization/user UUIDs are placeholders. The PUBLISHED state selects the full-record schema and does not indicate actual publication. Replace placeholders and remove this internal note before submission. Version 7.5.1 was released for both Community Edition and Enterprise Edition on 2026-10-13 and includes fix commit 86e7ce7fdbb04fc4ae3430cc434179630948d48d, verified in both local repositories. The first Community Edition release containing the invite-only deletion authorization path is 1.12.6; release 1.12.5 still required independent grant rights on the share. Enterprise Edition is closed source; no Enterprise Edition source repository links are included. Its version lower bound of 0 denotes releases before the fixed boundary rather than an independently established introduction version."}}},"cveMetadata":{"assignerOrgId":"fdf66990-8419-4c8c-8848-ec15d75773b4","assignerShortName":"esaqa","cveId":"CVE-2026-128970","datePublished":"2026-11-13T14:25:45.811Z","dateReserved":"2026-11-13T13:45:01.621Z","dateUpdated":"2026-11-13T14:25:45.811Z","state":"PUBLISHED"},"dataType":"CVE_RECORD","dataVersion":"5.2"},"nvd":{"publishedDate":"2026-11-13 15:17:45","lastModifiedDate":"2026-11-13 15:17:45","problem_types":["CWE-863","CWE-863 CWE-863 Incorrect Authorization"],"metrics":{"cvssMetricV31":[{"source":"fdf66990-8419-4c8c-8848-ec15d75773b4","type":"Secondary","cvssData":{"version":"3.1","vectorString":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:L","baseScore":5.4,"baseSeverity":"MEDIUM","attackVector":"NETWORK","attackComplexity":"LOW","privilegesRequired":"LOW","userInteraction":"NONE","scope":"UNCHANGED","confidentialityImpact":"NONE","integrityImpact":"LOW","availabilityImpact":"LOW"},"exploitabilityScore":2.8,"impactScore":2.5}]},"configurations":[]},"legacy_mitre":{"record":{"CveYear":"2026","CveId":"128970","Ordinal":"1","Title":"Missing membership acceptance check permits group share-right de","CVE":"CVE-2026-128970","Year":"2026"},"notes":[{"CveYear":"2026","CveId":"128970","Ordinal":"1","NoteData":"Psono Server Community Edition versions 1.12.6 through 7.5.0 and Psono Server Enterprise Edition before 7.5.1 do not require accepted group membership when authorizing deletion of group share-rights. The DELETE /share/right/ endpoint checks for a membership matching the target group, the authenticated user, and share_admin=True, but omits accepted=True. An authenticated remote attacker who has been invited to a group with share-admin privileges, and who knows a group share-right UUID, can therefore delete that group's share-right record without accepting the invitation or after declining it. Pending invitations have accepted=None, while declined invitations retain accepted=False and the share_admin flag. Deletion revokes the group's access to the affected share and its contained secrets for all accepted group members, without deleting the underlying data or disclosing secret contents. The issue was fixed in version 7.5.1 of both editions, released on 2026-10-13.","Type":"Description","Title":"Missing membership acceptance check permits group share-right de"}]}}}