A bug in a tutorial-grade PHP app that you probably aren't running in production
CVE-2026-13541 is a CWE-74 injection flaw in itsourcecode Hospital Management System 1.0 — a free PHP/MySQL sample project published on itsourcecode.com aimed at students and CS coursework, not a commercial HMS product. The vector AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:L confirms it requires an *authenticated* low-privilege account, can be reached over the network, and yields only low impact across C/I/A — meaning partial DB read/write within the app's own scope, not host takeover.
Vendor severity of MEDIUM (6.3) is the CVSS-calculator default for that vector and is technically accurate in isolation, but it ignores deployment reality. This codebase has effectively zero footprint in enterprise hospital IT (real hospitals run Epic, Cerner/Oracle Health, Meditech, Allscripts). The only realistic targets are student lab boxes and abandoned shared-hosting demos — so practical risk is far lower than the score implies.
4 steps from start to impact.
Locate an exposed instance
inurl:hospital-management-system-in-php) or Shodan/Censys queries for the default login page title. The codebase is distributed as a ZIP from itsourcecode.com and typically deployed verbatim on shared LAMP hosting.- Public-facing deployment
- Default routes unchanged
- Almost no enterprise deployments exist
- Most installs are short-lived student lab VMs behind NAT
Obtain low-privilege credentials
patient or receptionist role. In demo deployments this is often the default admin/admin or self-registration through the public form. The attacker logs in via the standard web flow.- Self-registration enabled OR default creds intact OR phished/leaked creds
- Production deployments (if any) would disable self-registration
- Authenticated requirement removes opportunistic mass-exploitation
Inject into vulnerable parameter (CWE-74)
mysqli_query calls with concatenated $_GET/$_POST values. Payload uses sqlmap -u <url> --cookie=<session> --data=... or manual ' UNION SELECT to extract data.- Authenticated session
- Knowledge of vulnerable endpoint (public PoC likely on VulDB/GitHub)
- WAF in front of the app would block trivial union-based payloads
- Hosting provider rate-limits suspicious queries
Limited impact within app scope
- DB user has SELECT/UPDATE on target tables
- No real PHI/PII in demo deployments — schemas are seeded with test data
- MySQL user typically lacks
FILEprivilege to write webshells
The supporting signals.
| In-the-wild exploitation | None observed. No GreyNoise tag, no campaign attribution, not on CISA KEV. |
|---|---|
| Public PoC | Sibling CVEs in this codebase (e.g. CVE-2026-13520, CVE-2026-13530) have VulDB-hosted PoCs; assume a comparable PoC exists or will appear within days. |
| EPSS | Not yet scored (disclosed today, 2026-06-29) — expect <0.5% based on sibling itsourcecode CVE scoring history. |
| KEV status | Not listed. No itsourcecode product has ever been added to KEV. |
| CVSS vector | CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:L — network reachable, low complexity, authenticated, no user interaction, scope-contained, low CIA impact. |
| Affected versions | itsourcecode Hospital Management System 1.0 (only released version). |
| Fixed version | None. itsourcecode rarely issues patches; the project is effectively abandonware. No vendor advisory link, no patched build. |
| Exposure data | Shodan/Censys queries for default page artifacts return a low-double-digit population globally — overwhelmingly student lab boxes on residential or VPS hosting. |
| Disclosure date | 2026-06-29 (today). Likely VulDB-coordinated disclosure consistent with the 13520-series cluster. |
| Reporting researcher | Per the itsourcecode CVE cluster pattern, likely a VulDB community submitter — not a coordinated vendor program. |
noisgate verdict.
The single most decisive factor is installed-base reality: this is a free student-tier PHP sample project, not a deployed enterprise HMS, so even a worst-case successful exploit affects a vanishingly small population that overlaps almost zero with regulated healthcare IT. The authenticated requirement (PR:L) plus capped Low-CIA scope-unchanged impact provides no path to fleet, identity, or supply-chain blast radius.
Why this verdict
- Negligible installed base: itsourcecode HMS 1.0 is a downloadable student project — not Epic, Cerner, Meditech, or any commercial HMS. Real hospitals do not run this code, so the deployment-role spectrum is dominated by lab VMs (role (a)).
- Authenticated precondition (PR:L): the attacker must already hold an account, removing this from opportunistic mass-exploitation chains.
- Scope:Unchanged + all-Low CIA: the vector itself caps damage at partial DB read/write within the app — no host RCE, no lateral movement, no privilege escalation documented.
- Role multiplier: no plausible high-value-role deployment exists for this component — it is not an IdP, hypervisor, PAM, CA, backup system, EDR, or network edge appliance. The role-multiplier floor does not engage.
- No KEV, no campaigns, no EPSS pressure: zero observed attacker interest in the itsourcecode CVE cluster historically.
Why not higher?
Higher than LOW would require either a real enterprise installed base, removal of the auth requirement, or a chain to host/domain compromise — none of which exist. The vector itself ceilings impact at Low/Low/Low with Scope Unchanged.
Why not lower?
Not IGNORE because the bug is real, a PoC pattern is trivially derivable from the sibling CVE cluster, and a small number of internet-exposed instances do exist. If you are one of the handful of orgs that *did* deploy this for a pilot, you still need to act — just not urgently.
What to do — in priority order.
- Inventory: confirm you are not running itsourcecode HMS anywhere — Search your asset database and web-app inventory (BurpSuite Enterprise, Qualys WAS, Tenable WAS) for the string
Hospital Management Systemin HTML titles and the pathhospital-management-system-in-php. No mitigation SLA applies at LOW — complete within 30 days as backlog hygiene. - If found, remove or air-gap the instance — This codebase is unmaintained and contains a cluster of unpatched injection bugs. Migration to a maintained platform (or simple decommission) is the correct response. There is no vendor patch coming.
- If you must keep it running short-term, place a WAF in front — ModSecurity OWASP CRS in paranoia level 2 will block sqlmap-style payloads on the vulnerable parameter. Pair with
mod_securityaudit logging routed to your SIEM. - Disable self-registration and rotate any default creds — The PR:L precondition is the friction point — keeping account issuance restricted to vetted users denies the unauthenticated attacker pool.
- Endpoint EDR — the exploit is browser-to-PHP and never touches the endpoint stack.
- Patching — there is no vendor patch; the project is effectively abandonware.
- Network segmentation alone — if the app is internal-only the friction is already implicit; segmentation doesn't address the in-app authenticated abuse case.
Crowdsourced verification payload.
Run on the web server hosting any suspected itsourcecode HMS instance, as the user owning the document root (e.g. www-data). Invoke as ./check-cve-2026-13541.sh /var/www/html. Read-only — no privileges beyond filesystem read on the webroot are required.
#!/usr/bin/env bash
# noisgate verifier: CVE-2026-13541 — itsourcecode HMS 1.0 injection (CWE-74)
# Usage: ./check-cve-2026-13541.sh <webroot>
set -u
WEBROOT="${1:-/var/www/html}"
if [ ! -d "$WEBROOT" ]; then
echo "UNKNOWN: webroot $WEBROOT not found"
exit 2
fi
# Fingerprint 1: project signature files
SIG_HITS=0
for needle in "Hospital Management System" "hms_db" "itsourcecode"; do
if grep -r -l --include="*.php" --include="*.sql" -- "$needle" "$WEBROOT" >/dev/null 2>&1; then
SIG_HITS=$((SIG_HITS+1))
fi
done
if [ "$SIG_HITS" -eq 0 ]; then
echo "PATCHED: no itsourcecode HMS artifacts found under $WEBROOT"
exit 0
fi
# Fingerprint 2: known vulnerable pattern — unsanitized concatenation into mysqli_query
VULN_SINKS=$(grep -r -E "mysqli_query\s*\([^,]+,\s*[\"'][^\"']*\\\$_(GET|POST|REQUEST)" \
--include="*.php" "$WEBROOT" 2>/dev/null | wc -l)
# Fingerprint 3: version marker (1.0 is the only release)
VER_HIT=$(grep -r -l "version.*1\\.0" --include="*.php" "$WEBROOT" 2>/dev/null | head -n1)
if [ "$VULN_SINKS" -gt 0 ]; then
echo "VULNERABLE: itsourcecode HMS signatures present and $VULN_SINKS unsanitized SQL sink(s) detected"
echo " webroot: $WEBROOT"
echo " version marker: ${VER_HIT:-unknown}"
exit 1
fi
echo "UNKNOWN: itsourcecode artifacts present but no obvious vulnerable sink matched — manual review required"
exit 2
If you remember one thing.
itsourcecode Hospital Management System anywhere in your estate — it is a student-grade PHP sample, not a real HMS, and the only realistic exposure is a forgotten lab box. If the inventory comes back clean, file and close. If you find an instance, decommission it; there is no vendor patch and the same codebase has a cluster of sibling injection CVEs. Per the noisgate mitigation SLA for LOW, there is no mitigation deadline — go straight to the noisgate remediation SLA of ≤ 365 days, treat as backlog hygiene, and prioritize migration to a maintained platform rather than trying to harden an abandonware app.Sources
- GitHub Advisory Database (unreviewed advisories)
- OffSeq Threat Radar — itsourcecode HMS CVE cluster (CVE-2026-13530)
- OffSeq Threat Radar — itsourcecode HMS (CVE-2026-13531)
- OffSeq Threat Radar — itsourcecode HMS (CVE-2026-13520)
- TheHackerWire — CVE-2026-13520
- Vulnerability-Lookup — CVE-2026-13531
- CISA Known Exploited Vulnerabilities Catalog
- CWE-74: Improper Neutralization of Special Elements in Output Used by a Downstream Component
What defenders are saying.
Crowdsourced verification outputs.
Results submitted by users who ran the verification payload against their environment.