← Back to Feed CACHED · 2026-05-17 09:42:19 · cache_key CVE-2025-29912
CVE-2025-0224 · CWE-200 · Disclosed 2025-01-05

A vulnerability was found in Provision-ISR SH-4050A-2

ASSESSED — NOISGATE V0.5
Vendor
Reassessed
Verdict:
01 · The Real Story

This is a peephole in the equipment room door, not a master key

CVE-2025-0224 is an unauthenticated remote information disclosure issue in multiple Provision-ISR CCTV recorders: SH-4050A-2, SH-4100A-2L(MM), SH-8100A-2L(MM), SH-16200A-2(1U), SH-16200A-5(1U), and NVR5-8200PX, affecting versions reported as up to 20241220. Public descriptions point at exposure through the /server.js path, with a public proof-of-concept noted by VulDB/NVD.

The vendor/CNA MEDIUM 5.3 score is technically defensible in a vacuum because the bug is remote, easy, and needs no auth. Operationally, though, this lands lower for most enterprises: it is confidentiality-only, requires the recorder to be reachable over its web path, and the affected population is a niche surveillance appliance class that is often segmented or NATed rather than broadly exposed like VPNs, email gateways, or identity services.

"Remote and unauthenticated, yes—but this is mostly a recon leak on a niche appliance, not a patch-everything-now event."
02 · The Attack Path

3 steps from start to impact.

STEP 01

Find a reachable recorder

An attacker starts with commodity recon using tools like httpx, nmap, or internet search engines for exposed device UIs. The practical goal is simple: identify a Provision-ISR web interface that answers over HTTP/HTTPS or is reachable through a remote-management path.
Conditions required:
  • The recorder's management interface or equivalent web path is reachable from the attacker position
  • The device is one of the affected Provision-ISR models and still on vulnerable firmware
Where this breaks in practice:
  • Many CCTV/NVR deployments live behind NAT, on a dedicated VLAN, or are only reachable through a local console
  • Enterprises that force remote access through VPNs or jump hosts break the unauthenticated-remote premise
Detection/coverage: External attack-surface tools may identify the web UI, but generic vuln scanners are unlikely to fingerprint this CVE reliably without a custom check.
STEP 02

Pull /server.js anonymously

With a reachable target, the attacker uses curl or a trivial PoC to request /server.js. Per the public record, that path can disclose information without authentication, turning the bug into a low-effort reconnaissance primitive.
Conditions required:
  • Anonymous HTTP(S) access to /server.js is allowed
  • No upstream control blocks or rewrites the request
Where this breaks in practice:
  • Reverse proxies, ACLs, and basic network filtering can make the vulnerable path unreachable
  • Some deployments use cloud/P2P workflows rather than directly publishing the recorder UI
Detection/coverage: A web access log or reverse proxy log can catch repeated anonymous requests to /server.js; off-the-shelf scanners may miss it unless a custom Nuclei template or targeted check exists.
STEP 03

Use the leak for follow-on targeting

The disclosed data is useful mainly for device profiling and follow-on attack planning: identifying model/build context, management endpoints, and environmental details. That can support credential attacks, lateral targeting of the surveillance segment, or physical-security planning, but the CVE itself does not provide code execution or direct control.
Conditions required:
  • The leaked content contains actionable device or environment details
  • The attacker has another path to exploit the information afterward
Where this breaks in practice:
  • The bug's blast radius is bounded by what the file reveals; there is no published direct integrity or availability impact
  • If the recorder is isolated from business systems, the value of the leak drops sharply
Detection/coverage: Detection usually shifts from CVE-specific to behavior-based: unusual recon against camera/NVR segments, password spraying against the recorder, or unexpected management connections.
03 · Intelligence Metadata

The supporting signals.

