T08 · Insecure Dependencies
- Location
SKILLS.md:110- Finding
Unpinned Remote Dependencies and Dynamically Selected SDK Source
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The package is not clearly malicious, but it mixes unrelated artifacts and asks agents to use unpinned remote code and under-hardened API-proxy patterns.
Review before installing. Use this only in a disposable or well-contained workspace, pin npm dependencies and remote references before running setup commands, and do not expose the sample /api/chat proxy publicly unless you add authentication, rate limits, request validation, logging redaction, and spending controls. Confirm that the unrelated Velclaw, Terraform, OpenShift, and curl artifacts are intentional before trusting the package as a focused skill.
SKILLS.md:110Unpinned Remote Dependencies and Dynamically Selected SDK Source
README.md:67Credential-Backed Proxy Example Lacks Authentication and Abuse Controls
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
git clone https://github.com/Velclaw/Velclaw.git cd Velclaw npm install cp .env.example .env # điền API key của bạn npm run dev
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
git clone https://github.com/Velclaw/Velclaw.git cd Velclaw npm install cp .env.example .env # điền API key của bạn npm run dev
Hidden instructions were detected in comments or invisible text. These could contain malicious directives. Manual review is recommended.
</div>
</header>
<!-- ============ HERO (merged from trang chủ developer.hashicorp.com) ============ -->
<section class="hero" id="hero">
<div>
<div class="hero-eyebrow"><span class="dot"></span> Terraform CLI · Tutorial trực tiếp</div>
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
];
const TECH_BADGES = [
"Node.js", "Anthropic API", "GitHub", "VS Code", "JetBrains Mono", ".env",
"REST", "Claude", "Express",
];
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
];
const TECH_BADGES = [
"Node.js", "Anthropic API", "GitHub", "VS Code", "JetBrains Mono", ".env",
"REST", "Claude", "Express",
];
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
];
const TECH_BADGES = [
"Node.js", "Anthropic API", "GitHub", "VS Code", "JetBrains Mono", ".env",
"REST", "Claude", "Express",
];
The README mandates logging for every request but does not warn that AI prompts, responses, headers, or third-party payloads may contain sensitive user data or secrets. In an agent platform that proxies user content to external AI providers, indiscriminate logging can create a secondary data-exposure path through logs, retention systems, and operator access.
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
app.post('/api/chat', async (req, res) => {
const r = await fetch('https://api.example-provider.com/v1/messages', {
method: 'POST',
headers: { 'Authorization': `Bearer ${process.env.THIRD_PARTY_API_KEY}` },
body: JSON.stringify(req.body)
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
```js
app.post('/api/chat', async (req, res) => {
const r = await fetch('https://api.example-provider.com/v1/messages', {
method: 'POST',
headers: { 'Authorization': `Bearer ${process.env.THIRD_PARTY_API_KEY}` },
body: JSON.stringify(req.body)
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
app.post('/api/chat', async (req, res) => {
const r = await fetch('https://api.example-provider.com/v1/messages', {
method: 'POST',
headers: { 'Authorization': `Bearer ${process.env.THIRD_PARTY_API_KEY}` },
body: JSON.stringify(req.body)
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
app.post('/api/chat', async (req, res) => {
const r = await fetch('https://api.example-provider.com/v1/messages', {
method: 'POST',
headers: { 'Authorization': `Bearer ${process.env.THIRD_PARTY_API_KEY}` },
body: JSON.stringify(req.body)
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
```js
app.post('/api/chat', async (req, res) => {
const r = await fetch('https://api.example-provider.com/v1/messages', {
method: 'POST',
headers: { 'Authorization': `Bearer ${process.env.THIRD_PARTY_API_KEY}` },
body: JSON.stringify(req.body)
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
app.post('/api/chat', async (req, res) => {
const r = await fetch('https://api.example-provider.com/v1/messages', {
method: 'POST',
headers: { 'Authorization': `Bearer ${process.env.THIRD_PARTY_API_KEY}` },
body: JSON.stringify(req.body)
Tool defaults are unsafe or overly permissive (e.g. disabled TLS verification, no authentication, world-writable permissions). Unsafe defaults widen the attack surface.
npm install -D tsx
npm pkg set scripts.dev="cross-env NODE_ENV=development concurrently 'cross-env INPUT=mcp-app.html vite build --watch' 'tsx --watch main.ts'"
[!NOTE]
The HTML document declares lang="vi", and the visible navigation and tutorial content are written in Vietnamese throughout the page, which effectively fixes the skill experience to a specific language. The file does not indicate that this is an optional locale, provide a language switch, or document a region-specific justification for the restriction.
This code embeds navigation and broader interface copy in a single language, and the rest of the file continues that pattern throughout the UI. Under the policy rules, forcing a specific language without user opt-in is a natural-language locale policy violation.
The README explicitly promotes logging every request as mandatory but does not warn about excluding prompts, personal data, credentials, session tokens, or model outputs from logs. In an AI workspace that brokers many agents and user interactions, indiscriminate request logging can create a secondary sensitive-data store that increases breach impact and privacy/compliance risk.
The example backend forwards the entire request body to a third-party AI provider without any notice about external data transfer, minimization, or consent. In this context, agent prompts and uploaded content may contain confidential or regulated data, so documenting blind forwarding can lead adopters to transmit sensitive information off-platform without appropriate safeguards.
The user-facing labels, feature descriptions, FAQ, and other interface text are written entirely in Vietnamese, and the file does not indicate that the skill is intentionally region-specific or that users can opt into another language. This creates a natural-language locale policy issue because the experience appears to force a specific language by default.
The natural-language instructions and descriptions in this file are all in Vietnamese, with no indication that users can choose another language or that the project is intentionally limited to a Vietnamese-speaking audience. Per the policy, forcing a specific language without opt-in is a locale/language policy concern.
Skill's behavior or capabilities extend beyond its stated purpose. Scope creep allows an agent to perform actions unrelated to its documented functionality, increasing the attack surface.
You can choose to also install additional operators that are recommended for the use of certain OpenShift AI features. If they are not already installed on your cluster, you can choose to include them in the add-on installation. Or, you can install them at anytime by using OperatorHub or by following the operator-specific installation steps. To use these operators, you must [disable outbound traffic protection](https://cloud.ibm.com/docs/openshift?topic=openshift-sbd-allow-outbound&format=markdown) for your cluster.
You are responsible for managing these operators, including but not limited to updating, monitoring, recovery, and re-installation.
{: important}
The following operators are recommended.
Skill's behavior or capabilities extend beyond its stated purpose. Scope creep allows an agent to perform actions unrelated to its documented functionality, increasing the attack surface.
You can choose to also install additional operators that are recommended for the use of certain OpenShift AI features. If they are not already installed on your cluster, you can choose to include them in the add-on installation. Or, you can install them at anytime by using OperatorHub or by following the operator-specific installation steps. To use these operators, you must [disable outbound traffic protection](https://cloud.ibm.com/docs/openshift?topic=openshift-sbd-allow-outbound&format=markdown) for your cluster.
You are responsible for managing these operators, including but not limited to updating, monitoring, recovery, and re-installation.
{: important}
The following operators are recommended.
Skill's behavior or capabilities extend beyond its stated purpose. Scope creep allows an agent to perform actions unrelated to its documented functionality, increasing the attack surface.
You can choose to also install additional operators that are recommended for the use of certain OpenShift AI features. If they are not already installed on your cluster, you can choose to include them in the add-on installation. Or, you can install them at anytime by using OperatorHub or by following the operator-specific installation steps. To use these operators, you must [disable outbound traffic protection](https://cloud.ibm.com/docs/openshift?topic=openshift-sbd-allow-outbound&format=markdown) for your cluster.
You are responsible for managing these operators, including but not limited to updating, monitoring, recovery, and re-installation.
{: important}
The following operators are recommended.
Skill's behavior or capabilities extend beyond its stated purpose. Scope creep allows an agent to perform actions unrelated to its documented functionality, increasing the attack surface.
You can choose to also install additional operators that are recommended for the use of certain OpenShift AI features. If they are not already installed on your cluster, you can choose to include them in the add-on installation. Or, you can install them at anytime by using OperatorHub or by following the operator-specific installation steps. To use these operators, you must [disable outbound traffic protection](https://cloud.ibm.com/docs/openshift?topic=openshift-sbd-allow-outbound&format=markdown) for your cluster.
You are responsible for managing these operators, including but not limited to updating, monitoring, recovery, and re-installation.
{: important}
The following operators are recommended.
The inline comment states that the GIF represents an actual execution rather than a mockup screenshot. In the code shown, this is only a hardcoded base64 string assigned to a constant, so the documentation asserts provenance that the code does not establish or verify.