Hospital Management System CVE Audit — Issued vs. Duplicate vs. Unissued

Educational / defensive security research for a blog post on CVE farming. The four "Hospital Management System" (HMS) projects studied here are throwaway PHP tutorial/demo apps from code-sharing sites — none is used to run real infrastructure. No weaponized PoCs are included; findings are reported at the class + file:line + rationale level.

Date: 2026-06-29. Source-of-truth: a local copy of the public CVE Program corpus + the downloaded source of each project. Per-project analysis was performed by four independent code-reading passes.


1. Executive summary

Across the four HMS projects there are 91 issued CVEs. After normalizing each CVE to a (file, parameter, vulnerability type) tuple and reading the actual source:

Source Issued Unique (deduped) Redundant Misattributed / false Undisclosed CVEable
PHPGurukul HMS53~31~2219
itsourcecode HMS1614026
SourceCodester "Free HMS for Small Practices" (Vaidya Mitra)1210117
code-projects HMS (Fabian Ros)1010214
Total91~65~24~6~36

¹ code-projects has no exact duplicate, but CVE-2024-8368 / CVE-2024-8569 are a probable patient-login dup pair.

Three findings drive the whole story:

  1. Only ~71% of issued CVEs (~65/91) are distinct, real, correctly-attributed bugs. ~24 are redundant slices of an earlier/umbrella CVE; ~6 are misattributed or non-reproducible.
  2. ~36 additional CVEable vulnerabilities are undisclosed at the conservative (root-cause) level — and 150–300+ if counted at the one-CVE-per-file/param granularity these CNAs actually use.
  3. The record under-counts the most severe bugs. The highest-impact issues (unrestricted file upload → RCE, SQLi auth-bypass logins, systemic broken access control) are unissued, while low-value reflected-XSS slices each got their own CVE.

2. The CVE-farming pattern

Every one of these apps shares a single uniform defect profile:

Farming converts this one defect into many CVEs by slicing it one-file-one-parameter at a time. PHPGurukul is the clearest example: four early umbrella CVEs (CVE-2020-5191/5192/22176 "throughout the application", CVE-2023-7172 "admin dashboard") already cover the whole app, after which ~25 single-file/single-param CVEs re-report the same bugs.


3. Per-source detail

3.1 PHPGurukul HMS — 53 issued

3.2 itsourcecode HMS — 16 issued

3.3 SourceCodester "Free HMS for Small Practices" (Vaidya Mitra, /vm/) — 12 issued

> VulDB filed against this one codebase under two product names ("Free Hospital > Management System" and "SourceCodester Hospital Management System").

3.4 code-projects HMS (Fabian Ros) — 10 issued


4. How many undisclosed CVEable things did we find?

The same farming logic that inflated ~65 real bugs into 91 CVEs could inflate these 36 into hundreds — which is precisely the point of the post.


5. Methodology & caveats


Updated 07/23/26 — Independently re-verified all five flagged filings against the downloaded source (confirmed by an external reviewer). CVE-2024-10169 (cpass is md5()-wrapped), CVE-2025-11609 (Node/express-session), CVE-2026-1550 (Django .py) and CVE-2026-11513 (adminaccount.php has no request input) all hold as filed-in-error. CVE-2026-11514 is refined: its admissiontme SQLi is real but was filed against a non-existent file (addpatient.php) rather than its true home, patient.php:8.