{"id":"CVE-2025-10284","kind":"vulnerability","aliases":["CVE-2025-10284","GHSA-fhw8-8v9p-7jp7"],"related":[],"title":"BBOT's various issues in unarchive.py can cause arbitrary file write and RCE","description":"### Summary\n\nVarious issues in bbot's `unarchive.py` allow a malicious site to cause bbot to write arbitrary files to arbitrary locations. This can be used to achieve Remote Code Execution (RCE).\n\n### Impact\n\nA user who uses bbot to scan a malicious webserver may have arbitrary code executed on their system.","summary":"BBOT's unarchive.py extracts archives from scanned web servers without checking destination paths, so a crafted archive can write files to arbitrary locations. An attacker who controls a site a user scans can use this to execute code on the scanning machine.","severity":"critical","cvss":9.6,"epss":0.00712,"exploited":false,"exploited_at":null,"products":[{"name":"bbot","fixed":["2.7.0"],"affected":"< 2.7.0","ecosystem":"pypi"}],"ecosystems":["pypi"],"tags":["bbot","cwe-22","package","pypi","python","security-scanning"],"not_affected_if":["bbot-2.7.0-or-later","no-untrusted-scan-targets"],"how_to_check":"- `pip show bbot` to read the installed version\n- Check whether the installed version is below `2.7.0`","fix":"- Upgrade the bbot package to `2.7.0` or later\n- Until upgraded, avoid scanning untrusted hosts from machines with sensitive files or credentials","status":"open","published_at":"2025-10-09T16:15:44+00:00","first_seen_at":"2026-10-27T15:18:30+00:00","triaged_at":"2026-10-27T15:19:04+00:00","updated_at":"2026-10-27T15:32:59+00:00","category":"package","confidence":0.7,"triage":{"at":"2026-10-27T15:19:04Z","model":"claude-haiku-5-5","output":{"fix":"- Upgrade the bbot package to `2.7.0` or later\n- Until upgraded, avoid scanning untrusted hosts from machines with sensitive files or credentials","reach":"internet","title":"BBOT: archive extraction lets a malicious web server write files and run code","impact":"high","summary":"BBOT's unarchive.py extracts archives from scanned web servers without checking destination paths, so a crafted archive can write files to arbitrary locations. An attacker who controls a site a user scans can use this to execute code on the scanning machine.","category":"package","nicknames":[],"who_cares":["python","pypi","bbot","security-scanning"],"confidence":0.7,"needs_auth":"no","worst_case":"Attacker writes files on scanner host and executes code","analyst_note":"","how_to_check":"- `pip show bbot` to read the installed version\n- Check whether the installed version is below `2.7.0`","needs_analyst":false,"not_affected_if":["bbot-2.7.0-or-later","no-untrusted-scan-targets"],"who_is_affected":"Anyone who runs BBOT below `2.7.0` to scan websites they do not control can be exposed, because the flaw is triggered by the content the scanned server returns. Teams that only scan their own assets or do not run BBOT can skip it.","user_interaction":"yes","needs_special_setup":"unknown","severity_if_unknown":"critical"},"cost_usd":0.000582,"input_tokens":3379,"output_tokens":488,"severity_before":"critical"},"analyst_status":null,"analyst_note":null,"search":"'-10284':16A,24A '-2025':15A,23A '-22':28B '7jp7':21A '8v9p':20A 'achiev':103C 'allow':84C 'arbitrari':9A,56B,93C,96C,121C 'archiv':39B,51B 'attack':59B 'bbot':1A,25A,26B,35B,81C,90C,113C 'caus':8A,89C 'check':45B 'code':72B,105C,122C 'control':61B 'craft':50B 'cve':14A,22A 'cwe':27B 'destin':46B 'execut':71B,106C,123C 'extract':38B 'fhw8':19A 'file':10A,54B,94C 'ghsa':18A 'ghsa-fhw8-8v9p-7jp7':17A 'impact':108C 'issu':4A,79C 'locat':57B,97C 'machin':76B 'malici':86C,117C 'may':119C 'packag':29B 'path':47B 'pypi':30B 'python':31B 'rce':13A,107C 'remot':104C 'scan':34B,41B,66B,75B,115C 'secur':33B 'security-scan':32B 'server':43B 'site':63B,87C 'summari':77C 'system':126C 'unarchive.py':6A,37B,83C 'use':68B,101C,112C 'user':65B,110C 'various':3A,78C 'web':42B 'webserv':118C 'without':44B 'write':11A,53B,92C","nicknames":[],"mitigations":[],"who_affected":"Anyone who runs BBOT below `2.7.0` to scan websites they do not control can be exposed, because the flaw is triggered by the content the scanned server returns. Teams that only scan their own assets or do not run BBOT can skip it.","tier":"B","verified":{},"analyst_revisit_at":null,"first_public_at":"2025-10-09T16:15:44+00:00","kev":null,"cvss_vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:H","cvss_by":"GitHub","poc_count":0,"sources":[{"source":"ghsa","external_id":"GHSA-fhw8-8v9p-7jp7","url":"https://github.com/advisories/GHSA-fhw8-8v9p-7jp7","severity":"critical","published_at":"2025-10-09T22:22:11+00:00","modified_at":"2026-10-27T15:17:29+00:00","first_seen_at":"2026-10-27T15:18:30+00:00","fetched_at":"2026-10-27T15:18:30+00:00","note":null},{"source":"nvd","external_id":"CVE-2025-10284","url":"https://nvd.nist.gov/vuln/detail/CVE-2025-10284","severity":null,"published_at":"2025-10-09T16:15:44+00:00","modified_at":"2026-10-08T13:10:00+00:00","first_seen_at":"2026-10-27T15:32:59+00:00","fetched_at":"2026-10-27T15:32:59+00:00","note":null}],"documents":[],"notice":"Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai"}