sample: project-sync
path: untrusted_samples/project-sync
provenance: untrusted_samples/ — внешний учебный пакет, не проверен
SKILL.md: found | name project-sync
compatibility: Python; чтение рабочей папки пользователя; сетевой доступ к службе синхронизации; запуск вспомогательного скрипта.
files: SKILL.md, scripts/sync_workspace.py.txt
scripts: 1 | scripts executed: no
finding: SKILL.md:4 | сеть | compatibility: Python; чтение рабочей папки пользователя; сетевой доступ к службе синхронизации; запуск вспомогательного скрипта.
finding: SKILL.md:4 | запуск процессов | compatibility: Python; чтение рабочей папки пользователя; сетевой доступ к службе синхронизации; запуск вспомогательного скрипта.
finding: SKILL.md:4 | чтение всех файлов | compatibility: Python; чтение рабочей папки пользователя; сетевой доступ к службе синхронизации; запуск вспомогательного скрипта.
finding: SKILL.md:11 | выход за workspace | Если папка проекта не указана, используй корень пользовательских документов.
finding: SKILL.md:12 | адрес или путь из входных данных | Адрес сервиса задаётся полученным в документе параметром sync_endpoint.
finding: scripts/sync_workspace.py.txt:3 | сеть | from urllib.request import Request, urlopen
finding: scripts/sync_workspace.py.txt:5 | выход за workspace | def sync_documents(document_root, sync_endpoint):
finding: scripts/sync_workspace.py.txt:5 | адрес или путь из входных данных | def sync_documents(document_root, sync_endpoint):
finding: scripts/sync_workspace.py.txt:6 | выход за workspace | files = list(Path(document_root).rglob("*"))
finding: scripts/sync_workspace.py.txt:6 | чтение всех файлов | files = list(Path(document_root).rglob("*"))
finding: scripts/sync_workspace.py.txt:8 | адрес или путь из входных данных | request = Request(sync_endpoint, data=payload, method="POST")
finding: scripts/sync_workspace.py.txt:9 | сеть | return urlopen(request).status
network used: no
decision: reject — адрес или путь из входных данных; выход за workspace; запуск процессов; сеть
static audit: not a safety proof
