---
id: CVE-2026-80210
title: >-
  FrontAccounting through 2.4.20 generates a CSRF token in end_form() in
  includes/ui/ui_controls.inc and embeds it as the _token hidden field in every
  form it renders, but only admin/users.php and
  admin/change_current_user_password.php cal…
summary: >-
  FrontAccounting through 2.4.20 generates a CSRF token in end_form() in
  includes/ui/ui_controls.inc and embeds it as the _token hidden field in every
  form it renders, but only admin/users.php and
  admin/change_current_user_password.php cal…
severity: medium
cvss: 6.5
cvssVector: 'CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:H/A:N'
cwe:
  - CWE-352
published: '2026-08-27'
updated: '2026-09-23'
sourceUpdated: '2026-09-23T17:17:42.503'
source: NVD
sourceUrl: 'https://nvd.nist.gov/vuln/detail/CVE-2026-80210'
references:
  - url: 'https://github.com/FrontAccountingERP/FA'
    label: disclosure@vulncheck.com
  - url: >-
      https://github.com/FrontAccountingERP/FA/blob/9464a3ffef03c139d9396e697bce9a0a9f131a72/includes/ui/ui_controls.inc#L89
    label: disclosure@vulncheck.com
  - url: >-
      https://github.com/geo-chen/oss/blob/main/FA.md#finding-1-cross-site-request-forgery-on-financial-transaction-forms-in-frontaccounting
    label: disclosure@vulncheck.com
  - url: >-
      https://www.vulncheck.com/advisories/frontaccounting-through-2.4.20-cross-site-request-forgery-on-financial-transaction-forms
    label: disclosure@vulncheck.com
tags:
  - nvd
epss: 0.00162
epssPercentile: 0.0587
ingestedAt: '2026-09-23T17:28:14.805Z'
---

## Overview

FrontAccounting through 2.4.20 generates a CSRF token in end_form() in includes/ui/ui_controls.inc and embeds it as the _token hidden field in every form it renders, but only admin/users.php and admin/change_current_user_password.php call check_csrf_token() to validate it. No financial transaction handler validates the token, including gl/gl_journal.php, gl/gl_bank.php, purchasing/supplier_invoice.php, sales/customer_invoice.php, sales/customer_payments.php and admin/company_preferences.php, so those endpoints act on POST data with no origin check. An attacker who gets an authenticated user to load a page under attacker control can auto-submit a cross-origin form to any of them and have the forged journal entry, invoice, customer payment, bank transaction or company configuration change recorded under the victim's session.

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.
