CVE-2026-118597 PUBLISHED

Akaunting 3.3.0 - Stored XSS in custom invoice payment terms

Assigner: Fluid Attacks
Reserved: 28.10.2026 Published: 12.11.2026 Updated: 12.11.2026

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.

Metrics

CVSS Vector: 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 Score: 7.2

Product Status

Vendor Akaunting
Product Akaunting
Versions Default: affected
  • Version 3.3.0 is affected

Workarounds

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.

Solutions

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.

Credits

  • Fluid Attacks' AI SAST Scanner finder
  • Miguel Gómez finder

References

Problem Types

  • CWE-79 Improper neutralization of input during web page generation ('cross-site scripting') CWE

Impacts

  • CAPEC-592 Stored XSS