{"id":"CVE-2026-118613","kind":"vulnerability","aliases":["CVE-2026-118613"],"related":[],"title":"Ultralytics: untrusted model file deserialization lets attackers run code","description":"Ultralytics torch_load Deserialization of Untrusted Data Remote Code Execution Vulnerability. This vulnerability allows remote attackers to execute arbitrary code on affected installations of Ultralytics. User interaction is required to exploit this vulnerability in that the target must visit a malicious page or open a malicious file.\n\nThe specific flaw exists within the torch_load 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 current user. Was ZDI-CAN-29652.","summary":"Ultralytics' torch_load function deserializes user-supplied data without validation, so a crafted file can execute code. An attacker runs code as the current user once a victim opens a malicious file or visits a malicious page.","severity":"high","cvss":7.8,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["computer-vision","package","python","ultralytics"],"not_affected_if":["trusted-files-only"],"how_to_check":"- Check the installed version with `pip show ultralytics` and compare it to the fixed release in the advisory, which the sources do not name\n- Search code for calls to `torch_load` or loading of untrusted model files: unknown","fix":"- Upgrade the `ultralytics` package to a version newer than the affected one: unknown (the sources do not give the fixed version)\n- Only load model weights from trusted sources until upgraded","status":"open","published_at":"2026-10-28T17:18:28+00:00","first_seen_at":"2026-10-28T17:34:10+00:00","triaged_at":"2026-10-28T17:34:26+00:00","updated_at":"2026-10-28T17:34:26+00:00","category":"package","confidence":0.6,"triage":{"at":"2026-10-28T17:34:26Z","model":"claude-haiku-5-5","output":{"fix":"- Upgrade the `ultralytics` package to a version newer than the affected one: unknown (the sources do not give the fixed version)\n- Only load model weights from trusted sources until upgraded","reach":"local","title":"Ultralytics: untrusted model file deserialization lets attackers run code","impact":"high","summary":"Ultralytics' torch_load function deserializes user-supplied data without validation, so a crafted file can execute code. An attacker runs code as the current user once a victim opens a malicious file or visits a malicious page.","category":"package","nicknames":[],"who_cares":["python","ultralytics","computer-vision"],"confidence":0.6,"needs_auth":"no","worst_case":"Attacker runs code as the user who loads the file","analyst_note":"Find the fixed Ultralytics version and the affected version range from the ZDI advisory (ZDI-CAN-29652) or vendor release notes.","how_to_check":"- Check the installed version with `pip show ultralytics` and compare it to the fixed release in the advisory, which the sources do not name\n- Search code for calls to `torch_load` or loading of untrusted model files: unknown","needs_analyst":true,"not_affected_if":["trusted-files-only"],"who_is_affected":"Teams that run Ultralytics and load model or data files supplied from outside, such as user uploads or downloaded weights, are exposed. Systems that only load their own vetted model files are less exposed; the sources do not say more.","user_interaction":"yes","needs_special_setup":"unknown","severity_if_unknown":"high"},"cost_usd":0.00061,"input_tokens":3418,"output_tokens":537,"severity_before":"high"},"analyst_status":null,"analyst_note":null,"search":"'-118613':12A,15A '-2026':11A,14A '29652':158C 'affect':81C 'allow':73C 'arbitrari':78C 'attack':7A,41B,75C,139C 'code':9A,39B,43B,68C,79C,146C 'comput':17B 'computer-vis':16B 'context':149C 'craft':35B 'current':46B,152C 'cve':10A,13A 'data':30B,66C,129C,137C 'deseri':5A,26B,63C,134C 'execut':38B,69C,77C,145C 'exist':110C 'exploit':90C 'file':4A,36B,54B,106C 'flaw':109C 'function':25B,115C 'instal':82C 'interact':86C 'issu':117C 'lack':121C 'let':6A 'leverag':141C 'load':24B,62C,114C 'malici':53B,58B,100C,105C 'model':3A 'must':97C 'open':51B,103C 'packag':19B 'page':59B,101C 'proper':123C 'python':20B 'remot':67C,74C 'requir':88C 'result':118C,132C 'run':8A,42B 'specif':108C 'suppli':29B,128C 'target':96C 'torch':23B,61C,113C 'ultralyt':1A,21B,22B,60C,84C 'untrust':2A,65C,136C 'user':28B,47B,85C,127C,153C 'user-suppli':27B,126C 'valid':32B,124C 'victim':50B 'vision':18B 'visit':56B,98C 'vulner':70C,72C,92C,143C 'within':111C 'without':31B 'zdi':156C 'zdi-can':155C","nicknames":[],"mitigations":[],"who_affected":"Teams that run Ultralytics and load model or data files supplied from outside, such as user uploads or downloaded weights, are exposed. Systems that only load their own vetted model files are less exposed; the sources do not say more.","tier":"B","verified":{},"analyst_revisit_at":null,"first_public_at":"2026-10-28T17:18:28+00:00","kev":null,"cvss_vector":"CVSS:3.0/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H","cvss_by":"zdi-disclosures@trendmicro.com","poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-118613","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-118613","severity":null,"published_at":"2026-10-28T17:18:28+00:00","modified_at":"2026-10-28T17:18:28+00:00","first_seen_at":"2026-10-28T17:34:10+00:00","fetched_at":"2026-10-28T17:34:10+00:00","note":null}],"documents":[],"notice":"Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai"}