{"id":"CVE-2025-57698","aliases":["EUVD-2025-38262","GHSA-xrj9-mw57-j34v","PYSEC-2026-1198"],"status":"published","title":"AstrBot contains a directory traversal vulnerability","description":"AstrBot Project v3.5.22 contains a directory traversal vulnerability. The handler function install_plugin_upload of the interface '/plugin/install-upload' parses the filename from the request body provided by the user, and directly uses the filename to assign to file_path without checking the validity of the filename. The variable file_path is then passed as a parameter to the function `file.save`, so that the file in the request body can be saved to any location in the file system through directory traversal.","severity":{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"high","assessor":"adp","from":"cve"},"epss":{"day":"2026-11-09","score":0.00834,"percentile":0.57922,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":false},"cwes":["CWE-22"],"published":"2025-11-07T00:00:00Z","modified":"2026-11-05T14:10:00Z","affected":[{"source":"ghsa","ecosystem":"PyPI","package":"astrbot","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"last_affected":"3.5.22"}]}]},{"source":"osv","ecosystem":"PyPI","package":"astrbot","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"last_affected":"3.5.22"}]}],"versions":["3.4.39","3.5.10","3.5.11","3.5.12","3.5.13","3.5.14","3.5.15","3.5.17","3.5.18","3.5.19","3.5.20","3.5.21","3.5.22","3.5.6","3.5.7","3.5.8","3.5.9"]},{"source":"osv","ecosystem":"PyPI","package":"astrbot","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"last_affected":"3.5.22"}]}],"versions":["3.4.39","3.5.10","3.5.11","3.5.12","3.5.13","3.5.14","3.5.15","3.5.17","3.5.18","3.5.19","3.5.20","3.5.21","3.5.22","3.5.6","3.5.7","3.5.8","3.5.9"]}],"products":[{"vendor":"astrbot","product":"astrbot"}],"references":[{"url":"https://github.com/DYX217/vulnerability-explore/blob/main/2/README.md","tags":["Exploit","Third Party Advisory","web"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2025-57698","tags":["advisory"]},{"url":"https://github.com/advisories/GHSA-xrj9-mw57-j34v","tags":["advisory"]},{"url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2025/57xxx/CVE-2025-57698.json","tags":["advisory"]},{"url":"https://github.com/AstrBotDevs/AstrBot","tags":["package"]},{"url":"https://pypi.org/project/astrbot","tags":["package"]}],"sources":{"cve":[{"id":"CVE-2025-57698","description":"AstrBot Project v3.5.22 contains a directory traversal vulnerability. The handler function install_plugin_upload of the interface '/plugin/install-upload' parses the filename from the request body provided by the user, and directly uses the filename to assign to file_path without checking the validity of the filename. The variable file_path is then passed as a parameter to the function `file.save`, so that the file in the request body can be saved to any location in the file system through directory traversal.","status":"published","published":"2025-11-07T00:00:00Z","modified":"2025-11-12T17:08:41.159Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"high","assessor":"adp"}],"cwes":["CWE-22"],"updated_at":"2026-11-02T14:32:34.773122Z"}],"euvd":[{"id":"EUVD-2025-38262","description":"AstrBot Project v3.5.22 contains a directory traversal vulnerability. The handler function install_plugin_upload of the interface '/plugin/install-upload' parses the filename from the request body provided by the user, and directly uses the filename to assign to file_path without checking the validity of the filename. The variable file_path is then passed as a parameter to the function `file.save`, so that the file in the request body can be saved to any location in the file system through directory traversal.","status":"published","published":"2025-11-07T00:00:00Z","modified":"2025-11-12T17:08:41Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"high"}],"updated_at":"2026-11-02T19:49:18.397537Z"}],"ghsa":[{"id":"GHSA-xrj9-mw57-j34v","title":"AstrBot contains a directory traversal vulnerability","description":"AstrBot Project v3.5.22 contains a directory traversal vulnerability. The handler function install_plugin_upload of the interface '/plugin/install-upload' parses the filename from the request body provided by the user, and directly uses the filename to assign to file_path without checking the validity of the filename. The variable file_path is then passed as a parameter to the function `file.save`, so that the file in the request body can be saved to any location in the file system through directory traversal.","status":"published","published":"2025-11-07T18:30:30Z","modified":"2025-11-07T20:49:19Z","cvss":[{"version":"4.0","score":8.7,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N","level":"high"}],"cwes":["CWE-22"],"updated_at":"2026-11-02T14:39:07.985215Z"}],"nvd":[{"id":"CVE-2025-57698","description":"AstrBot Project v3.5.22 contains a directory traversal vulnerability. The handler function install_plugin_upload of the interface '/plugin/install-upload' parses the filename from the request body provided by the user, and directly uses the filename to assign to file_path without checking the validity of the filename. The variable file_path is then passed as a parameter to the function `file.save`, so that the file in the request body can be saved to any location in the file system through directory traversal.","status":"published","published":"2025-11-07T17:15:47.66Z","modified":"2026-11-05T14:10:00.273Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"high","assessor":"secondary"}],"cwes":["CWE-22"],"updated_at":"2026-11-05T19:55:51.56159Z"}],"osv":[{"id":"CVE-2025-57698","description":"AstrBot Project v3.5.22 contains a directory traversal vulnerability. The handler function install_plugin_upload of the interface '/plugin/install-upload' parses the filename from the request body provided by the user, and directly uses the filename to assign to file_path without checking the validity of the filename. The variable file_path is then passed as a parameter to the function `file.save`, so that the file in the request body can be saved to any location in the file system through directory traversal.","status":"published","published":"2025-11-07T00:00:00Z","modified":"2026-11-07T02:30:26.421149696Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"high"}],"updated_at":"2026-11-07T03:07:57.67871Z"},{"id":"GHSA-xrj9-mw57-j34v","title":"AstrBot contains a directory traversal vulnerability","description":"AstrBot Project v3.5.22 contains a directory traversal vulnerability. The handler function install_plugin_upload of the interface '/plugin/install-upload' parses the filename from the request body provided by the user, and directly uses the filename to assign to file_path without checking the validity of the filename. The variable file_path is then passed as a parameter to the function `file.save`, so that the file in the request body can be saved to any location in the file system through directory traversal.","status":"published","published":"2025-11-07T18:30:30Z","modified":"2026-07-07T17:57:25.025726887Z","cvss":[{"version":"4.0","score":8.7,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N","level":"high"}],"cwes":["CWE-22"],"updated_at":"2026-11-02T15:47:00.198893Z"},{"id":"PYSEC-2026-1198","title":"AstrBot contains a directory traversal vulnerability","description":"AstrBot Project v3.5.22 contains a directory traversal vulnerability. The handler function install_plugin_upload of the interface '/plugin/install-upload' parses the filename from the request body provided by the user, and directly uses the filename to assign to file_path without checking the validity of the filename. The variable file_path is then passed as a parameter to the function `file.save`, so that the file in the request body can be saved to any location in the file system through directory traversal.","status":"published","published":"2026-07-07T16:03:09.885967Z","modified":"2026-07-07T17:46:22.675181274Z","cvss":[{"version":"4.0","score":8.7,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N","level":"high"}],"updated_at":"2026-11-02T15:52:54.622769Z"}]}}
