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.
Published: 2026-08-14
Score: n/a
EPSS: n/a
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

Akaunting versions up to 3.1.21 allow any authenticated user with the default update-auth-profile permission to set their own role to admin by calling the UpdateUser job. The job unconditionally synchronizes the supplied roles without checking the caller's authorization, enabling privilege escalation. The attacker can then perform all actions available to an administrator, potentially altering data, configuration, and other users' permissions. This flaw is a classic access‑control weakness, corresponding to CWE‑284.

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 no EPSS score is published. 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.

Generated by OpenCVE AI on August 14, 2026 at 16:23 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.1.22 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 August 14, 2026 at 16:23 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

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-08-14T15:18:13.993Z

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

Link: CVE-2026-16772

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

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

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

Link: CVE-2026-16772

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-14T16:30:05Z

Weaknesses