CVE-2025-3783 is a medium severity unrestricted file upload flaw (CVSS 6.3) in SourceCodester Web-based Pharmacy Product Management System 1.0. It affects add-product.php, where the Avatar argument accepts uploads. The record lists no fixed version, so check the project page, limit access, and validate uploaded files.
What's affected
The record names SourceCodester Web-based Pharmacy Product Management System version 1.0. The affected file is /add-product.php and the argument is Avatar. The record lists no fixed version.
The record lists the weakness as CWE-284 (improper access control) and CWE-434 (unrestricted upload of a file with a dangerous type). The CVSS 3.1 score is 6.3 (medium), with the vector CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:L. The vector shows the flaw can be reached over the network, and a low privilege account is needed. Confidentiality impact is rated low, integrity low and availability low.
The record says the exploit has been disclosed to the public and may be used. It does not say the flaw is exploited in the wild, and the CISA Known Exploited Vulnerabilities flag is false. Treat any copy that is reachable from the internet as the priority.
How to check if you're exposed
- Find out whether you run this software and which version. Compare it with version 1.0.
- Locate the affected code. The record points to /add-product.php:
find . -path '*add-product.php' 2>/dev/null
- List recently written files in the upload directory and look for anything that is not an image or document you expect:
find /path/to/uploads -type f -mtime -90 -ls
- Review access logs for requests to the upload endpoint, and for direct requests to unexpected file types in the upload folder.
If you manage many repositories, the free in-browser dependency scan covers the libraries your projects pull in, and the Gold directory lets you look up other CVEs by product. Neither replaces reviewing the code of an application you deploy by hand.
What to do now
- Restrict who can reach the upload feature, and disable it if you do not need it.
- Check the vendor or project page for a newer release. The record gives no fixed version, so the advisory should be checked before you plan an upgrade.
- Allow only the file types you need, check content as well as the extension, and rename files on save.
- Store uploads outside the web root, or on a path where the server cannot execute them.
- Review the upload directory for files you do not recognize, especially script or archive types.
- Keep the application account unprivileged so that a bad file cannot reach beyond its own directory.
Why it matters
An upload feature has to decide which files it accepts, where they are stored and whether the server will ever run them. When it checks none of that, a user can place a file of their choosing on the server. If that location is served or executed by the application, the result can be code running on the host.
The record rates this one as medium because the vector requires an account. That is still a real risk wherever self registration is open, and the record says a public write up exists. Upload handlers are worth reviewing in any custom web application, since the same mistake is easy to repeat.
Quick check
Is there a fixed version?
The record does not list one. Check the vendor or project page and the record's references before assuming a patch exists, and apply the mitigations above in the meantime.
Sources
- Gold entry for CVE-2025-3783
- NVD record for CVE-2025-3783, published 2025-04-18, as summarized above
- Reference listed in the record
- Reference listed in the record
- Reference listed in the record
- Reference listed in the record
Last reviewed: 18 October 2026.