Akaunting 3.3.0 - Stored XSS in custom invoice payment terms
Summary
| CVE | CVE-2026-118597 |
|---|---|
| State | PUBLISHED |
| Assigner | Fluid Attacks |
| Source Priority | CVE Program / NVD first with legacy fallback |
| Published | 2026-11-12 06:17:11 UTC |
| Updated | 2026-11-12 06:17:11 UTC |
| Description | Akaunting 3.3.0 contains a stored cross-site scripting vulnerability in custom invoice payment terms. An authenticated Manager can save a crafted custom payment-term value. When an authorized user opens Invoice Settings for the same company, Akaunting inserts the stored value into a client-side event-handler expression, causing attacker-controlled JavaScript to execute in the victim's authenticated origin. |
Risk And Classification
Primary CVSS: v4.0 7.2 HIGH from [email protected]
CVSS:4.0/AV:N/AC:L/AT:P/PR:H/UI:P/VC:H/VI:H/VA:N/SC:L/SI:L/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
Problem Types: CWE-79 | CWE-79 CWE-79 Improper neutralization of input during web page generation ('cross-site scripting')
| Version | Source | Type | Score | Severity | Vector |
|---|---|---|---|---|---|
| 4.0 | [email protected] | Secondary | 7.2 | HIGH | CVSS:4.0/AV:N/AC:L/AT:P/PR:H/UI:P/VC:H/VI:H/VA:N/SC:L/SI:L/SA:N/E:X/C... |
| 4.0 | CNA | CVSS | 7.2 | HIGH | CVSS:4.0/AV:N/AC:L/AT:P/PR:H/UI:P/VC:H/VI:H/VA:N/SC:L/SI:L/SA:N |
CVSS v4.0 Breakdown
CVSS:4.0/AV:N/AC:L/AT:P/PR:H/UI:P/VC:H/VI:H/VA:N/SC:L/SI:L/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
Vendor Declared Affected Products
References
| Reference | Source | Link | Tags |
|---|---|---|---|
| github.com/akaunting/akaunting/blob/3.3.0/resources/views/components/for... | [email protected] | github.com | |
| fluidattacks.com/advisories/rhiannon | [email protected] | fluidattacks.com | |
| github.com/akaunting/akaunting | [email protected] | github.com | |
| github.com/akaunting/akaunting/blob/3.3.0/app/View/Components/Form/Group... | [email protected] | github.com | |
| github.com/akaunting/akaunting/blob/3.3.0/app/Abstracts/Http/SettingCont... | [email protected] | github.com | |
| CVE Program record | CVE.ORG | www.cve.org | canonical |
| NVD vulnerability detail | NVD | nvd.nist.gov | canonical, analysis |
Vendor Comments And Credit
Discovery Credit
CNA: Fluid Attacks' AI SAST Scanner (en)
CNA: Miguel Gómez (en)
Additional Advisory Data
| Source | Time | Event |
|---|---|---|
| CNA | 2026-10-27T14:00:00.000Z | Vulnerability discovered |
| CNA | 2026-10-28T21:51:00.000Z | Vendor contacted |
| CNA | 2026-11-12T06:08:00.000Z | Public disclosure |
Solutions
CNA: Use a JavaScript-safe serializer such as Laravel Js::from() or a framework data binding for the custom payment-term value; validate it as a bounded integer when it represents a number of days; apply the vendor-fixed release once one is published.
Workarounds
CNA: Use only predefined payment-term options, replace existing custom values, and restrict invoice-settings update access to trusted users until a vendor fix is available. Treat this as temporary mitigation rather than a fix.