Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain high-privileged Akaunting account
-
DeliveryInject JavaScript payload into profile name field
-
ExploitAttacker interacts with invoice or bill document
-
ExecutionVictim navigates to that document's detail page
-
PersistStored XSS payload executes in victim's browser
-
ImpactExfiltrate session token or perform actions as victim
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Output encoding, context-aware escaping
MITRE ATT&CK
2 techniques across 2 tactics: Initial Access, Execution The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires the attacker to hold an authenticated session with high-privilege access (PR:H per CVSS 4.0) sufficient to modify their own user profile name within Akaunting 3.1.21. The injected payload only fires when a second authenticated user passively views an invoice or bill detail page (UI:P) that includes the attacker's account in the document timeline - meaning the attacker must have interacted with at least one document that the victim will later open. Exploitation is limited by: (1) the attacker needing a pre-existing high-privileged account, ruling out unauthenticated or low-privilege attackers; (2) passive victim interaction with a specific page type (invoice or bill detail); and (3) the impact being bounded to browser-context actions rather than server-side compromise. Default Akaunting configurations are susceptible if multiple privileged users share the same instance. |
| Impact | The CVSS 4.0 score of 4.8 (Medium) accurately reflects the constrained real-world risk. The vector AV:N/AC:L/AT:N/PR:H/UI:P indicates the attack is network-reachable and low-complexity, but requires a high-privileged authenticated account and passive user interaction from the victim. The PR:H barrier is the most significant limiting factor: an attacker must already control a legitimate, privileged Akaunting account to set the malicious profile name. Impact is bounded to low confidentiality and low integrity on both the vulnerable and subsequent systems (VC:L/VI:L/SC:L/SI:L), consistent with session data exposure and page content manipulation rather than remote code execution or full account takeover. No EPSS data was provided, and the absence of KEV listing and confirmed POC code further supports treating this as a moderate, non-urgent priority in most environments. The primary realistic threat is an insider or compromised privileged account leveraging this to escalate impact against other users, including administrators. |
| Exploit ScenarioDerived | An attacker with access to a high-privileged Akaunting account navigates to their profile settings and sets their display name to a JavaScript payload such as a script tag exfiltrating the victim's session cookie to an attacker-controlled server. When any other authenticated user - such as an accountant or administrator - opens an invoice or bill detail page where the attacker's account appears in the document timeline, the stored script silently executes in the victim's browser, transmitting their session token and enabling session hijacking. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Jun 22, 2026
Stored cross-site scripting in Akaunting 3.1.21 allows an authenticated high-privileged user to inject arbitrary HTML and JavaScript into their profile name, which is subsequently rendered unsanitized in the document timeline displayed on invoice and bill detail pages. Any other authenticated user - including administrators - who views those pages will have the malicious script execute in their browser context, enabling session hijacking, credential theft, or unauthorized actions on their behalf. No public exploit code has been identified at time of analysis, and the vulnerability is not listed in the CISA Known Exploited Vulnerabilities catalog.
RemediationAI
No specific vendor-released patch version is identified in the available data. Operators should monitor the Akaunting GitHub repository (https://github.com/akaunting/akaunting) and the Fluid Attacks advisory (https://fluidattacks.com/es/advisories/thunder) for a confirmed fix release and upgrade immediately upon availability. As a compensating control, restrict creation of high-privileged accounts to trusted personnel only, since exploitation requires control of such an account - reducing the privileged user population directly limits exposure. Additionally, deploying a Content Security Policy (CSP) header that blocks inline script execution can neutralize stored XSS payloads at the browser level without application changes, though this may break legitimate application functionality and should be tested thoroughly. Input validation at the profile name field (allowlisting printable characters, rejecting HTML tags) could be applied as a server-side patch if self-hosting with source access.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
Akaunting is an open-source, web-based accounting and invoicing application (PHP). The vulnerable component is the document timeline - an audit/activity log rendered on invoice and bill detail pages - which displays contributor names sourced from user profile data. CWE-79 (Improper Neutralization of Input During Web Page Generation) indicates that the application fails to encode or sanitize the profile name field before reflecting it into the timeline HTML, allowing stored script injection. The affected CPE is cpe:2.3:a:akaunting:akaunting:*:*:*:*:*:*:*:*, with the wildcard version range suggesting the researcher confirmed 3.1.21 but the exact boundary of affected versions has not been independently scoped. The flaw is stored (persistent) rather than reflected, meaning the payload persists in the database and fires for every subsequent viewer of the affected pages without further attacker interaction.
Know when Akaunting gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:N/AC:L/AT:N/PR:H/UI:P/VC:L/VI:L/VA:N/SC:L/SI:L/SA:N
High privileges required to set profile name; scope changes because payload executes in other users' browser contexts, causing low-level confidentiality and integrity impact.
Primary rating from Vendor (Fluid Attacks).
CVSS VectorVendor: Fluid Attacks
DescriptionCVE.org
Akaunting 3.1.21 contains an authenticated stored cross-site scripting vulnerability in the document timeline shown on invoice and bill detail pages. An authenticated user can store HTML/JavaScript in their own profile name.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.
An OS command injection vulnerability exists in Akaunting v3.1.3 and earlier. Rated critical severity (CVSS 9.8), this v
Akaunting version 2.1.12 and earlier suffers from a code injection issue in the Money.php component of the application.
Akaunting version 2.1.12 and earlier suffers from a password reset spoofing vulnerability, wherein an attacker can proxy
Akaunting version 2.1.12 and earlier suffers from an authentication bypass issue in the user-controllable field, compani
Akaunting version 2.1.12 and earlier suffers from a denial-of-service issue that is triggered by setting a malformed 'lo
Akaunting version 2.1.12 and earlier suffers from a persistent (type II) cross-site scripting (XSS) vulnerability in pro
Akaunting version 2.1.12 and earlier suffers from a persistent (type II) cross-site scripting (XSS) vulnerability in the
Improper authorization in Akaunting 3.1.21's BulkActions dispatcher allows authenticated low-privilege users to perform
Privilege escalation in Akaunting versions 3.1.21 and earlier allows any low-privileged authenticated user to self-assig
Server-side request forgery in Akaunting 3.1.21 allows authenticated attackers to manipulate the Invoice PDF Rendering c
Cross-site scripting (XSS) in Akaunting up to version 3.1.21 allows authenticated users to inject malicious scripts via
Stored Cross-Site Scripting in Akaunting 3.1.21 allows a high-privileged authenticated user with report creation or upda
EUVD-2026-38270
GHSA-c9g5-5438-6vvf
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB