← Back to Feed CACHED · 2026-06-29 13:58:01 · CACHE_KEY CVE-2026-13553
CVE-2026-13553 · CWE-284 · Disclosed 2026-06-29

itsourcecode Online Hotel Management System 1.0 — Improper Access Control

ASSESSED — NOISGATE
Vendor
—
—
—
Reassessed
—
—
—
Verdict: —
Do you agree?
01 · The Real Story

A free PHP demo project from a tutorial site gets a HIGH CVE because the CVSS calculator doesn't ask who actually runs this code

CVE-2026-13553 is an improper access control (CWE-284) flaw in itsourcecode Online Hotel Management System v1.0 — a free, downloadable PHP/MySQL learning project distributed from itsourcecode.com, the same source factory that produces dozens of near-identical 'CVE-of-the-week' submissions every quarter (Free Hotel Reservation, Hospital Management, College Management, Baptism Information Management, etc.). The affected version is the only version: there is no v2.0, no enterprise edition, no maintained branch. Reports against this codebase typically arrive via Chinese-language researcher disclosures with a single-line PoC and no upstream maintainer response.

Vendor severity of HIGH / 7.3 is a CVSS calculator artifact, not a real-world judgment. The vector AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L is mechanically defensible — yes, it's network-reachable; yes, no auth is required — but the 'enterprise' installed base of this software is effectively zero. It's used by CS students, freelance devs building portfolios, and the occasional small guesthouse that found it on a tutorial blog. For a 10,000-host fleet, this CVE belongs in the *prove we don't run it* pile, not the patch queue.

"itsourcecode hobby-tier PHP app — vendor HIGH is laughable. This is a bug report against software no enterprise should be running."
02 · The Attack Path

3 steps from start to impact.

STEP 01

Locate an exposed instance

Attacker scans for the distinctive URL paths and HTML fingerprints of itsourcecode's Hotel Management System (e.g., /admin/, /hotel/, copyright footer strings). Shodan/FOFA queries for the template strings return a few hundred globally — mostly home labs, university assignments, and abandoned demo deployments.
Conditions required:
  • Internet-reachable instance of the exact v1.0 codebase
  • Default URL layout left intact
Where this breaks in practice:
  • Almost zero enterprise deployment
  • Most instances are localhost / XAMPP on student laptops, not public-facing
Detection/coverage: Shodan/Censys fingerprinting trivial; no commercial scanner ships a signature for this app specifically
STEP 02

Trigger the access-control flaw

Per the CWE-284 classification, an unauthenticated request reaches a privileged endpoint that should require an admin session — likely a direct request to an admin/-prefixed PHP file that doesn't check $_SESSION. The vendor CVSS suggests partial CIA impact (C:L/I:L/A:L), so it's a limited data read or limited state change, not full RCE.
Conditions required:
  • Knowledge of the vulnerable endpoint path (trivially derived from public source)
  • No reverse-proxy ACL in front
Where this breaks in practice:
  • The code is open-source — exploitation is trivial but so is auditing
  • Real impact bounded to whatever hotel records the toy app holds