In-the-wild statusNo public evidence of active exploitation campaigns surfaced in the accessible sources I checked, and CISA KEV does not list CVE-2025-0224.
Proof-of-concept availabilityPublic PoC/advisory exists. NVD references the NetSecFish advisory, and VulDB states that *technical details and also a public exploit are known*.
EPSSVery low either way. Your intel says 0.00209; CVEDetails showed 0.07% (~22nd percentile) at its crawl snapshot. EPSS is time-variant, but both snapshots say the same thing operationally: low expected exploitation pressure.
KEV statusNot KEV-listed as checked against the CISA Known Exploited Vulnerabilities catalog.
CVSS vector readoutCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N means easy remote reachability with no auth, but the impact is only low confidentiality lossno integrity or availability component.
Affected versionsPublic records say the affected models are vulnerable up to 20241220. The submission trail also mentions older firmware strings including 1.2.6.0R0.B180303h.1... for impacted models.
Fixed version signalProvision-ISR currently publishes newer firmware for at least the NVR5-8200PX+(MM) family, including v1.4.12_82272_RD251031, but I did not find a vendor advisory explicitly mapping that build to this CVE, so treat it as newer available firmware, not confirmed CVE fix evidence.
Exposure surfaceThe NVR documentation explicitly lists remote-facing protocols/features including DDNS, P2P, and RTSP, and the vendor markets Provision-ISR Cloud / Safari P2P access. That increases the odds of remote management being enabled somewhere, even if not directly internet-exposed.
Scanning / exposure telemetryNo reliable public Shodan/Censys/GreyNoise counts for this specific CVE or model appeared in accessible sources. That absence lowers confidence in any claim of large-scale exposure; I would not inflate severity based on guessed internet population.
Disclosure / reporterNVD shows publication on 2025-01-05 with source attribution to VulDB; VulDB attributes the submission to netsecfish.
04 · The Call

noisgate verdict.

Final Verdict
DOWNGRADED to LOW (3.1/10)

The decisive factor is exposure gating: this only matters when a niche CCTV recorder's web path is reachable to the attacker, and in many enterprise deployments that means a prior networking mistake or a deliberately exposed surveillance segment. Once reached, the impact still stays confidentiality-only with no demonstrated control or disruption path from this CVE alone.

HIGH The CVE is limited to information disclosure rather than code execution or admin takeover
MEDIUM Real-world exposure population of affected Provision-ISR recorders in enterprise environments

Why this verdict

  • Downward pressure: confidentiality-only bug — the published impact is an unauthenticated info leak, not RCE, auth bypass, config tampering, or service kill.
  • Downward pressure: attacker must reach the recorder UI — in practice that usually means direct internet exposure, permissive NAT/UPnP, or an already-internal foothold; each of those narrows the real victim pool materially.
  • Downward pressure: weak threat signal — no KEV listing, no public campaign reporting in the checked sources, and EPSS remains near the floor even across differing snapshots.

Why not higher?

If this were tied to broad internet exposure, active exploitation telemetry, or a clean chain from leak to device takeover, it would climb fast. But today the public record shows a recon aid on a relatively narrow appliance set, not a high-volume enterprise intrusion primitive.

Why not lower?

I am not calling this IGNORE because it is still remote, unauthenticated, and publicly documented, with a named path and PoC signal. For organizations that do expose surveillance gear—or that protect sensitive physical spaces—the leaked device intelligence can absolutely support follow-on attacks.

05 · Compensating Control

What to do — in priority order.

  1. Remove direct internet reachability — Block inbound access to recorder management interfaces from the public internet and force remote viewing/admin through VPN or a controlled jump path. For a LOW verdict there is no SLA (treat as backlog hygiene), but if any of these units are public-facing, do this in the next routine network change rather than waiting for firmware work.
  2. Disable unnecessary remote features — Review and turn off UPnP, unused P2P, and any unnecessary DDNS or direct web publishing so the vulnerable path cannot be reached anonymously. For LOW, there is no SLA (treat as backlog hygiene); bundle it into the next surveillance-platform hardening cycle.
  3. Inventory and segment the recorder fleet — Identify affected models, confirm firmware/build levels, and keep CCTV/NVR devices on a dedicated management or surveillance VLAN with tightly scoped ACLs. For LOW, there is no SLA (treat as backlog hygiene), but this is the control that most effectively reduces blast radius if another camera/NVR flaw appears later.
What doesn't work
  • Endpoint AV/EDR on user workstations doesn't help much; the vulnerable asset is an embedded recorder appliance, not a Windows endpoint.
  • Password rotation alone does not fix this issue because the published attack path is unauthenticated.
  • Internal patching of general-purpose servers does nothing if the NVR itself remains directly reachable over HTTP(S).
06 · Verification

Crowdsourced verification payload.

Run this from an auditor workstation or jump host that can reach the recorder's web UI. Invoke it as bash verify-cve-2025-0224.sh https://10.20.30.40 or bash verify-cve-2025-0224.sh http://nvr.example.local; it needs no credentials and no special privileges beyond network access to the target.

