{"id":"CVE-2026-24009","aliases":["EUVD-2026-3807","GHSA-vqxf-v2gg-x3hc","PYSEC-2026-1313"],"status":"published","title":"Docling Core vulnerable to Remote Code Execution via unsafe PyYAML usage","description":"Docling Core (or docling-core) is a library that defines core data types and transformations in the document processing application Docling. A PyYAML-related Remote Code Execution (RCE) vulnerability, namely CVE-2020-14343, is exposed in docling-core starting in version 2.21.0 and prior to version 2.48.4, specifically only if the application uses pyyaml prior to version 5.4 and invokes `docling_core.types.doc.DoclingDocument.load_from_yaml()` passing it untrusted YAML data. The vulnerability has been patched in docling-core version 2.48.4. The fix mitigates the issue by switching `PyYAML` deserialization from `yaml.FullLoader` to `yaml.SafeLoader`, ensuring that untrusted data cannot trigger code execution. Users who cannot immediately upgrade docling-core can alternatively ensure that the installed version of PyYAML is 5.4 or greater.","severity":{"version":"3.1","score":8.1,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"high","assessor":"cna","from":"cve"},"epss":{"day":"2026-11-09","score":0.01534,"percentile":0.75001,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":true,"fix_available":true},"cwes":["CWE-502"],"published":"2026-01-22T15:04:52Z","modified":"2026-10-28T02:30:30Z","exploits":[{"source":"pocgithub","id":"BiranPeretz/docling-core-CVE-2026-24009","title":"BiranPeretz/docling-core-CVE-2026-24009","date":"2026-02-26","url":"https://github.com/BiranPeretz/docling-core-CVE-2026-24009"}],"fixes":[{"ecosystem":"PyPI","package":"docling-core","fixed_in":["2.48.4"],"sources":["ghsa","osv"]}],"affected":[{"source":"ghsa","ecosystem":"PyPI","package":"docling-core","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"2.21.0"},{"fixed":"2.48.4"}]}]},{"source":"osv","ecosystem":"PyPI","package":"docling-core","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"2.21.0"},{"fixed":"2.48.4"}]}],"versions":["2.21.0","2.21.1","2.21.2","2.22.0","2.23.0","2.23.1","2.23.2","2.23.3","2.24.0","2.24.1","2.25.0","2.26.0","2.26.1","2.26.2","2.26.3","2.26.4","2.27.0","2.28.0","2.28.1","2.29.0","2.30.0","2.30.1","2.31.0","2.31.1","2.31.2","2.32.0","2.33.0","2.33.1","2.34.0","2.34.1","2.34.2","2.35.0","2.36.0","2.37.0","2.38.0","2.38.1","2.38.2","2.39.0","2.40.0","2.41.0","2.42.0","2.43.0","2.43.1","2.44.0","2.44.1","2.44.2","2.45.0","2.46.0","2.47.0","2.48.0","2.48.1","2.48.2","2.48.3"]},{"source":"osv","ecosystem":"PyPI","package":"docling-core","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"2.21.0"},{"fixed":"2.48.4"}]}],"versions":["2.21.0","2.21.1","2.21.2","2.22.0","2.23.0","2.23.1","2.23.2","2.23.3","2.24.0","2.24.1","2.25.0","2.26.0","2.26.1","2.26.2","2.26.3","2.26.4","2.27.0","2.28.0","2.28.1","2.29.0","2.30.0","2.30.1","2.31.0","2.31.1","2.31.2","2.32.0","2.33.0","2.33.1","2.34.0","2.34.1","2.34.2","2.35.0","2.36.0","2.37.0","2.38.0","2.38.1","2.38.2","2.39.0","2.40.0","2.41.0","2.42.0","2.43.0","2.43.1","2.44.0","2.44.1","2.44.2","2.45.0","2.46.0","2.47.0","2.48.0","2.48.1","2.48.2","2.48.3"]}],"products":[{"vendor":"docling","product":"docling-core"},{"vendor":"docling-project","product":"docling-core"}],"references":[{"url":"https://github.com/docling-project/docling-core/security/advisories/GHSA-vqxf-v2gg-x3hc","tags":["x_refsource_CONFIRM","Mitigation","Patch","Vendor Advisory","advisory","web"]},{"url":"https://github.com/docling-project/docling-core/issues/482","tags":["x_refsource_MISC","Issue Tracking","report","web"]},{"url":"https://github.com/docling-project/docling-core/commit/3e8d628eeeae50f0f8f239c8c7fea773d065d80c","tags":["x_refsource_MISC","Patch","fix","web"]},{"url":"https://github.com/advisories/GHSA-8q59-q68h-6hv4","tags":["x_refsource_MISC","Not Applicable","advisory"]},{"url":"https://github.com/docling-project/docling-core/releases/tag/v2.48.4","tags":["x_refsource_MISC","Product","Release Notes","web"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-24009","tags":["advisory"]},{"url":"https://github.com/advisories/GHSA-vqxf-v2gg-x3hc","tags":["advisory"]},{"url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/24xxx/CVE-2026-24009.json","tags":["advisory"]},{"url":"https://github.com/docling-project/docling-core","tags":["package"]},{"url":"https://pypi.org/project/docling-core","tags":["package"]}],"sources":{"cve":[{"id":"CVE-2026-24009","title":"Docling Core vulnerable to Remote Code Execution via unsafe PyYAML usage","description":"Docling Core (or docling-core) is a library that defines core data types and transformations in the document processing application Docling. A PyYAML-related Remote Code Execution (RCE) vulnerability, namely CVE-2020-14343, is exposed in docling-core starting in version 2.21.0 and prior to version 2.48.4, specifically only if the application uses pyyaml prior to version 5.4 and invokes `docling_core.types.doc.DoclingDocument.load_from_yaml()` passing it untrusted YAML data. The vulnerability has been patched in docling-core version 2.48.4. The fix mitigates the issue by switching `PyYAML` deserialization from `yaml.FullLoader` to `yaml.SafeLoader`, ensuring that untrusted data cannot trigger code execution. Users who cannot immediately upgrade docling-core can alternatively ensure that the installed version of PyYAML is 5.4 or greater.","status":"published","published":"2026-01-22T15:04:52.745Z","modified":"2026-01-22T15:59:19.883Z","cvss":[{"version":"3.1","score":8.1,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"high","assessor":"cna"}],"cwes":["CWE-502"],"updated_at":"2026-11-02T14:19:50.575061Z"}],"euvd":[{"id":"EUVD-2026-3807","description":"Docling Core (or docling-core) is a library that defines core data types and transformations in the document processing application Docling. A PyYAML-related Remote Code Execution (RCE) vulnerability, namely CVE-2020-14343, is exposed in docling-core starting in version 2.21.0 and prior to version 2.48.4, specifically only if the application uses pyyaml prior to version 5.4 and invokes `docling_core.types.doc.DoclingDocument.load_from_yaml()` passing it untrusted YAML data. The vulnerability has been patched in docling-core version 2.48.4. The fix mitigates the issue by switching `PyYAML` deserialization from `yaml.FullLoader` to `yaml.SafeLoader`, ensuring that untrusted data cannot trigger code execution. Users who cannot immediately upgrade docling-core can alternatively ensure that the installed version of PyYAML is 5.4 or greater.","status":"published","published":"2026-01-22T15:04:52Z","modified":"2026-01-22T15:59:19Z","cvss":[{"version":"3.1","score":8.1,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"high"}],"updated_at":"2026-11-02T19:48:48.575559Z"}],"ghsa":[{"id":"GHSA-vqxf-v2gg-x3hc","title":"docling-core vulnerable to Remote Code Execution via unsafe PyYAML usage","description":"### Impact\n\nA PyYAML-related Remote Code Execution (RCE) vulnerability, namely CVE-2020-14343, is exposed in `docling-core \u003e=2.21.0, \u003c2.48.4` and, specifically only if the application uses `pyyaml \u003c 5.4` and invokes `docling_core.types.doc.DoclingDocument.load_from_yaml()` passing it untrusted YAML data.\n\n### Patches\n\nThe vulnerability has been patched in `docling-core` version **2.48.4**.\nThe fix mitigates the issue by switching `PyYAML` deserialization from `yaml.FullLoader` to `yaml.SafeLoader`, ensuring that untrusted data cannot trigger code execution.\n\n### Workarounds\n\nUsers who cannot immediately upgrade `docling-core` can alternatively ensure that the installed version of `PyYAML` is **5.4 or greater**, which supposedly patches CVE-2020-14343.\n\n### References\n\n* GitHub Issue: #482\n* Upstream Advisory: CVE-2020-14343\n* Fix Release: [v2.48.4](https://github.com/docling-project/docling-core/releases/tag/v2.48.4)","status":"published","published":"2026-01-22T18:02:45Z","modified":"2026-01-22T18:43:46Z","cvss":[{"version":"3.1","score":8.1,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"high"}],"cwes":["CWE-502"],"updated_at":"2026-11-02T14:39:19.525691Z"}],"nvd":[{"id":"CVE-2026-24009","description":"Docling Core (or docling-core) is a library that defines core data types and transformations in the document processing application Docling. A PyYAML-related Remote Code Execution (RCE) vulnerability, namely CVE-2020-14343, is exposed in docling-core starting in version 2.21.0 and prior to version 2.48.4, specifically only if the application uses pyyaml prior to version 5.4 and invokes `docling_core.types.doc.DoclingDocument.load_from_yaml()` passing it untrusted YAML data. The vulnerability has been patched in docling-core version 2.48.4. The fix mitigates the issue by switching `PyYAML` deserialization from `yaml.FullLoader` to `yaml.SafeLoader`, ensuring that untrusted data cannot trigger code execution. Users who cannot immediately upgrade docling-core can alternatively ensure that the installed version of PyYAML is 5.4 or greater.","status":"published","published":"2026-01-22T16:16:09.32Z","modified":"2026-06-17T10:22:28.303Z","cvss":[{"version":"3.1","score":8.1,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"high","assessor":"secondary"},{"version":"3.1","score":9.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"critical","assessor":"primary"}],"cwes":["CWE-502"],"updated_at":"2026-11-02T14:12:04.423757Z"}],"osv":[{"id":"CVE-2026-24009","title":"Docling Core vulnerable to Remote Code Execution via unsafe PyYAML usage","description":"Docling Core (or docling-core) is a library that defines core data types and transformations in the document processing application Docling. A PyYAML-related Remote Code Execution (RCE) vulnerability, namely CVE-2020-14343, is exposed in docling-core starting in version 2.21.0 and prior to version 2.48.4, specifically only if the application uses pyyaml prior to version 5.4 and invokes `docling_core.types.doc.DoclingDocument.load_from_yaml()` passing it untrusted YAML data. The vulnerability has been patched in docling-core version 2.48.4. The fix mitigates the issue by switching `PyYAML` deserialization from `yaml.FullLoader` to `yaml.SafeLoader`, ensuring that untrusted data cannot trigger code execution. Users who cannot immediately upgrade docling-core can alternatively ensure that the installed version of PyYAML is 5.4 or greater.","status":"published","published":"2026-01-22T15:04:52.745Z","modified":"2026-10-28T02:30:30.800480034Z","cvss":[{"version":"3.1","score":8.1,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"high"}],"cwes":["CWE-502"],"updated_at":"2026-11-02T15:44:59.079784Z"},{"id":"GHSA-vqxf-v2gg-x3hc","title":"docling-core vulnerable to Remote Code Execution via unsafe PyYAML usage","description":"### Impact\n\nA PyYAML-related Remote Code Execution (RCE) vulnerability, namely CVE-2020-14343, is exposed in `docling-core \u003e=2.21.0, \u003c2.48.4` and, specifically only if the application uses `pyyaml \u003c 5.4` and invokes `docling_core.types.doc.DoclingDocument.load_from_yaml()` passing it untrusted YAML data.\n\n### Patches\n\nThe vulnerability has been patched in `docling-core` version **2.48.4**.\nThe fix mitigates the issue by switching `PyYAML` deserialization from `yaml.FullLoader` to `yaml.SafeLoader`, ensuring that untrusted data cannot trigger code execution.\n\n### Workarounds\n\nUsers who cannot immediately upgrade `docling-core` can alternatively ensure that the installed version of `PyYAML` is **5.4 or greater**, which supposedly patches CVE-2020-14343.\n\n### References\n\n* GitHub Issue: #482\n* Upstream Advisory: CVE-2020-14343\n* Fix Release: [v2.48.4](https://github.com/docling-project/docling-core/releases/tag/v2.48.4)","status":"published","published":"2026-01-22T18:02:45Z","modified":"2026-07-07T17:56:50.418251461Z","cvss":[{"version":"3.1","score":8.1,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"high"}],"cwes":["CWE-502"],"updated_at":"2026-11-02T15:46:57.694388Z"},{"id":"PYSEC-2026-1313","title":"docling-core vulnerable to Remote Code Execution via unsafe PyYAML usage","description":"### Impact\n\nA PyYAML-related Remote Code Execution (RCE) vulnerability, namely CVE-2020-14343, is exposed in `docling-core \u003e=2.21.0, \u003c2.48.4` and, specifically only if the application uses `pyyaml \u003c 5.4` and invokes `docling_core.types.doc.DoclingDocument.load_from_yaml()` passing it untrusted YAML data.\n\n### Patches\n\nThe vulnerability has been patched in `docling-core` version **2.48.4**.\nThe fix mitigates the issue by switching `PyYAML` deserialization from `yaml.FullLoader` to `yaml.SafeLoader`, ensuring that untrusted data cannot trigger code execution.\n\n### Workarounds\n\nUsers who cannot immediately upgrade `docling-core` can alternatively ensure that the installed version of `PyYAML` is **5.4 or greater**, which supposedly patches CVE-2020-14343.\n\n### References\n\n* GitHub Issue: #482\n* Upstream Advisory: CVE-2020-14343\n* Fix Release: [v2.48.4](https://github.com/docling-project/docling-core/releases/tag/v2.48.4)","status":"published","published":"2026-07-07T16:03:19.816786Z","modified":"2026-07-07T17:46:38.921284013Z","cvss":[{"version":"3.1","score":8.1,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"high"}],"updated_at":"2026-11-02T15:52:54.622769Z"}]}}
