CVE-2025-52560

8.1 HIGH

📋 TL;DR

Kanboard versions before 1.2.46 have a password reset vulnerability where attackers can craft malicious reset links that leak tokens to attacker-controlled domains. This occurs when the application_url configuration is unset (default), allowing account takeover if victims click poisoned links. All users who initiate password resets without application_url set are affected.

💻 Affected Systems

Products:
  • Kanboard
Versions: All versions prior to 1.2.46
Operating Systems: All
Default Config Vulnerable: ⚠️ Yes
Notes: Only vulnerable when application_url configuration parameter is not set (default state).

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete account takeover of all users including administrators, leading to full system compromise, data theft, and potential privilege escalation across the Kanboard instance.

🟠

Likely Case

Targeted account takeover of specific users through phishing campaigns, resulting in unauthorized access to project data, task manipulation, and potential lateral movement.

🟢

If Mitigated

No impact if application_url is properly configured or if users never click malicious password reset links.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: LIKELY
Unauthenticated Exploit: ⚠️ Yes
Complexity: LOW

Exploitation requires tricking users into clicking malicious password reset links, but the vulnerability itself is straightforward to exploit.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 1.2.46

Vendor Advisory: https://github.com/kanboard/kanboard/security/advisories/GHSA-2ch5-gqjm-8p92

Restart Required: Yes

Instructions:

1. Backup your Kanboard installation and database. 2. Download version 1.2.46 from the official repository. 3. Replace all files with the new version. 4. Restart your web server. 5. Verify the fix by checking the version.

🔧 Temporary Workarounds

Set application_url configuration

all

Manually configure the application_url parameter to prevent Host header exploitation

Edit config.php and add: define('APP_URL', 'https://your-kanboard-domain.com');

🧯 If You Can't Patch

  • Configure application_url parameter in config.php to prevent Host header exploitation
  • Implement network controls to block external access to password reset functionality

🔍 How to Verify

Check if Vulnerable:

Check if Kanboard version is below 1.2.46 and if APP_URL is not defined in config.php

Check Version:

Check the VERSION file in the Kanboard installation directory or view the footer in the web interface

Verify Fix Applied:

Confirm version is 1.2.46 or higher and APP_URL is properly configured in config.php

📡 Detection & Monitoring

Log Indicators:

  • Unusual password reset requests from unexpected IP addresses
  • Multiple failed password reset attempts for the same user

Network Indicators:

  • HTTP requests with manipulated Host headers to password reset endpoints

SIEM Query:

source="web_server_logs" AND (uri="/?controller=PasswordResetController" OR uri="/?controller=AuthController") AND (status=200 OR status=302) AND NOT host="expected-domain.com"

🔗 References

📤 Share & Export