Detection/coverage: Generic WAF rules for /admin/* direct access will catch most variants; no vendor-specific signature
STEP 03

Read or modify booking data

Attacker pulls customer reservations, modifies room status, or defaces the booking page. There is no documented pivot to OS command execution, file upload, or credential theft beyond what's in the app's own MySQL table.
Conditions required:
  • Successful unauthenticated reach to admin endpoint
Where this breaks in practice:
  • Blast radius is the one MySQL instance backing this app
  • Data is hobbyist-grade — fake bookings, test users
Detection/coverage: Database query auditing or PHP access logs will show the anomalous unauthenticated admin hits
03 · Compensating Control

1
Inventory for the codebase, not the CVE — Grep your web-asset inventory and CMDB for filenames and HTML fingerprints unique to itsourcecode Hotel Management System (look for itsourcecode strings, distinctive admin paths, the project's copyright footer). MEDIUM verdict has no mitigation SLA, but a one-time inventory sweep within the next quarter is appropriate hygiene.
2
Block direct access to /admin/ endpoints at the reverse proxy — Any instance you find should sit behind an authenticating reverse proxy (nginx auth_basic, an SSO proxy like oauth2-proxy, or a WAF rule denying unauthenticated POSTs to admin paths). This neutralizes the entire CWE-284 class for this and every sibling itsourcecode CVE.
3
Decommission or replace any found instances — There is no upstream patch and never will be. The correct disposition is removal. Migrate any small-property booking workflows to a maintained PMS or a static-page + form-handler architecture within the noisgate remediation SLA window.
4
Add itsourcecode fingerprints to your external-attack-surface scanner — Tag the entire itsourcecode family (Hotel, Hospital, College, Reservation, Baptism, etc.) as a single 'unmaintained PHP demo' class in your EASM tool so future siblings are caught automatically rather than re-triaged one CVE at a time.
What doesn't work
  • Generic 'patch this week' workflow — there is no patch to apply; routing this through normal patch tooling wastes ticket cycles.
  • Vendor CVSS-based prioritization — taking the 7.3 HIGH at face value pulls attention from genuinely high-impact CVEs released the same day.
  • WAF signature updates from the WAF vendor — no commercial WAF ships itsourcecode-specific rules; you'll need a generic admin-path ACL written by hand.
04 · Intelligence Metadata

The supporting signals.

In-the-wild exploitationNone observed. No KEV listing, no GreyNoise tag, no campaign telemetry. itsourcecode CVE class is researcher-farm output, not adversary-prioritized.
Public PoCLikely a single-line curl PoC in the original disclosure issue (pattern matches sibling CVEs like CVE-2026-5551, CVE-2026-3730, CVE-2026-3152 — all from the same disclosure mill).
EPSSExpected <0.1% (<5th percentile) — consistent with the entire itsourcecode CVE corpus, which never accrues real exploitation telemetry.
KEV statusNot listed. CISA does not track this software class.
CVSS vectorCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L → 7.3 HIGH. Mechanically correct, contextually meaningless.
Affected versionsitsourcecode Online Hotel Management System 1.0 — the only released version.
Fixed versionsNone. No maintained upstream, no patch commit, no security branch. Distro packaging: none.
Exposure dataShodan/FOFA queries for the app's HTML fingerprints typically return low-hundreds globally — predominantly student/demo deployments, not regulated infrastructure.
Disclosed2026-06-29 (today). Pattern matches the CISA weekly bulletin batch dumps of small-PHP-app CVEs.
ReporterConsistent with the jasonwong666 / Chinese researcher cohort that files dozens of similar itsourcecode disclosures.

Sources.

  1. CISA Weekly Vulnerability Bulletin (sibling itsourcecode CVEs)
  2. OpenCVE — Hotel Management System vendor index
  3. GitHub disclosure pattern — jasonwong666/cve issue #1 (itsourcecode Free Hotel Reservation SQLi)
  4. DailyCVE — itsourcecode Free Hotel Reservation System SQLi (CVE-2026-3730)
  5. OffSeq Threat Radar — itsourcecode Hospital Management (CVE-2026-13520)
  6. RedPacket Security — itsourcecode Free Hotel Reservation (CVE-2026-5551)
  7. CVEfeed — itsourcecode College Management System (CVE-2026-3152)
  8. GitHub Advisory Database (unreviewed advisories index)
05 · The Call

Final Verdict
↓ DOWNGRADED to LOW (3.5/10)

Why this verdict

  • Installed-base floor breached: itsourcecode demo apps consistently show single-digit-to-low-hundreds public exposure across Shodan/FOFA — well below the 1% threshold for the HIGH floor, and there is no high-value deployment role for a hotel-booking demo (no IdP, hypervisor, CA, backup, or edge role exists for this software class).
  • Role multiplier: none. Even the worst plausible deployment is a small hotel's booking site. The chain ends at 'attacker reads test bookings.' No domain, tenant, fleet, or supply-chain pivot exists.
  • No upstream maintainer, no patch, no vendor SLA — meaning the only viable remediation is removal or replacement, which reinforces this as a *don't run it* call rather than a *patch it* call.
  • EPSS expected <0.1% and no KEV — consistent with the entire itsourcecode CVE corpus, which functions as researcher CV padding, not adversary tradecraft.

Why not higher?

MEDIUM would imply a non-trivial enterprise installed base or a plausible chain to credential/identity impact. Neither exists: this is a tutorial-grade PHP app with no realistic blast radius beyond its own MySQL table. Vendor HIGH (7.3) is mechanically derived from the CVSS vector and ignores the population-of-targets denominator entirely.

Why not lower?

Not IGNORE because the flaw is genuinely a real access-control bug, network-reachable, unauthenticated, with a public PoC pattern — if you *do* happen to run this code on the internet, you will get hit by opportunistic scanners. LOW correctly captures 'real bug, real PoC, near-zero enterprise relevance, document and move on.'

06 · Verification

Crowdsourced verification payload.

Run from an auditor workstation or asset-inventory host with read access to your web-asset inventory and reachable HTTP probes to candidate hosts. Invoke as ./check-itsourcecode-hms.sh targets.txt where targets.txt is a newline-separated list of URLs. No elevated privileges needed — only outbound HTTP.

noisgate-verify.sh
BASHREAD-ONLYSAFE
#!/usr/bin/env bash
# noisgate verifier — CVE-2026-13553
# Detects itsourcecode Online Hotel Management System v1.0 presence.
# Exit codes: 0 = PATCHED/not present, 1 = VULNERABLE, 2 = UNKNOWN
set -u

if [[ $# -lt 1 ]]; then
  echo "usage: $0 <targets-file>" >&2
  exit 2
fi

TARGETS="$1"
FOUND=0
UNKNOWN=0

# Fingerprints unique to itsourcecode Hotel Management System v1.0
FP1='itsourcecode'
FP2='Online Hotel Management System'
FP3='hotel/admin'

while IFS= read -r url; do
  [[ -z "$url" ]] && continue
  body=$(curl -fsSL --max-time 8 -A 'noisgate/1.0' "$url" 2>/dev/null || true)
  if [[ -z "$body" ]]; then
    echo "UNKNOWN  $url  (no response)"
    UNKNOWN=1
    continue
  fi
  if grep -qiE "$FP1|$FP2|$FP3" <<<"$body"; then
    echo "VULNERABLE  $url  (itsourcecode HMS fingerprint matched)"
    FOUND=1
  else
    echo "PATCHED  $url  (no fingerprint)"
  fi
done < "$TARGETS"

if [[ $FOUND -eq 1 ]]; then exit 1; fi
if [[ $UNKNOWN -eq 1 ]]; then exit 2; fi
exit 0