Severity by source
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
Network-reachable endpoint, low complexity, requires only authenticated low-privilege access (PR:L); pure confidentiality breach with no integrity or availability impact and no scope change.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
Lifecycle Timeline
2DescriptionCVE.org
TestLink 1.9.20 and prior contains an insecure direct object reference vulnerability that allows any authenticated user, including low-privilege guest accounts, to read arbitrary attachments by supplying an integer attachment ID to the attachmentdownload.php handler without any project or role authorization check. Attackers can enumerate sequential integer IDs through the attachment download endpoint to retrieve file contents from private projects they have no membership in, bypassing the per-project access control model and exposing test specifications, requirements documents, execution evidence, and other sensitive uploaded files across the entire installation.
AnalysisAI
Insecure direct object reference in TestLink 1.9.20 and earlier allows any authenticated user - including low-privilege guest accounts - to retrieve arbitrary file attachments from projects they have no membership in, by supplying sequential integer IDs to the attachmentdownload.php endpoint. The handler performs no project membership or role authorization check, enabling bulk enumeration of all attachments across the entire installation. No public exploit has been confirmed at time of analysis, though a researcher writeup exists; the attack is trivially automatable due to the sequential integer ID scheme.
Technical ContextAI
TestLink is an open-source, PHP-based web test management system used to organize test cases, requirements, and execution evidence. The vulnerable component is the attachmentdownload.php HTTP handler, which accepts a user-supplied integer attachment ID and serves the corresponding file without verifying that the authenticated session belongs to the project that owns the attachment. CWE-639 (Authorization Through User-Controlled Key) precisely describes this root cause: the application uses a user-controlled, predictably sequential integer as the sole access key for a protected resource and does not validate object-level authorization before serving it. The CPE cpe:2.3:a:testlinkopensourcetrms:testlink:*:*:*:*:*:*:*:* covers all releases through 1.9.20 per EUVD-2026-54574. Because attachment IDs are sequential integers, an attacker requires no prior knowledge of file names or project structure to systematically enumerate and retrieve every attachment in the installation.
RemediationAI
No vendor-released patch has been identified at time of analysis - the TestLink GitHub repository at https://github.com/TestLinkOpenSourceTRMS/testlink-code should be monitored for a code fix. As an immediate compensating control, administrators should disable guest account self-registration and audit existing low-trust accounts, since the attack requires at minimum a low-privilege authenticated session. The attachmentdownload.php endpoint should be restricted at the reverse proxy or web server layer to allow access only from trusted IP ranges or VPN-connected clients - this eliminates remote exploitation entirely at the cost of requiring VPN for all attachment downloads. A correct code-level fix requires adding a project membership authorization check in attachmentdownload.php that verifies the requesting user's session is associated with the project owning the queried attachment ID before serving file content. A WAF rule rate-limiting rapid sequential requests to attachmentdownload.php can slow bulk enumeration but does not prevent a patient attacker from exfiltrating attachments incrementally.
In PHP versions 7.1.x below 7.1.33, 7.2.x below 7.2.24 and 7.3.x below 7.3.11 in certain configurations of FPM setup it
sapi/cgi/cgi_main.c in PHP before 5.3.12 and 5.4.x before 5.4.2, when configured as a CGI script (aka php-cgi), does not
(1) boardData102.php, (2) boardData103.php, (3) boardDataJP.php, (4) boardDataNA.php, and (5) boardDataWW.php in Netgear
The '/common/download_agent_installer.php' script in the Quest KACE System Management Appliance 8.0.318 is accessible by
ProjectSend versions prior to r1720 are affected by an improper authentication vulnerability. Rated critical severity (C
Roundcube Webmail contains a critical PHP object deserialization vulnerability (CVE-2025-49113, CVSS 9.9) that allows au
Util/PHP/eval-stdin.php in PHPUnit before 4.8.28 and 5.x before 5.6.3 allows remote attackers to execute arbitrary PHP c
Palo Alto Networks PAN-OS management web interface contains an authentication bypass allowing unauthenticated attackers
Nagios XI version xi-5.7.5 is affected by OS command injection. Rated high severity (CVSS 8.8), this vulnerability is re
Nagios XI version xi-5.7.5 is affected by OS command injection. Rated high severity (CVSS 8.8), this vulnerability is re
The get_referers function in /opt/ws/bin/sblistpack in Sophos Web Appliance before 3.7.9.1 and 3.8 before 3.8.1.1 allows
The Backup Migration plugin for WordPress is vulnerable to Remote Code Execution in all versions up to, and including, 1
Same technique Authentication Bypass
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-54574
GHSA-wmvr-m7cj-9g8w