A research-grade Chinese CMS with a few hundred public instances gets another auth flaw rubber-stamped HIGH by the CNA
CVE-2026-13546 is a CWE-287 *improper authentication* flaw in Feehi CMS through version 2.1.1 — a small Yii2-based content management project (liufee/cms on GitHub) that's primarily used as a learning/demo CMS in Chinese developer circles. The CVSS vector AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L indicates network-reachable, unauthenticated, low-complexity exploitation that yields *partial* confidentiality, integrity, and availability impact — consistent with bypassing a login check on a specific endpoint or weak session handling rather than full admin takeover. No vendor advisory, no PoC repo, no exploit-db entry, no GitHub Security Advisory text beyond the bare CVE assignment as of disclosure day.
The vendor/CNA score of 7.3 HIGH is defensible on paper because three Low impacts add up arithmetically, but it ignores the practitioner reality: Feehi CMS has a Shodan/Censys footprint in the low hundreds globally, no enterprise penetration, no commercial deployments worth naming, and a maintainer who hasn't shipped a release in years. The triple-Low impact metric — meaning the bypass does not yield full admin or RCE on its own — confirms this is not a domain-takeover bug. For an enterprise defender running 10,000 hosts, the realistic exposure is effectively zero unless a developer stood up a sample app and left it on the internet.
4 steps from start to impact.
Discover an exposed Feehi CMS instance
/admin path, or Yii2-specific response headers. Public scanners list well under 1,000 such instances worldwide. Mass-scanners like httpx + nuclei Feehi templates are the typical tool.- target instance publicly reachable on HTTP/HTTPS
- no WAF or auth proxy in front
- installed base is tiny — Feehi is not in any enterprise software catalog
- most deployments are local dev/lab environments, not production
Hit the unauthenticated endpoint exposed by the auth flaw
PR:N/UI:N, the flaw is triggered by an unauthenticated HTTP request to a specific controller action that fails to enforce its access filter — typical of Yii2 controllers missing a behaviors() access rule. The attacker sends a crafted request, likely with curl or Burp Repeater, against the vulnerable route.- knowledge of the vulnerable route (likely disclosed once a PoC lands)
- default Yii2 routing enabled
- no public PoC at disclosure
- the specific vulnerable controller is not yet named in the CVE record
Read or modify limited application state
C:L/I:L/A:L) constrains the outcome to partial disclosure of data, partial modification of records, and partial availability impact on the affected component — consistent with viewing or editing one resource scope (e.g., a single user record or content item) without full admin escalation. Tools: any HTTP client.- step 2 succeeded
- no privilege escalation path documented — full takeover requires chaining with the older CVE-2022-34140 XSS or the authenticated RCE in exploit-db 51018
Pivot via secondary chain (optional, requires more bugs)
- a second exploitable bug in the same instance
- an admin user actively browsing the affected pages for XSS chain
- chained exploitation is theoretical — no public end-to-end PoC exists
The supporting signals.
| In-the-wild status | No observed exploitation. Not in CISA KEV. No vendor or CERT campaign telemetry. |
|---|---|
| PoC availability | None at disclosure (2026-06-29). Historical Feehi PoCs live on exploit-db.com (51002, 51018) and liufee/cms GitHub issues. |
| EPSS | Not yet scored at disclosure day; comparable Feehi CVEs sit at <0.2% (bottom decile). |
| KEV status | Not listed. Unlikely candidate — no enterprise footprint. |
| CVSS vector | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L — unauthenticated network reach, *partial* impact across CIA. The triple-Low impact is the tell that this is not full takeover. |
| Affected versions | Feehi CMS ≤ 2.1.1 (all currently published releases; project last tagged years ago). |
| Fixed version | No fix released as of 2026-06-29. Upstream liufee/cms has been effectively unmaintained — expect no patch. |
| Exposure data | Shodan / Censys consistently return < 500 public Feehi CMS instances globally; near-zero enterprise presence. GreyNoise shows no targeted scanning for Feehi paths. |
| Disclosure date | 2026-06-29 (today). VulDB-assigned CVE. |
| Reporter | Unattributed in the CVE record at publication time; consistent with VulDB-sourced research-grade disclosures. |
noisgate verdict.
Decisive factor: installed-base share well below 1% in any enterprise environment combined with C:L/I:L/A:L impact — this is a partial auth bypass on a hobby/learning CMS with no commercial footprint, not a domain-takeover bug. The vendor's HIGH (7.3) is CVSS-arithmetic correct but practitioner-misleading; real-world blast radius is one lab box, not a fleet.
Why this verdict
- Vendor score inflation: CVSS 7.3 is arithmetically correct but the triple-Low impact metric means this is *not* a full takeover — it is a partial bypass yielding limited read/write on a single resource scope.
- Population friction: Feehi CMS public exposure is in the low hundreds globally per Shodan/Censys — orders of magnitude smaller than any product that warrants a HIGH operational verdict.
- Role multiplier: Feehi is never deployed as an identity provider, hypervisor, backup server, CA, kernel agent, or any other high-value-role component in the noisgate catalog. Worst plausible role is a marketing microsite or a developer's lab box — blast radius caps at *one host, one tenant*. The deployment-role floor does not apply.
- No KEV / no PoC / no campaign: disclosed today by a research CNA with no exploitation evidence and no expected attacker investment given the tiny target population.
- No vendor fix expected: upstream
liufee/cmsis effectively abandoned, which makes *removal* the only viable long-term control — that's a config/lifecycle issue, not a patching emergency.
Why not higher?
HIGH would be appropriate if Feehi were enterprise software, or if the impact metrics were High across CIA, or if there were active exploitation in the wild. None of those hold. The CVSS arithmetic produces 7.3 but the operational picture is a niche CMS with partial-impact bypass.
Why not lower?
LOW or IGNORE would be wrong because the flaw *is* remotely reachable with no authentication and no user interaction, and a defender who has a Feehi instance on the perimeter (rare but real) still has a real bug to fix. MEDIUM acknowledges the real, exploitable bug while reflecting the negligible blast radius.
What to do — in priority order.
- Inventory for any Feehi CMS instance on the network — Run an external ASM sweep (Censys, Runzero) and an internal HTTP fingerprint pass for the Feehi favicon hash and
/adminlogin banner. Per the noisgate MEDIUM SLA there is no mitigation deadline — handle in normal asset-inventory cadence, ideally within the next monthly review. - Block the affected endpoint at the WAF or reverse proxy — Once a PoC names the vulnerable route, add a WAF deny rule for that path. Until then, restrict
/adminand any non-public Feehi paths to an IP allowlist. Deploy alongside your normal MEDIUM remediation work — no fast-track required. - Remove or replace Feehi CMS entirely — Upstream is unmaintained; this CVE will not be patched. Migrate the content to a supported CMS (WordPress, Ghost, Strapi) within the 365-day remediation window. This is the only durable fix.
- Put any Feehi instance behind authenticated reverse proxy (SSO/MFA) — Cloudflare Access, AWS ALB-OIDC, or an internal SAML proxy in front of Feehi neutralizes the
PR:N/UI:Nattack vector without touching application code. Implement in the normal change window.
- Generic OWASP CRS rules — the auth bypass is application-specific and will not trigger SQLi/XSS signatures.
- Yii2 framework updates — the flaw is in Feehi controller logic (missing access filter), not in Yii2 itself; upgrading Yii will not fix it.
- Network segmentation alone — if the instance is exposed externally for a reason (marketing site), internal segmentation does not change the attack surface.
Crowdsourced verification payload.
Run this from an auditor workstation or an internal scanning host with network reach to your candidate targets. Invoke as ./check-feehi.sh https://target.example.com — no privileges required, just outbound HTTP. The script fingerprints Feehi CMS and reports the version exposed.
#!/usr/bin/env bash
# noisgate verifier: CVE-2026-13546 (Feehi CMS <= 2.1.1 improper authentication)
# Usage: ./check-feehi.sh <base-url>
# Exit codes: 0=PATCHED/NOT_FEEHI, 1=VULNERABLE, 2=UNKNOWN
set -u
TARGET="${1:-}"
if [[ -z "$TARGET" ]]; then
echo "usage: $0 <base-url>" >&2
exit 2
fi
UA='noisgate-verifier/1.0'
# Pull root and login page; Feehi advertises itself in HTML meta + Yii2 cookies
ROOT=$(curl -ksS -A "$UA" --max-time 10 "$TARGET/" || true)
ADMIN=$(curl -ksS -A "$UA" --max-time 10 "$TARGET/admin" || true)
if ! grep -qiE 'feehi|liufee' <<<"$ROOT$ADMIN"; then
echo "PATCHED (no Feehi CMS fingerprint on $TARGET)"
exit 0
fi
# Extract version from generator meta or footer credit
VER=$(grep -oiE 'feehi[^<"]{0,40}' <<<"$ROOT$ADMIN" | grep -oE '[0-9]+\.[0-9]+(\.[0-9]+)?' | head -1)
if [[ -z "$VER" ]]; then
echo "UNKNOWN (Feehi detected on $TARGET but version not parsed — treat as VULNERABLE until proven otherwise)"
exit 2
fi
# All currently published Feehi releases (<=2.1.1) are affected; no fix released
awk -v v="$VER" 'BEGIN{
split(v,a,"."); maj=a[1]+0; min=a[2]+0; pat=a[3]+0;
if (maj<2 || (maj==2 && min<1) || (maj==2 && min==1 && pat<=1)) { print "VULNERABLE (Feehi " v " on target — CVE-2026-13546 applies, no upstream fix)"; exit 1 }
else { print "UNKNOWN (Feehi " v " — newer than 2.1.1, verify against vendor advisory)"; exit 2 }
}'
If you remember one thing.
liufee/cms is unmaintained and no vendor patch is coming. If your discovery sweep finds a Feehi instance externally exposed *and* PoC code drops later, re-evaluate — until then this is a backlog item, not a Tuesday-morning emergency.Sources
- VulDB / CVE.report — Feehi CMS history
- CVE Details — Feehi CMS 2.1.1
- Feehi CMS upstream repository (liufee/cms)
- Exploit-DB 51018 — Feehi CMS 2.1.1 Authenticated RCE
- Exploit-DB 51002 — Feehi CMS 2.1.1 Stored XSS
- GHSA — Feehi CMS host header injection (CVE-2022-38796)
- CWE-287: Improper Authentication
- CISA KEV catalog (Feehi not listed)
What defenders are saying.
Crowdsourced verification outputs.
Results submitted by users who ran the verification payload against their environment.