CVE-2025-55521

6.5 MEDIUM

📋 TL;DR

An authenticated attacker can send a specially crafted POST request to the /settings/localisation endpoint in Akaunting v3.1.18, causing a Denial of Service (DoS) that makes the application unavailable. This affects all organizations running the vulnerable version of Akaunting with authenticated user access.

💻 Affected Systems

Products:
  • Akaunting
Versions: v3.1.18
Operating Systems: All platforms running Akaunting
Default Config Vulnerable: ⚠️ Yes
Notes: Requires authenticated access to the /settings/localisation endpoint.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete application unavailability requiring service restart, potentially disrupting business operations and financial management.

🟠

Likely Case

Temporary service disruption affecting authenticated users until the application is restarted or the attack stops.

🟢

If Mitigated

Minimal impact with proper rate limiting, request validation, and monitoring in place.

🌐 Internet-Facing: HIGH if the application is exposed to the internet with authenticated user access.
🏢 Internal Only: MEDIUM as authenticated internal users could still exploit the vulnerability.

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: UNKNOWN
Unauthenticated Exploit: ✅ No
Complexity: MEDIUM

Requires authenticated access and knowledge of the vulnerable endpoint. The specific payload details are not publicly documented.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: v3.1.19 or later

Vendor Advisory: https://github.com/akaunting/akaunting

Restart Required: No

Instructions:

1. Backup your Akaunting installation and database. 2. Update Akaunting to version 3.1.19 or later via the built-in updater or manual installation. 3. Verify the update completed successfully.

🔧 Temporary Workarounds

Restrict access to /settings/localisation

all

Block or restrict access to the vulnerable endpoint using web server configuration or application firewalls.

# Example for Apache: RewriteRule ^/settings/localisation - [F]
# Example for Nginx: location ~ ^/settings/localisation { deny all; }

Implement rate limiting

all

Apply rate limiting to POST requests to prevent DoS attacks.

# Example using fail2ban or similar tools
# Configure web server rate limiting modules

🧯 If You Can't Patch

  • Implement strict authentication controls and monitor for unusual POST requests to /settings/localisation.
  • Deploy a web application firewall (WAF) with DoS protection rules.

🔍 How to Verify

Check if Vulnerable:

Check the Akaunting version in the admin dashboard or via the application's version file.

Check Version:

Check the admin dashboard or view the version in the application's configuration files.

Verify Fix Applied:

Confirm the version is 3.1.19 or later and test that POST requests to /settings/localisation no longer cause service disruption.

📡 Detection & Monitoring

Log Indicators:

  • Multiple POST requests to /settings/localisation from single authenticated users
  • Application error logs showing service disruption

Network Indicators:

  • Unusual spike in POST request volume to the vulnerable endpoint

SIEM Query:

source="web_server_logs" AND uri="/settings/localisation" AND method="POST" AND status=200 | stats count by src_ip

🔗 References

📤 Share & Export