{"id":"CVE-2026-112018","kind":"vulnerability","aliases":["CVE-2026-112018"],"related":[],"title":"cgltf: heap out-of-bounds write lets a crafted glTF file corrupt memory","description":"cgltf through 1.15 contains a heap out-of-bounds write vulnerability in cgltf_accessor_unpack_floats() that allows attackers to write outside the output buffer via unchecked sparse accessor indices. Attackers can supply a crafted glTF or GLB file with large sparse indices to corrupt heap memory, crash applications, and potentially execute code when cgltf_validate() is not called.","summary":"cgltf, a C library for loading glTF and GLB 3D model files, has an unchecked sparse accessor index in cgltf_accessor_unpack_floats() that writes past the output buffer. A crafted model file can crash the application or potentially run code when the caller does not call cgltf_validate() first.","severity":"high","cvss":7.3,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["3d-assets","c","cgltf","gltf","package"],"not_affected_if":["trusted-input-only"],"how_to_check":"- unknown","fix":"- unknown","status":"open","published_at":"2026-10-18T12:17:14+00:00","first_seen_at":"2026-10-23T21:57:15+00:00","triaged_at":"2026-10-25T03:27:31+00:00","updated_at":"2026-10-25T03:27:31+00:00","category":"package","confidence":0.5,"triage":{"at":"2026-10-25T03:27:31Z","model":"claude-haiku-5-5","output":{"fix":"- unknown","reach":"unknown","title":"cgltf: heap out-of-bounds write lets a crafted glTF file corrupt memory","impact":"high","summary":"cgltf, a C library for loading glTF and GLB 3D model files, has an unchecked sparse accessor index in cgltf_accessor_unpack_floats() that writes past the output buffer. A crafted model file can crash the application or potentially run code when the caller does not call cgltf_validate() first.","category":"package","nicknames":[],"who_cares":["c","cgltf","3d-assets","gltf"],"confidence":0.5,"needs_auth":"no","worst_case":"crashes the app or potentially runs code on the host","analyst_note":"Check the NVD entry and the cgltf upstream repository for the fixed version, the exact exploitability, and whether cgltf_validate() blocks the path.","how_to_check":"- unknown","needs_analyst":true,"not_affected_if":["trusted-input-only"],"who_is_affected":"Applications that embed cgltf through 1.15 and load untrusted glTF or GLB files, such as viewers, converters or asset pipelines that accept uploads. The sources do not say which builds or versions beyond 1.15 are unaffected, and whether calling cgltf_validate() fully prevents the issue is not stated in the sources. Applications that only load trusted, locally authored models are less exposed.","user_interaction":"yes","needs_special_setup":"unknown","severity_if_unknown":"unknown"},"cost_usd":0.000595,"input_tokens":3363,"output_tokens":518,"severity_before":"high"},"analyst_status":null,"analyst_note":null,"search":"'-112018':17A,20A '-2026':16A,19A '1.15':80C '3d':22B,37B '3d-assets':21B 'accessor':44B,48B,92C,107C 'allow':96C 'applic':64B,127C 'asset':23B 'attack':97C,109C 'bound':6A,87C 'buffer':56B,103C 'c':24B,30B 'call':74B,137C 'caller':71B 'cgltf':1A,25B,28B,47B,75B,78C,91C,133C 'code':68B,131C 'contain':81C 'corrupt':13A,123C 'craft':10A,58B,113C 'crash':62B,126C 'cve':15A,18A 'execut':130C 'file':12A,39B,60B,117C 'first':77B 'float':50B,94C 'glb':36B,116C 'gltf':11A,26B,34B,114C 'heap':2A,83C,124C 'index':45B 'indic':108C,121C 'larg':119C 'let':8A 'librari':31B 'load':33B 'memori':14A,125C 'model':38B,59B 'out-of-bound':3A,84C 'output':55B,102C 'outsid':100C 'packag':27B 'past':53B 'potenti':66B,129C 'run':67B 'spars':43B,106C,120C 'suppli':111C 'uncheck':42B,105C 'unpack':49B,93C 'valid':76B,134C 'via':104C 'vulner':89C 'write':7A,52B,88C,99C","nicknames":[],"mitigations":[],"who_affected":"Applications that embed cgltf through 1.15 and load untrusted glTF or GLB files, such as viewers, converters or asset pipelines that accept uploads. The sources do not say which builds or versions beyond 1.15 are unaffected, and whether calling cgltf_validate() fully prevents the issue is not stated in the sources. Applications that only load trusted, locally authored models are less exposed.","tier":"B","verified":{},"analyst_revisit_at":null,"first_public_at":"2026-10-18T12:17:14+00:00","kev":null,"cvss_vector":"CVSS:4.0/AV:L/AC:L/AT:P/PR:N/UI:P/VC:H/VI:H/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","cvss_by":"disclosure@vulncheck.com","poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-112018","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-112018","severity":null,"published_at":"2026-10-18T12:17:14+00:00","modified_at":"2026-10-19T19:17:25+00:00","first_seen_at":"2026-10-23T21:57:15+00:00","fetched_at":"2026-10-23T22:28:55+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"}