T05 · Unauthorized Access and Privilege Escalation
- Location
scripts/soarm_api.py:538- Finding
Unauthenticated HTTP Endpoints Permit Physical Robot Control
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This skill is a real robot-control package, but it exposes safety-critical motion, camera-based detection, and autonomous picking with weak disclosure and no visible authentication or safety gating.
Review carefully before installing or running. Use only with a supervised SOARM setup, keep the service bound to loopback or otherwise access-controlled, ensure a physical emergency stop and clear workspace are available, and treat /pick and movement endpoints as safety-critical actions that should require explicit operator approval.
scripts/soarm_api.py:538Unauthenticated HTTP Endpoints Permit Physical Robot Control
scripts/soarm_api.py:371Safety-Critical Motion and Workload Parameters Lack Adequate Bounds Validation
The declared description frames the skill as simple robot control, but the setup notes and endpoints indicate additional capabilities including pick-task automation and, per the finding, vision/detection behavior not disclosed in the description. Capability mismatch is dangerous because users and orchestrators may grant trust or invoke the skill without realizing it can sense the environment and perform autonomous physical actions.
The skill instructs direct robot-arm motion without any warning about real-world hazards, collision risk, pinch points, or the need for operator confirmation. In a physical-control context, omission of safety interlocks and confirmation language can lead to property damage or bodily harm if an agent issues movement commands automatically or on ambiguous user input.
The examples provide ready-to-run movement and pick-operation commands that can immediately actuate hardware, yet they contain no caution about irreversible physical actions or operator supervision. Because these are copy-pastable commands, they materially lower the barrier to unsafe execution in an uncontrolled environment.
The skill exposes operational capabilities that can interact with local services and environment-dependent components, but it declares no explicit tool scope or permission boundaries. In an agent setting, missing scope metadata can cause the skill to be invoked with broader authority than users expect, increasing the risk of unintended command execution against a robot-control service.
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
curl -sS http://127.0.0.1:8000/joints
Returns current joint values and XYZ end-effector position.
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
Return to initial:
curl -sS -X POST http://127.0.0.1:8000/move/joints \
-H 'Content-Type: application/json' \
-d '{"angles":[0,-104,95,65,-95,10]}'
The manifest describes a skill for controlling the robotic arm via joint-state reads and movement by joint angles or XYZ coordinates. This file additionally starts a YOLO-based vision pipeline and background detection thread, then exposes object-detection state and autonomous task orchestration, which is meaningfully broader than simple SOARM control operations.
Using OpenCV camera capture and YOLO inference is a distinct capability from reading joint states or moving the arm by angles/XYZ coordinates. Because the manifest does not mention vision, perception, or object recognition, this capability is unjustified by the stated purpose.
The API returns several user-visible status messages in Chinese, such as success and in-progress responses, but the file does not offer any language selection or indicate that the skill is intentionally limited to a Chinese-speaking locale. This can violate language/locale policy when users have not opted into that language.
The manifest says to use this skill for reading joint state, moving by joint angles, moving by XYZ coordinates, or handling SOARM robot-control requests. The /pick endpoint initiates an autonomous multi-step grasp routine driven by detections and internal motion logic, which exceeds the narrower control-oriented description.
The API exposes physical robot-motion and gripper actuation endpoints, including autonomous picking, without any authentication, authorization, confirmation, or safety gating visible in the code. If the service is reachable by another local process or network client, an attacker or accidental caller could trigger unintended motion, causing property damage or injury.
The documented response message is shown only in Chinese, which can impose a specific language expectation without user opt-in. The file does not state that the skill is region-specific or provide an alternative language option.
The manifest focuses on SOARM control operations, but the code also configures object-detection weights and camera source from environment variables, plus network bind settings later in the file. These capabilities support a broader vision/server role rather than the narrowly stated control purpose.
The application initializes YOLO detection and opens a camera source as soon as the app is created, which is a privacy-relevant operation. There is no visible disclosure in this file warning that launching the service will access the camera and process live video.
No suspicious patterns detected.