T09 · Insecure Skill Coding Practices
- Location
commands/embed.md:21- Finding
Shell Command Injection Through Unsafe User-Input Interpolation
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This appears to be a real deAPI media tool, but it needs Review because its examples send user content to a third party and include unsafe shell, URL, temporary-file, and webhook patterns.
Install only if you are comfortable sending prompts, text, media, URLs, and generated-output metadata to deAPI. Avoid secrets, regulated data, private signed URLs, and sensitive local files. Treat the provided curl and webhook snippets as examples that need hardening before use: serialize JSON safely, validate URLs, use private temporary files, and implement real webhook signature verification.
commands/embed.md:21Shell Command Injection Through Unsafe User-Input Interpolation
commands/ocr.md:11Unrestricted URL Retrieval Can Cause SSRF and Third-Party Data Disclosure
commands/transform-image.md:27Predictable Shared Temporary Files Permit Symlink Attacks and Data Leakage
commands/deapi-setup.md:71Generated Webhook Handlers Do Not Verify HMAC Signatures
The skill routes user-provided media, URLs, prompts, and generated outputs to an external third-party service, but the description and setup text do not clearly warn users about that data transfer. This can lead users to submit sensitive content under the mistaken assumption processing is local or first-party, creating privacy, confidentiality, and compliance risk.
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
curl -s "https://api.deapi.ai/api/v1/client/balance" \
-H "Authorization: Bearer $DEAPI_API_KEY"
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
curl -s "https://api.deapi.ai/api/v1/client/balance" \
-H "Authorization: Bearer $DEAPI_API_KEY"
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
curl -s "https://api.deapi.ai/api/v1/client/balance" \
-H "Authorization: Bearer $DEAPI_API_KEY"
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
curl -s "https://api.deapi.ai/api/v1/client/balance" \
-H "Authorization: Bearer $DEAPI_API_KEY"
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
curl -s "https://api.deapi.ai/api/v1/client/balance" \
-H "Authorization: Bearer $DEAPI_API_KEY"
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
curl -s "https://api.deapi.ai/api/v1/client/balance" \
-H "Authorization: Bearer $DEAPI_API_KEY"
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
curl -s "https://api.deapi.ai/api/v1/client/balance" \
-H "Authorization: Bearer $DEAPI_API_KEY"
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
curl -s "https://api.deapi.ai/api/v1/client/balance" \
-H "Authorization: Bearer $DEAPI_API_KEY"
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
curl -s "https://api.deapi.ai/api/v1/client/balance" \
-H "Authorization: Bearer $DEAPI_API_KEY"
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
curl -s "https://api.deapi.ai/api/v1/client/balance" \
-H "Authorization: Bearer $DEAPI_API_KEY"
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
curl -s "https://api.deapi.ai/api/v1/client/balance" \
-H "Authorization: Bearer $DEAPI_API_KEY"
The skill instructs sending arbitrary user-provided text to a third-party embedding service but does not explicitly warn that the content will leave the local environment and be processed externally. This is risky because users may paste sensitive documents, credentials, proprietary data, or personal information into an embedding workflow without informed consent about data transmission and retention implications.
The hardcoded external endpoint identifies a third-party service that will receive user content and API-authenticated requests. Even though this is the intended functionality of the skill, the absence of contextual safeguards makes accidental disclosure of confidential input more likely.
curl -s -X POST "https://api.deapi.ai/api/v1/client/txt2embedding" \
-H "Authorization: Bearer $DEAPI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
The hardcoded external endpoint identifies a third-party service that will receive user content and API-authenticated requests. Even though this is the intended functionality of the skill, the absence of contextual safeguards makes accidental disclosure of confidential input more likely.
curl -s -X POST "https://api.deapi.ai/api/v1/client/txt2embedding" \
-H "Authorization: Bearer $DEAPI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
The skill explicitly sends user-supplied text to a third-party service for text-to-speech, but it does not warn the user that their content will leave the local environment. This is a real privacy/transparency issue because users may provide sensitive text assuming the assistant processes it locally.
This command performs an outbound POST to api.deapi.ai and includes the user's text in the JSON body. In a media-generation skill this transmission is expected, but it still creates a genuine data-exposure risk if users submit confidential or regulated information without realizing it is being shared externally.
curl -s -X POST "https://api.deapi.ai/api/v1/client/txt2audio" \
-H "Authorization: Bearer $DEAPI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
This command performs an outbound POST to api.deapi.ai and includes the user's text in the JSON body. In a media-generation skill this transmission is expected, but it still creates a genuine data-exposure risk if users submit confidential or regulated information without realizing it is being shared externally.
curl -s -X POST "https://api.deapi.ai/api/v1/client/txt2audio" \
-H "Authorization: Bearer $DEAPI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
The skill sends the user's prompt directly to a third-party API for image generation but does not explicitly warn the user that their input will leave the local environment. Prompts can contain sensitive business, personal, or proprietary data, so undisclosed transmission creates a real privacy and data-governance risk even if the functionality is expected for the skill.
The hardcoded external endpoint indicates this skill is designed to send data and credentials to deAPI over the network. In context this is expected, but it still increases attack surface and privacy exposure because user content and API-key-authenticated requests leave the trusted boundary.
curl -s -X POST "https://api.deapi.ai/api/v1/client/txt2img" \
-H "Authorization: Bearer $DEAPI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
The hardcoded external endpoint indicates this skill is designed to send data and credentials to deAPI over the network. In context this is expected, but it still increases attack surface and privacy exposure because user content and API-key-authenticated requests leave the trusted boundary.
curl -s -X POST "https://api.deapi.ai/api/v1/client/txt2img" \
-H "Authorization: Bearer $DEAPI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
The skill transmits user-supplied prompts and image URLs to a third-party service without an explicit user-facing notice or consent step. Because prompts and URLs can contain sensitive, proprietary, or identifying information, this creates a privacy and data-governance risk even if the transmission is the feature's intended behavior.
This command sends user content to an external API endpoint using an API key, which is expected for the feature but still introduces data exfiltration and third-party handling risk. If users enter confidential text in prompts, that information leaves the local trust boundary and may be stored or processed by the provider.
For Text-to-Video:
curl -s -X POST "https://api.deapi.ai/api/v1/client/txt2video" \
-H "Authorization: Bearer $DEAPI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
This command sends user content to an external API endpoint using an API key, which is expected for the feature but still introduces data exfiltration and third-party handling risk. If users enter confidential text in prompts, that information leaves the local trust boundary and may be stored or processed by the provider.
For Text-to-Video:
curl -s -X POST "https://api.deapi.ai/api/v1/client/txt2video" \
-H "Authorization: Bearer $DEAPI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
The image-to-video flow sends a user-provided image URL to an external service without an explicit warning. While core to the skill's purpose, this can disclose private image locations, signed URLs, or internal resource references to the third party if users paste sensitive links.
For Image-to-Video (animation):
curl -s -X POST "https://api.deapi.ai/api/v1/client/img2video" \
-H "Authorization: Bearer $DEAPI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
No suspicious patterns detected.