CVE-2024-46097

8.1 HIGH

📋 TL;DR

TestLink 1.9.20 has an access control vulnerability in the TestPlan editing function that allows users with minimal privileges to view and modify all TestPlans, including administrative ones, by manipulating the tplan_id parameter. This affects all TestLink 1.9.20 installations where users have access to create or edit TestPlans.

💻 Affected Systems

Products:
  • TestLink
Versions: 1.9.20
Operating Systems: All
Default Config Vulnerable: ⚠️ Yes
Notes: Affects all installations of TestLink 1.9.20 regardless of configuration. The vulnerability exists in the core TestPlan editing functionality.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

An attacker with basic user privileges could modify or delete all TestPlans in the system, including administrative ones, potentially disrupting testing workflows, leaking sensitive test data, or compromising test integrity.

🟠

Likely Case

Users with minimal permissions can view and modify TestPlans they shouldn't have access to, leading to unauthorized data access and potential test manipulation.

🟢

If Mitigated

With proper access controls and input validation, users would only be able to access TestPlans they're authorized to edit.

🌐 Internet-Facing: HIGH
🏢 Internal Only: HIGH

🎯 Exploit Status

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

Exploitation requires authenticated access but minimal privileges. The vulnerability is simple to exploit by modifying the tplan_id parameter in edit requests.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Not available

Vendor Advisory: Not available

Restart Required: No

Instructions:

No official patch available. Consider upgrading to a newer version if available or implementing workarounds.

🔧 Temporary Workarounds

Implement Access Control Validation

all

Add server-side validation to check user permissions before allowing TestPlan edits

Modify TestPlan editing functions to verify user has proper permissions for the requested tplan_id

Input Validation for tplan_id

all

Validate that users can only access TestPlans they're authorized to edit

Implement parameter validation in editTestPlan.php or equivalent endpoint

🧯 If You Can't Patch

  • Restrict TestPlan creation and editing permissions to trusted administrators only
  • Implement network segmentation to isolate TestLink instances from untrusted networks

🔍 How to Verify

Check if Vulnerable:

Create a TestPlan as a low-privilege user, note the tplan_id, then attempt to edit another TestPlan by changing the tplan_id parameter in the edit request.

Check Version:

Check TestLink version in the application interface or configuration files

Verify Fix Applied:

After implementing fixes, attempt the same exploitation steps - you should receive an access denied error when trying to edit unauthorized TestPlans.

📡 Detection & Monitoring

Log Indicators:

  • Multiple failed access attempts to different tplan_id values from same user
  • User accessing TestPlans outside their normal scope

Network Indicators:

  • HTTP requests with manipulated tplan_id parameters
  • Unusual pattern of TestPlan edit requests

SIEM Query:

source="testlink" AND (action="edit" OR action="modify") AND tplan_id NOT IN authorized_list

🔗 References

📤 Share & Export