noisgate-verify.sh
BASHREAD-ONLYSAFE
#!/usr/bin/env bash
# verify-cve-2025-0224.sh
# Basic remote exposure check for CVE-2025-0224 on Provision-ISR DVR/NVR devices.
# Exit codes:
#   0 = VULNERABLE
#   1 = PATCHED
#   2 = UNKNOWN / error / could not determine

set -u

if [ "$#" -ne 1 ]; then
  echo "UNKNOWN"
  exit 2
fi

TARGET="$1"
CURL_OPTS=(--silent --show-error --insecure --location --max-time 10)

# Normalize target URL.
if [[ ! "$TARGET" =~ ^https?:// ]]; then
  TARGET="http://$TARGET"
fi
TARGET="${TARGET%/}"

TMP_BODY="$(mktemp 2>/dev/null || echo /tmp/cve20250224_body.$$)"
TMP_HDR="$(mktemp 2>/dev/null || echo /tmp/cve20250224_hdr.$$)"
trap 'rm -f "$TMP_BODY" "$TMP_HDR"' EXIT

# Step 1: probe the published path anonymously.
HTTP_CODE=$(curl "${CURL_OPTS[@]}" -D "$TMP_HDR" -o "$TMP_BODY" -w "%{http_code}" "$TARGET/server.js" 2>/dev/null || true)
BODY_SIZE=$(wc -c < "$TMP_BODY" 2>/dev/null || echo 0)
CTYPE=$(grep -i '^content-type:' "$TMP_HDR" 2>/dev/null | tail -n1 | tr -d '\r' | cut -d' ' -f2-)

# Heuristic: anonymous 200/206 plus non-trivial JS/text body strongly suggests the exposed file is reachable.
if [[ "$HTTP_CODE" =~ ^(200|206)$ ]] && [ "$BODY_SIZE" -gt 128 ]; then
  if grep -Eqi '(javascript|text/plain|application/octet-stream)' <<< "$CTYPE" || grep -Eqi '(function|var |const |let |server|http|rtsp|ddns|p2p)' "$TMP_BODY"; then
    echo "VULNERABLE"
    exit 0
  fi
fi

# Step 2: try to find a newer firmware/build indicator on the landing page.
ROOT_BODY="$(mktemp 2>/dev/null || echo /tmp/cve20250224_root.$$)"
trap 'rm -f "$TMP_BODY" "$TMP_HDR" "$ROOT_BODY"' EXIT
ROOT_CODE=$(curl "${CURL_OPTS[@]}" -o "$ROOT_BODY" -w "%{http_code}" "$TARGET/" 2>/dev/null || true)

# Vendor pages currently show newer firmware strings such as RD251031 / v1.4.12_82272_RD251031.
# If the device UI leaks a clearly newer build marker, mark as PATCHED; otherwise stay conservative.
if [[ "$ROOT_CODE" =~ ^(200|401|403)$ ]] && grep -Eqi '(RD251031|v1\.4\.12_82272_RD251031)' "$ROOT_BODY"; then
  echo "PATCHED"
  exit 1
fi

# If /server.js is not reachable anonymously but we cannot confirm build level, do not overclaim.
echo "UNKNOWN"
exit 2
07 · Bottom Line

If you remember one thing.

TL;DR
Monday morning, treat this as surveillance-platform hygiene, not as an interrupt-driven fire drill: identify whether you actually own any of the named Provision-ISR recorders, check whether their web interfaces are internet-reachable, and remove public reachability where found. Because this is a LOW reassessment, there is no noisgate mitigation SLA and no noisgate remediation SLA—treat it as backlog hygiene, document the rationale, and patch during normal firmware maintenance; the only reason to accelerate is if a recorder is publicly reachable or protects a high-value physical site.

Sources

  1. NVD entry
  2. VulDB entry
  3. CVEDetails entry
  4. CISA KEV catalog
  5. Provision-ISR NVR5-8200PX+(MM) product page
  6. Provision-ISR Ossia NVR software page
  7. Provision-ISR NVR5-8200PX manual/specifications
Peer Review

What defenders are saying.

Submit a review attribution: handle + country only
0 flags selected · stored anonymously
Validation Results

Crowdsourced verification outputs.

Results submitted by users who ran the verification payload against their environment.