{"id":"CVE-2023-5245","aliases":["EUVD-2023-2920","GHSA-897x-xvj8-42rq"],"status":"published","title":"Using MLeap for loading a saved model (zip archive) can lead to path traversal/arbitrary file creation and possibly remote code execution.","description":"FileUtil.extract() enumerates all zip file entries and extracts each file without validating whether file paths in the archive are outside the intended directory.\n\nWhen creating an instance of TensorflowModel using the saved_model format and an exported tensorflow model, the apply() function invokes the vulnerable implementation of FileUtil.extract().\n\nArbitrary file creation can directly lead to code execution","severity":{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H","level":"high","assessor":"cna","from":"cve"},"epss":{"day":"2026-11-09","score":0.01186,"percentile":0.68081,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-22"],"published":"2023-11-15T12:52:18Z","modified":"2026-10-28T02:30:51Z","fixes":[{"ecosystem":"Maven","package":"ml.combust.mleap:mleap-runtime_2.12","fixed_in":["0.23.1"],"sources":["ghsa","osv"]}],"affected":[{"source":"ghsa","ecosystem":"Maven","package":"ml.combust.mleap:mleap-runtime_2.12","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0.23.1"}]}]},{"source":"osv","ecosystem":"Maven","package":"ml.combust.mleap:mleap-runtime_2.12","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0.23.1"}]}],"versions":["0.14.0","0.15.0","0.16.0","0.17.0","0.18.0","0.18.1","0.19.0","0.20.0","0.21.0","0.21.1","0.22.0","0.23.0"]}],"products":[{"vendor":"combust","product":"mleap"}],"references":[{"url":"https://github.com/combust/mleap/pull/866#issuecomment-1738032225","tags":["patch","x_transferred","Issue Tracking","Patch","fix","web"]},{"url":"https://research.jfrog.com/vulnerabilities/mleap-path-traversal-rce-xray-532656/","tags":["third-party-advisory","x_transferred","Exploit","Third Party Advisory","advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2023-5245","tags":["advisory"]},{"url":"https://github.com/advisories/GHSA-897x-xvj8-42rq"},{"url":"https://mvnrepository.com","tags":["web"]},{"url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2023/5xxx/CVE-2023-5245.json","tags":["advisory"]},{"url":"https://github.com/combust/mleap","tags":["package"]},{"url":"https://research.jfrog.com/vulnerabilities/mleap-path-traversal-rce-xray-532656","tags":["web"]}],"sources":{"cve":[{"id":"CVE-2023-5245","title":"Using MLeap for loading a saved model (zip archive) can lead to path traversal/arbitrary file creation and possibly remote code execution.","description":"FileUtil.extract() enumerates all zip file entries and extracts each file without validating whether file paths in the archive are outside the intended directory.\n\nWhen creating an instance of TensorflowModel using the saved_model format and an exported tensorflow model, the apply() function invokes the vulnerable implementation of FileUtil.extract().\n\nArbitrary file creation can directly lead to code execution","status":"published","published":"2023-11-15T12:52:18.656Z","modified":"2024-08-02T07:52:08.515Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H","level":"high","assessor":"cna"}],"cwes":["CWE-22"],"updated_at":"2026-11-02T14:35:17.149492Z"}],"euvd":[{"id":"EUVD-2023-2920","description":"FileUtil.extract() enumerates all zip file entries and extracts each file without validating whether file paths in the archive are outside the intended directory.\n\nWhen creating an instance of TensorflowModel using the saved_model format and an exported tensorflow model, the apply() function invokes the vulnerable implementation of FileUtil.extract().\n\nArbitrary file creation can directly lead to code execution","status":"published","published":"2023-11-15T12:52:18Z","modified":"2024-08-02T07:52:08Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H","level":"high"}],"updated_at":"2026-11-03T03:50:11.629738Z"}],"ghsa":[{"id":"GHSA-897x-xvj8-42rq","title":"Zip slip in mleap","description":"FileUtil.extract() enumerates all zip file entries and extracts each file without validating whether file paths in the archive are outside the intended directory.\n\nWhen creating an instance of TensorflowModel using the saved_model format and an exported tensorflow model, the apply() function invokes the vulnerable implementation of FileUtil.extract().\n\nArbitrary file creation can directly lead to code execution\n\n","status":"published","published":"2023-11-15T15:30:21Z","modified":"2023-11-23T03:36:17Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H","level":"high"}],"cwes":["CWE-22"],"updated_at":"2026-11-02T14:37:22.840002Z"}],"nvd":[{"id":"CVE-2023-5245","description":"FileUtil.extract() enumerates all zip file entries and extracts each file without validating whether file paths in the archive are outside the intended directory.\n\nWhen creating an instance of TensorflowModel using the saved_model format and an exported tensorflow model, the apply() function invokes the vulnerable implementation of FileUtil.extract().\n\nArbitrary file creation can directly lead to code execution","status":"published","published":"2023-11-15T13:15:07.457Z","modified":"2026-06-17T06:48:10.053Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:H/PR:L/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-22"],"updated_at":"2026-11-02T14:08:47.966245Z"}],"osv":[{"id":"CVE-2023-5245","title":"Using MLeap for loading a saved model (zip archive) can lead to path traversal/arbitrary file creation and possibly remote code execution.","description":"FileUtil.extract() enumerates all zip file entries and extracts each file without validating whether file paths in the archive are outside the intended directory.\n\nWhen creating an instance of TensorflowModel using the saved_model format and an exported tensorflow model, the apply() function invokes the vulnerable implementation of FileUtil.extract().\n\nArbitrary file creation can directly lead to code execution","status":"published","published":"2023-11-15T12:52:18.656Z","modified":"2026-10-28T02:30:51.716862928Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H","level":"high"}],"cwes":["CWE-22"],"updated_at":"2026-11-02T15:44:35.245372Z"},{"id":"GHSA-897x-xvj8-42rq","title":"Zip slip in mleap","description":"FileUtil.extract() enumerates all zip file entries and extracts each file without validating whether file paths in the archive are outside the intended directory.\n\nWhen creating an instance of TensorflowModel using the saved_model format and an exported tensorflow model, the apply() function invokes the vulnerable implementation of FileUtil.extract().\n\nArbitrary file creation can directly lead to code execution\n\n","status":"published","published":"2023-11-15T15:30:21Z","modified":"2024-02-20T05:31:38.165692Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H","level":"high"}],"cwes":["CWE-22"],"updated_at":"2026-11-02T15:46:42.077781Z"}]}}
