{"id":"CVE-2026-16772","aliases":["EUVD-2026-58680","GHSA-98f2-hwvc-w247"],"status":"published","title":"CVE-2026-16772","description":"In Akaunting versions \u003c= 3.1.21, low‑privileged authenticated users can modify their own account to assign themselves the admin role ID, granting full administrator privileges. This vulnerability is caused by a flaw in the `UpdateUser` job, which processes user-supplied role assignments via an unconditional `roles()-\u003esync()` call without verifying whether the caller is authorized to manage roles. Users only require the default `update-auth-profile` permission to access the self-update path and assign themselves as admins. The API endpoints are properly permission‑gated and are not affected by this issue. This vulnerability has been remediated in v3.2.0, commit 80ef6d3b154a.","severity":{"version":"3.1","score":8.1,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N","level":"high","assessor":"adp","from":"cve"},"epss":{"day":"2026-11-10","score":0.0035,"percentile":0.28888,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":false},"cwes":["CWE-269","CWE-862"],"published":"2026-08-14T15:18:13Z","modified":"2026-09-14T22:16:57Z","products":[{"vendor":"akaunting","product":"akaunting"}],"references":[{"url":"https://vokecyber.com/research/cve-2026-16772-akaunting-privilege-escalation","tags":["exploit"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-16772"},{"url":"https://github.com/advisories/GHSA-98f2-hwvc-w247"}],"sources":{"cve":[{"id":"CVE-2026-16772","title":"CVE-2026-16772","description":"In Akaunting versions \u003c= 3.1.21, low‑privileged authenticated users can modify their own account to assign themselves the admin role ID, granting full administrator privileges. This vulnerability is caused by a flaw in the `UpdateUser` job, which processes user-supplied role assignments via an unconditional `roles()-\u003esync()` call without verifying whether the caller is authorized to manage roles. Users only require the default `update-auth-profile` permission to access the self-update path and assign themselves as admins. The API endpoints are properly permission‑gated and are not affected by this issue. This vulnerability has been remediated in v3.2.0, commit 80ef6d3b154a.","status":"published","published":"2026-08-14T15:18:13.993Z","modified":"2026-09-14T21:22:11.702Z","cvss":[{"version":"3.1","score":8.1,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N","level":"high","assessor":"adp"}],"cwes":["CWE-862","CWE-269"],"updated_at":"2026-11-02T14:20:10.870108Z"}],"euvd":[{"id":"EUVD-2026-58680","description":"In Akaunting versions \u003c= 3.1.21, low‑privileged authenticated users can modify their own account to assign themselves the admin role ID, granting full administrator privileges. This vulnerability is caused by a flaw in the `UpdateUser` job, which processes user-supplied role assignments via an unconditional `roles()-\u003esync()` call without verifying whether the caller is authorized to manage roles. Users only require the default `update-auth-profile` permission to access the self-update path and assign themselves as admins. The API endpoints are properly permission‑gated and are not affected by this issue. This vulnerability has been remediated in v3.2.0, commit 80ef6d3b154a.","status":"published","published":"2026-08-14T15:18:13Z","modified":"2026-09-14T21:22:11Z","cvss":[{"version":"3.1","score":8.1,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N","level":"high"}],"updated_at":"2026-11-02T17:28:19.01786Z"}],"ghsa":[{"id":"GHSA-98f2-hwvc-w247","title":"In Akaunting versions \u003c= 3.1.21, low‑privileged authenticated users can modify their own account...","description":"In Akaunting versions \u003c= 3.1.21, low‑privileged authenticated users can modify their own account to assign themselves the admin role ID, granting full administrator privileges. This vulnerability is caused by a flaw in the `UpdateUser` job, which processes user-supplied role assignments via an unconditional `roles()-\u003esync()` call without verifying whether the caller is authorized to manage roles. Users only require the default `update-auth-profile` permission to access the self-update path and assign themselves as admins. The API endpoints are properly permission‑gated and are not affected by this issue.","status":"published","published":"2026-08-14T18:31:37Z","modified":"2026-08-14T21:32:34Z","cvss":[{"version":"3.1","score":8.1,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N","level":"high"}],"cwes":["CWE-269"],"updated_at":"2026-11-02T15:10:29.845726Z"}],"nvd":[{"id":"CVE-2026-16772","description":"In Akaunting versions \u003c= 3.1.21, low‑privileged authenticated users can modify their own account to assign themselves the admin role ID, granting full administrator privileges. This vulnerability is caused by a flaw in the `UpdateUser` job, which processes user-supplied role assignments via an unconditional `roles()-\u003esync()` call without verifying whether the caller is authorized to manage roles. Users only require the default `update-auth-profile` permission to access the self-update path and assign themselves as admins. The API endpoints are properly permission‑gated and are not affected by this issue. This vulnerability has been remediated in v3.2.0, commit 80ef6d3b154a.","status":"published","published":"2026-08-14T16:16:50.29Z","modified":"2026-09-14T22:16:57.26Z","cvss":[{"version":"3.1","score":8.1,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N","level":"high","assessor":"secondary"}],"cwes":["CWE-269","CWE-862"],"updated_at":"2026-11-02T14:12:37.557758Z"}]}}
