{"answers":{"affected":"1 open source package ship an affected version, including llama-index. It affects 1 product.","exploited":"It is not confirmed as exploited in the wild, but public exploit code for CVE-2024-14021 exists.","fix":"Upgrade llama-index to 0.11.7 or later.","what":"CVE-2024-14021 is a high-severity unsafe deserialization vulnerability in run-llama llama_index, published on 12 Jan 2026. It can only be exploited from the same machine or local network, and only if a user opens a file or follows a link."},"fix_prompt":"Check this codebase for CVE-2024-14021 and fix it if it is affected.\n\nWhat it is: CVE-2024-14021 is a high-severity unsafe deserialization vulnerability in run-llama llama_index, published on 12 Jan 2026. It can only be exploited from the same machine or local network, and only if a user opens a file or follows a link.\nExploitation: It is not confirmed as exploited in the wild, but public exploit code for CVE-2024-14021 exists.\n\nAffected packages and fixed versions:\n- llama-index (PyPI): affected all versions; fixed in 0.11.7\n\nTask:\n1. Search the dependency manifests and lockfiles (for example package.json, package-lock.json, requirements.txt, poetry.lock, uv.lock, pom.xml, build.gradle, go.mod, Cargo.lock, Gemfile.lock) and any Dockerfiles for the affected packages, including transitive dependencies.\n2. If an affected version is in use, upgrade it to the fixed version for its release line with the project's package manager, so the lockfile is regenerated. Prefer the smallest upgrade that fixes it.\n3. If there is no fix, or the upgrade would break the build, do not guess: explain the risk and the safest workaround instead.\n4. Run the tests and summarise what changed and why.\n5. If nothing in the project is affected, say so and change nothing.\n\nReference: https://insights.sbomify.com/CVE-2024-14021/ (Markdown: https://insights.sbomify.com/CVE-2024-14021/index.md)","id":"CVE-2024-14021","markdown":"https://insights.sbomify.com/CVE-2024-14021/index.md","name":"CVE-2024-14021","record":{"aliases":["GHSA-m592-cr2f-4qg5","PYSEC-2026-85"],"analysis":{"component_type":"library","fix_type":"upgrade","impacts":["code_execution"],"network_reachable":"adjacent_or_local","non_default_config":false,"product_category":"Python LLM framework","requires_auth":"none","summary":"Attackers can execute arbitrary code by providing a malicious pickle file to LlamaIndex's BGEM3Index loader.","user_interaction":"required","vuln_class":"deserialization"},"analysis_generated_by":"qwen3.8-flash-next","assigner":"VulnCheck","cpe":[{"product":"llamaindex","vendor":"llamaindex"}],"cvss":{"score":8.4,"severity":"high","source":"cna","vector":"CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:A/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N","version":"4.0"},"cwes":[{"id":"CWE-502","name":"Deserialization of Untrusted Data"}],"description":"LlamaIndex (run-llama/llama_index) versions up to and including 0.11.6 contain an unsafe deserialization vulnerability in BGEM3Index.load_from_disk() in llama_index/indices/managed/bge_m3/base.py. The function uses pickle.load() to deserialize multi_embed_store.pkl from a user-supplied persist_dir without validation. An attacker who can provide a crafted persist directory containing a malicious pickle file can trigger arbitrary code execution when the victim loads the index from disk.","ecosystems":["PyPI"],"exploits":{"exploitdb":0,"first_seen":null,"github_poc":0,"max_poc_stars":null,"metasploit":0,"nuclei":0,"refs":[],"tier":"weaponised"},"has_fix":true,"headline":"LlamaIndex \u003c= 0.11.6 BGEM3Index Unsafe Deserialization","id":"CVE-2024-14021","indexable":true,"kev":null,"kind":"cve","links":{"ecosystem":"PyPI","product":null,"products":[],"type":"deserialization","year":"2024"},"n_packages":1,"n_references":4,"next":{"headline":"Video Station","id":"CVE-2024-14024"},"packages":[{"ecosystem":"PyPI","fixed":["0.11.7"],"introduced":["0"],"last_affected":[],"package":"llama-index","purl":"pkg:pypi/llama-index","source":"PYSEC-2026-85"}],"prev":{"headline":"carboneio carbone Formatter input.js prototype pollution","id":"CVE-2024-14020"},"products":["llama_index"],"published":"2026-01-12","related":[{"cvss_score":10,"headline":"SQL Injection to RCE in run-llama/llama_index","id":"CVE-2024-12909","kev_date_added":null,"published":"2025-03-20"},{"cvss_score":9.8,"headline":"SQL Injection in run-llama/llama_index","id":"CVE-2025-1793","kev_date_added":null,"published":"2025-06-05"},{"cvss_score":9.8,"headline":"SQL Injection in run-llama/llama_index","id":"CVE-2025-1750","kev_date_added":null,"published":"2025-06-02"},{"cvss_score":9.8,"headline":"SQL Injection in run-llama/llama_index","id":"CVE-2024-11958","kev_date_added":null,"published":"2025-03-20"},{"cvss_score":9.8,"headline":"Command Injection in run-llama/llama_index","id":"CVE-2024-3271","kev_date_added":null,"published":"2024-04-16"},{"cvss_score":9.8,"headline":"SQL injection in llama-index","id":"CVE-2024-23751","kev_date_added":null,"published":"2024-01-22"},{"cvss_score":8.8,"headline":"LlamaIndex includes an exec call for `import {cls_name}`","id":"CVE-2024-45201","kev_date_added":null,"published":"2024-08-22"}],"sources":[{"class":"attribution","licence":"CVE Terms of Use (MITRE)","name":"CVE List","prefix":"CVE"},{"class":"attribution","licence":"CC BY 4.0","name":"PyPA Advisory Database","prefix":"PYSEC"},{"class":"attribution","licence":"US public information, NVD API terms","name":"NVD"},{"class":"attribution","licence":"CWE Terms of Use","name":"CWE (MITRE)"},{"class":"attribution","licence":"FIRST CVSS licence","name":"CVSS (FIRST)"}],"ssvc":{"automatable":"no","exploitation":"poc","technical_impact":"total"},"state":"PUBLISHED","updated":"2026-07-28","vendors":["run-llama"]},"summary":"Attackers can execute arbitrary code by providing a malicious pickle file to LlamaIndex's BGEM3Index loader.","url":"https://insights.sbomify.com/CVE-2024-14021/"}