Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessReach /classes/Users.php?f=save endpoint
-
DeliverySend crafted multipart upload via img/id
-
Exploitmove_uploaded_file writes PHP webshell
-
ExecutionRequest uploaded file to execute code
-
ImpactGain server-side command execution
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V5 - File Handling File type validation, storage isolation
MITRE ATT&CK
2 techniques across 2 tactics: Command and Control, Persistence The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation targets the save handler at /classes/Users.php?f=save, specifically the img/id file parameter passed to move_uploaded_file without extension or MIME/content validation, permitting upload of executable PHP into a web-reachable path. Per the provider CVSS vector (PR:N/UI:N) no authentication or user interaction is required, implying the upload path is reachable pre-auth against a default install of SourceCodester Contact Tracing System 1.0; however the endpoint name (Users save) suggests it may be intended for an authenticated admin context, so the pre-auth assumption should be verified in source. Limiting factors: successful code execution requires the upload directory to be web-accessible and PHP execution enabled there, and only version 1.0 of this specific product is affected. |
| Impact | Signals are moderately strong but partially conflicting. The provider CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:N) describes a remotely reachable, low-complexity, unauthenticated flaw, yet rates impact only Low across VC/VI/VA (score 6.9) - unusual for CWE-434 unrestricted upload, which typically yields webshell-based remote code execution and therefore High impact. The 'E:P' exploit-maturity metric plus the VulDB POC flag confirm publicly available exploit code exists, and one reference (tracexlabs) explicitly characterizes this as pre-auth RCE, further suggesting the official Low impact rating understates real severity. No EPSS score and no CISA KEV entry were provided, so active exploitation cannot be asserted - this is POC-available, not confirmed in-the-wild. Net: the vulnerability class and low attack barrier make it a genuine priority for anyone actually running this product, but the product's near-zero production footprint caps aggregate real-world risk. The chief unresolved conflict is impact magnitude (provider Low vs. RCE-class expectation) and whether the save endpoint is truly pre-auth as the CVSS PR:N and tracexlabs claim imply - verify against source. |
| Exploit ScenarioDerived | A remote attacker sends a crafted multipart POST to /classes/Users.php?f=save, abusing the img/id parameter so move_uploaded_file writes a PHP file into a web-accessible directory with no extension or content validation. The attacker then requests the uploaded file to execute arbitrary code (webshell) on the server. Public exploit code is available and a referenced write-up describes this as pre-authentication RCE. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 13, 2026
Unrestricted file upload in SourceCodester Contact Tracing System 1.0 allows remote attackers to send a crafted file through the save handler at /classes/Users.php?f=save so that move_uploaded_file places attacker-controlled content into a web-accessible location, potentially yielding PHP code execution if the upload directory is executable. The provided CVSS 4.0 vector is CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:L/VA:L/SC:N/SI:N/SA:N/E:P, indicating no privileges or user interaction in the assessed scenario, though the endpoint's Users save context warrants source-level confirmation of pre-auth reachability, and impact is limited to version 1.0. Publicly available exploit code exists, but the supplied data does not confirm CISA KEV active exploitation.
RemediationAI
No vendor-released patch was identified in the provided intelligence for CVE-2026-108973. Until a fixed version is available, restrict access to the vulnerable /classes/Users.php?f=save endpoint by requiring authentication, adding an IP allowlist, or blocking external POST requests; this will break the legitimate profile or image upload workflow but blocks the attack path. Disable PHP execution in the upload directory (for Apache use php_admin_flag engine off or a FilesMatch deny for .php files; for nginx use a location block returning 403 for .php files in that path), understanding that any legitimate PHP in that directory will stop working. Additionally, enforce server-side upload validation with an extension allowlist, MIME and content inspection, randomized filenames, and storage outside the web root; this requires code changes and may affect file-format compatibility. Monitor web logs for POST requests to /classes/Users.php?f=save with PHP content and consult https://vuldb.com/vuln/416792 and https://www.sourcecodester.com/ for vendor updates.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
CVE-2026-108973 is a CWE-434 unrestricted upload in the PHP-based SourceCodester Contact Tracing System 1.0. The vulnerable code path is the save function in /classes/Users.php, where the img or id parameter reaches move_uploaded_file without adequate extension, MIME-type, or content validation. Because PHP executes uploaded files if they are placed in a web-accessible directory and retain a .php extension, an attacker who can reach this handler can upload a malicious PHP script. The CPE cpe:2.3:a:sourcecodester:contact_tracing_system:*:*:*:*:*:*:*:* uses a wildcard version, but the vulnerability report and independent assessment specifically identify version 1.0. The CVSS 4.0 vector includes E:P, reflecting the publicly available exploit code, and the PHP plus file-upload tags confirm the attack surface.
Know when Contact Tracing System gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:L/VA:L/SC:N/SI:N/SA:N/E:P
Remote unauthenticated upload (AV:N/AC:L/PR:N/UI:N) of an executable file yields webshell RCE, giving full C/I/A:H; scope unchanged as code runs within the app context.
Primary rating from Vendor (VulDB).
CVSS VectorVendor: VulDB
Lifecycle Timeline
2DescriptionCVE.org
A vulnerability was determined in SourceCodester Contact Tracing System 1.0. Affected by this issue is the function move_uploaded_file of the file /classes/Users.php?f=save. This manipulation of the argument img/id causes unrestricted upload. The attack can be initiated remotely. The exploit has been publicly disclosed and may be utilized.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Malicious file upload attacks exploit insufficient validation when web applications accept user-provided files.
EUVD-2026-98313
GHSA-wqfp-rm4r-2hj4
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB