Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
ReconObtain high-privileged Akaunting account
-
DeliveryNavigate to report create or edit form
-
ExploitInject JavaScript payload into description field
-
InstallPayload persisted server-side
-
C2Victim user views poisoned report
-
ExecuteMalicious script executes in victim browser session
-
ImpactSession token or credentials exfiltrated
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 an authenticated Akaunting session with high privileges - specifically, the permission to create or update reports within the report management workflow, as confirmed by the CVSS PR:H metric. A second condition (UI:P) requires that a victim user independently navigates to and views the report containing the injected payload; the attacker cannot force this view without social engineering. No non-default application configuration is required for the injection point to be present, as the report description field is part of the standard Akaunting report workflow. Exploitation is bounded by version 3.1.21 as stated, though adjacent versions are not ruled out given the CPE wildcard. The vulnerability has no impact on availability (VA:N/SA:N) and cannot be triggered from an unauthenticated network position. |
| Impact | The CVSS 4.0 base score of 4.8 (Medium) accurately captures a constrained but meaningful threat: the PR:H requirement restricts the exploitable attacker population to accounts already granted report management permissions, and UI:P means a victim must independently view the report for execution to occur. Both constraints together materially limit opportunistic exploitation. No EPSS data was present in the provided intelligence, and no CISA KEV listing exists, meaning neither widespread automated exploitation nor confirmed active targeting has been established. Real-world risk is nonetheless elevated in multi-user or enterprise Akaunting deployments where report-editing rights are distributed across roles beyond full administrators - a compromised or malicious report-editor account becomes the primary threat actor. The stored delivery mechanism is a meaningful escalation over reflected XSS because the payload persists and can silently affect multiple victims over time without further attacker interaction. The wildcard CPE (cpe:2.3:a:akaunting:akaunting:*) indicates NVD has not bounded the affected version range beyond the 3.1.21 stated in the report, so broader version exposure is possible but unconfirmed. |
| Exploit ScenarioDerived | An attacker holding a high-privileged Akaunting account with report management rights edits or creates a report and inserts a JavaScript payload - such as a script that exfiltrates document.cookie to an attacker-controlled endpoint - into the description field. When a legitimate user, such as an accountant or administrator, opens that report during routine financial review, the stored payload executes silently in their authenticated browser session, transmitting their session token to the attacker and enabling full account takeover. No public proof-of-concept code has been identified at time of analysis, but the attack technique requires no specialized tooling beyond knowledge of basic XSS methodology. |
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 a high-privileged authenticated user with report creation or update permissions to persist arbitrary HTML/JavaScript in the description field of the report management workflow. Any user - including administrators - who subsequently views the poisoned report will have the malicious script execute in their browser session, enabling session token theft, credential harvesting, or unauthorized UI actions on behalf of the victim. No public exploit code and no CISA KEV listing have been identified at time of analysis, though the stored nature of the payload amplifies impact over reflected XSS variants in shared-user deployments.
RemediationAI
No vendor-released patched version was identified in the provided intelligence at time of analysis; patch status should be verified directly against the Akaunting GitHub repository at https://github.com/akaunting/akaunting and the Fluid Attacks advisory at https://fluidattacks.com/es/advisories/believer. As an immediate compensating control, restrict the report creation and update permissions in Akaunting's role management to the smallest set of explicitly trusted accounts, reducing the population of principals capable of injecting stored payloads - note this may impact reporting workflows for teams accustomed to broader access. Deploying a strict Content Security Policy (CSP) header on the Akaunting web server (e.g., disallowing inline scripts via script-src 'self') can significantly reduce the exploitability of stored XSS by blocking inline script execution; this may require testing against Akaunting's own JavaScript dependencies to avoid breaking legitimate functionality. A WAF rule targeting HTML or script-tag patterns in the report description POST parameter provides an additional detection and blocking layer but risks false positives on legitimate rich-text content and should be deployed in detection-only mode initially.
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, PHP-based accounting and finance management web application (cpe:2.3:a:akaunting:akaunting). The root cause maps to CWE-79 (Improper Neutralization of Input During Web Page Generation - Cross-site Scripting), specifically the stored variant: user-supplied input in the report description field is persisted to the server without sufficient sanitization or output encoding, and is later rendered directly into the browser DOM for any viewer. The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:H/UI:P) confirms the attack surface is network-accessible, requires no special attack conditions, demands high-privilege credentials, and triggers upon passive victim page view. Subsequent-system impact (SC:L/SI:L) reflects the classic stored XSS scope change where script execution crosses from the server into arbitrary victim browser contexts.
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 (PR:H) required to inject; victim must view report (UI:R); script execution crosses to victim browser, changing scope (S:C); limited C/I impact, 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 report management workflow. A user with permission to create or update reports can store arbitrary HTML/JavaScript in the description field of a report.
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 an authenticated high-privileged user to inject arbitrary HTML an
EUVD-2026-38290
GHSA-3777-v3gr-3jr3
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB