{"id":"PYSEC-2026-1198","summary":"AstrBot contains a directory traversal vulnerability","details":"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.","aliases":["CVE-2025-57698","GHSA-xrj9-mw57-j34v"],"modified":"2026-07-07T17:46:22.675181274Z","published":"2026-07-07T16:03:09.885967Z","references":[{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2025-57698"},{"type":"PACKAGE","url":"https://github.com/AstrBotDevs/AstrBot"},{"type":"WEB","url":"https://github.com/DYX217/vulnerability-explore/blob/main/2/README.md"},{"type":"PACKAGE","url":"https://pypi.org/project/astrbot"},{"type":"ADVISORY","url":"https://github.com/advisories/GHSA-xrj9-mw57-j34v"}],"affected":[{"package":{"name":"astrbot","ecosystem":"PyPI","purl":"pkg:pypi/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"],"database_specific":{"source":"https://github.com/pypa/advisory-database/blob/main/vulns/astrbot/PYSEC-2026-1198.yaml"}}],"schema_version":"1.7.5","severity":[{"type":"CVSS_V4","score":"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"}]}