Description
In Akaunting versions <= 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()->sync()` 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.
Published: 2026-08-14
Score: 8.1 High
EPSS: < 1% Very Low
KEV: No
Impact: Privilege Escalation to full administrator privileges
Action: Immediate Patch
AI Analysis

Impact

Akaunting versions up to 3.1.21 let any low‑privileged authenticated user modify their own account to assign themselves the admin role ID when using the UpdateUser job. The job calls roles()->sync() unconditionally without verifying the caller’s authorization, allowing privilege escalation. The flaw, identified as CWE-269 and CWE-862, results in an access‑control weakness, involving both an improper authorization check and a data‑level privilege elevation. With the newly granted administrator rights, the attacker can perform all actions available to an administrator, including modifying data, configuration, and other users’ permissions. Note that the API endpoints are properly permission‑gated and are not affected by this issue. The vulnerability is remedied in v3.2.0, commit 80ef6d3b154a.

Affected Systems

The vulnerability affects Akaunting, version 3.1.21 and earlier. Users of these releases that have the update‑auth‑profile permission are at risk.

Risk and Exploitability

The flaw is not listed in CISA’s KEV catalog and the EPSS score, which indicates a very low but nonzero exploitation probability, is < 1%. The CVSS score of 8.1 categorizes this as high severity. However, because it requires only low‑privileged authentication, the attack surface is significant for any compromised internal account. Exploitation is straightforward: a user simply edits their own profile to set the administrator role ID. Attacker reach is limited to users who can log into the system, so the risk is high within the affected tenant but does not enable remote code execution on the hosting environment. The vulnerability has been remediated in v3.2.0.

Generated by OpenCVE AI on September 21, 2026 at 07:41 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade to the latest official Akaunting release that rectifies the role assignment check (e.g., v3.2.0 or later).
  • Restrict the update‑auth‑profile permission to trusted administrators by removing it from normal user groups.
  • Review and harden role‑management code to validate the caller’s authority before executing sync, and enable audit logging for role changes.

Generated by OpenCVE AI on September 21, 2026 at 07:41 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Mon, 14 Sep 2026 21:30:00 +0000

Type Values Removed Values Added
Description In Akaunting versions <= 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()->sync()` 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. In Akaunting versions <= 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()->sync()` 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.

Fri, 14 Aug 2026 22:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-284

Fri, 14 Aug 2026 20:30:00 +0000

Type Values Removed Values Added
Weaknesses CWE-269
CWE-862
Metrics cvssV3_1

{'score': 8.1, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N'}

ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'poc', 'Technical Impact': 'total'}, 'version': '2.0.3'}


Fri, 14 Aug 2026 16:45:00 +0000

Type Values Removed Values Added
First Time appeared Akaunting
Akaunting akaunting
Weaknesses CWE-284
Vendors & Products Akaunting
Akaunting akaunting

Fri, 14 Aug 2026 15:45:00 +0000

Type Values Removed Values Added
Description In Akaunting versions <= 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()->sync()` 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.
Title CVE-2026-16772
References

Subscriptions

Akaunting Akaunting
cve-icon MITRE

Status: PUBLISHED

Assigner: certcc

Published:

Updated: 2026-09-14T21:22:11.702Z

Reserved: 2026-07-23T16:56:04.052Z

Link: CVE-2026-16772

cve-icon Vulnrichment

Updated: 2026-08-14T19:48:48.203Z

cve-icon NVD

Status : Deferred

Published: 2026-08-14T16:16:50.290

Modified: 2026-09-14T22:16:57.260

Link: CVE-2026-16772

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-09-21T07:45:11Z

Weaknesses