Skill flagged — suspicious patterns detected

ClawHub Security flagged this skill as suspicious. Review the scan results before using.

Basic Object Detection Skill | 基础目标检测技能

v1.0.0

Detects people, vehicles, non-motorized vehicles, pets, and parcels appearing in the target area. Supports video stream and image detection, suitable for gen...

0· 30·0 current·0 all-time
bysmyx-skills@18072937735
MIT-0
Download zip
LicenseMIT-0 · Free to use, modify, and redistribute. No attribution required.
Security Scan
VirusTotalVirusTotal
Suspicious
View report →
OpenClawOpenClaw
Suspicious
medium confidence
Purpose & Capability
The skill's name/description (basic object detection) matches the main scripts (scripts/basic_object_detection_analysis.py) which call remote analysis APIs and upload media. However the bundle also contains unrelated/adjacent features (face_analysis, pet-health references, a large 'smyx_common' library) which expands the code footprint beyond a minimal object-detection helper. That extra code may be legitimate reuse but is larger than the stated purpose.
!
Instruction Scope
SKILL.md imposes strict run-time rules (forbid reading local memory files / LanceDB, require cloud-only historical-report lookups) but the included codebase contains modules that read/write local config (BaseEnum/YamlUtil will create config.yaml if missing), a local SQLite DAO, and file I/O for validating/reading input media. The instructions require reading config files inside the skill/workspace to obtain open-id, which contradicts the rule that no local memory be used. The script will also read environment variables (e.g. OPENCLAW_SENDER_OPEN_ID, OPENCLAW_WORKSPACE, FEISHU_OPEN_ID) even though these are not declared in the metadata.
Install Mechanism
No install spec is provided (no network download/install step), which lowers installer risk. However the package includes large requirements files (skills/smyx_common/requirements.txt) listing many third-party libraries; if you install these dependencies they broaden attack surface. No external binary downloads or obfuscated installers were seen in the manifest.
!
Credentials
Registry metadata lists no required env vars, but code reads multiple environment variables (OPENCLAW_SENDER_OPEN_ID, OPENCLAW_SENDER_USERNAME, FEISHU_OPEN_ID, OPENCLAW_WORKSPACE) and will write files under a workspace/data path. The skill optionally accepts an API key and will POST media to configured API endpoints. RequestUtil/http_post behavior is central but its implementation was not included in the provided excerpts — that function determines what headers/credentials are sent. Asking for or auto-loading open-id from local configs and environment is reasonable for multi-tenant APIs, but the mismatch between declared and actually accessed env/config sources is disproportionate and worth auditing.
!
Persistence & Privilege
Skill is not 'always' enabled and does not request elevated platform privileges. However the code can create and modify config.yaml files (BaseEnum/YamlUtil auto-creates config files if missing) and will create a SQLite DB under the workspace/data path via the DAO. That means the skill can persist data into the shared workspace and may interact with other skill data if they share the same workspace. Combined with network calls that upload files/results, this persistence increases the blast radius and contradicts the SKILL.md 'do not use local memory' rule.
What to consider before installing
Things to check before installing or running this skill: - Audit RequestUtil (skills/smyx_common/scripts/util.py) and any http_post/http_get functions to see what headers and env/config values they include in requests (do they send API keys, tokens, or other environment data?). This is the most important review step. - Confirm you are comfortable with the skill creating/editing files in the workspace: it may auto-create config.yaml files and a SQLite DB under ${OPENCLAW_WORKSPACE}/data. If you run the skill in a shared workspace, it could persist data accessible to other code. - The SKILL.md forbids reading local 'memory' files, but the codebase reads local config and can write persistent DB/config files — verify whether historical-report access truly uses only cloud APIs as the doc requires. - Review and, if possible, restrict the API base URLs in skills/smyx_common/scripts/config.yaml (they default to lifeemergence/open-api URLs and dev/internal IPs are present in other configs). Ensure the endpoints are ones you trust and that you control the API key you pass to the script. - If you only want object detection and not the larger feature set, consider extracting/running only scripts/basic_object_detection_analysis.py after inspecting RequestUtil and config behavior. - Run the skill first in an isolated sandbox environment (no sensitive environment variables present, isolated workspace) and monitor network traffic to validate which endpoints are contacted and what data is transmitted (media files, metadata, any environment-derived tokens). Why I marked this 'suspicious': there are legitimate uses here, but the codebase and runtime rules do not fully align with the SKILL.md claims (forbidding local memory yet reading/writing local configs/DBs; un-declared environment variables are accessed; a large reused common library and unrelated modules are bundled). These inconsistencies merit manual inspection before trusting the skill with sensitive media or credentials.
!
skills/smyx_common/scripts/config-dev.yaml:2
Install source points to URL shortener or raw IP.
About static analysis
These patterns were detected by automated regex scanning. They may be normal for skills that integrate with external APIs. Check the VirusTotal and OpenClaw results above for context-aware analysis.

Like a lobster shell, security has layers — review code before you run it.

latestvk979tfdtvgw7h7nbjnxg6ms4nx84t9zm

License

MIT-0
Free to use, modify, and redistribute. No attribution required.

Comments