CVE-2023-1788

9.8 CRITICAL

📋 TL;DR

CVE-2023-1788 is an insufficient session expiration vulnerability in Firefly III personal finance software that allows attackers to maintain access to user sessions indefinitely after logout. This affects all Firefly III instances running versions prior to 6.0.0, potentially enabling unauthorized access to financial data.

💻 Affected Systems

Products:
  • Firefly III
Versions: All versions prior to 6.0.0
Operating Systems: All platforms running Firefly III
Default Config Vulnerable: ⚠️ Yes
Notes: All Firefly III installations are affected regardless of configuration.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Attackers gain persistent access to user accounts, leading to complete financial data exposure, unauthorized transactions, and potential account takeover.

🟠

Likely Case

Session hijacking allowing attackers to access sensitive financial information and perform unauthorized actions within compromised sessions.

🟢

If Mitigated

Limited impact with proper network segmentation and monitoring, though session data remains at risk.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: LIKELY
Unauthenticated Exploit: ✅ No
Complexity: LOW

Exploitation requires initial authentication but session persistence is trivial once obtained.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 6.0.0 and later

Vendor Advisory: https://github.com/firefly-iii/firefly-iii/commit/68f398f97cbe1870fc098d8460bf903b9c3fab30

Restart Required: Yes

Instructions:

1. Backup your Firefly III database and configuration. 2. Update to Firefly III version 6.0.0 or later via git pull or package manager. 3. Run database migrations: php artisan migrate. 4. Restart the web server/service.

🔧 Temporary Workarounds

Manual Session Cleanup

all

Implement custom session cleanup scripts to force session expiration

php artisan session:table
php artisan migrate
Configure session cleanup in config/session.php

🧯 If You Can't Patch

  • Implement network segmentation to isolate Firefly III from untrusted networks
  • Enable aggressive session timeout policies and force logout all users

🔍 How to Verify

Check if Vulnerable:

Check Firefly III version in web interface or via command: php artisan --version

Check Version:

php artisan --version

Verify Fix Applied:

Verify version is 6.0.0 or higher and test that sessions properly expire after logout

📡 Detection & Monitoring

Log Indicators:

  • Multiple successful logins from same session ID over extended periods
  • Session IDs persisting beyond configured timeout

Network Indicators:

  • Unusual session duration patterns
  • Multiple requests with same session token over hours/days

SIEM Query:

source="firefly-iii" AND (event="login" OR event="session") | stats count by session_id, user | where count > 10 AND duration > 3600

🔗 References

📤 Share & Export