Back to skill

Security audit

Ant Design Skill

Security checks for vulnerabilities and agentic risk

Overview

This is a coherent Ant Design UI helper, but its runnable starter should have its npm build dependencies updated before use.

Install/use the skill as UI guidance, but audit and update the starter dependencies before running npm install or a dev server. When adapting the examples, confirm the app locale, keep delete confirmations, and clearly disclose real backend search/upload behavior to users.

Vulnerability Patterns
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Agent Memory PoisoningWrites attacker-controlled rules into memory that affect later sessions
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
Findings (25)

Known Vulnerable Dependency: browserslist==4.28.1 — 2 advisory(ies): CVE-2026-73088 (Browserslist: Uncaught crash / prototype write via untrusted browserslist-stats.); CVE-2026-73089 (Browserslist: Unbounded memory growth (no cache eviction) via distinct query res)

High
Category
Supply Chain
Confidence
88% confidence
Finding
browserslist 4.28.1 appears in the dependency tree and the listed advisories include crash/prototype write and unbounded memory growth from untrusted stats or query input. Even though this is primarily build tooling, projects that ingest user- or repo-supplied browserslist data in CI, plugins, or automated services could suffer denial of service or unsafe object mutation.

Known Vulnerable Dependency: nanoid==3.3.11 — 3 advisory(ies): CVE-2026-67214 (nanoid: non-secure generators can loop indefinitely with negative size); CVE-2026-67213 (nanoid: custom generators can loop indefinitely when size is zero); CVE-2026-73086 (nanoid: Integer Overflow or Wraparound)

High
Category
Supply Chain
Confidence
84% confidence
Finding
nanoid 3.3.11 is included transitively via postcss, and the listed advisories indicate potential infinite loops or integer-handling issues in certain generator paths. In this dependency path it is likely exercised during tooling rather than directly by application code, which reduces exposure, but malformed or attacker-influenced parameters in automation could still cause hangs or resource exhaustion.

Known Vulnerable Dependency: postcss==8.5.6 — 4 advisory(ies): CVE-2026-45623 (PostCSS: Arbitrary file read and information disclosure via attacker-controlled ); CVE-2026-69153 (PostCSS: incomplete fix of GHSA-6g55-p6wh-862q — attacker-controlled sourceMappi); CVE-2026-41305 (PostCSS has XSS via Unescaped </style> in its CSS Stringify Output) +1 more

High
Category
Supply Chain
Confidence
90% confidence
Finding
postcss 8.5.6 is present as a dev dependency of Vite, and the listed advisories include arbitrary file read, incomplete fixes around source mapping, and XSS in generated CSS output. Since PostCSS often processes project-controlled but sometimes externally sourced CSS during build pipelines, this can become serious in CI systems, preview services, or any workflow handling untrusted stylesheets.

Known Vulnerable Dependency: rollup==4.57.1 — 1 advisory(ies): CVE-2026-27606 (Rollup 4 has Arbitrary File Write via Path Traversal)

High
Category
Supply Chain
Confidence
89% confidence
Finding
rollup 4.57.1 is installed and the advisory indicates arbitrary file write via path traversal. Although Rollup is a build-time dependency, any scenario where it bundles attacker-controlled module names, archives, plugins, or project content could permit filesystem impact on developer or CI hosts, making this a meaningful risk.

Known Vulnerable Dependency: vite==5.4.21 — 3 advisory(ies): CVE-2026-39365 (Vite Vulnerable to Path Traversal in Optimized Deps `.map` Handling); CVE-2026-53571 (vite: `server.fs.deny` bypass on Windows alternate paths); CVE-2026-53632 (launch-editor: NTLMv2 hash disclosure via UNC path handling on Windows)

High
Category
Supply Chain
Confidence
94% confidence
Finding
vite 5.4.21 is directly declared as a dev dependency and the listed advisories include path traversal in optimized dependency map handling, server.fs.deny bypass on Windows, and possible NTLM hash disclosure through launch-editor UNC path handling. In a starter project this primarily affects developer workstations and CI/dev servers rather than production runtime, but the direct dependency and multiple filesystem/network issues make the context comparatively dangerous for local development.

Known Vulnerable Dependency: vite==5.4.21 — 3 advisory(ies): CVE-2026-39365 (Vite Vulnerable to Path Traversal in Optimized Deps `.map` Handling); CVE-2026-53571 (vite: `server.fs.deny` bypass on Windows alternate paths); CVE-2026-53632 (launch-editor: NTLMv2 hash disclosure via UNC path handling on Windows)

High
Category
Supply Chain
Confidence
98% confidence
Finding
The project allows a Vite 5.4.x dependency line and the analysis indicates resolution to vite 5.4.21, which carries multiple published advisories including path traversal and Windows-specific file access/hash disclosure issues. In a frontend starter, Vite is typically used in local development and preview workflows, so exposure depends on whether the dev server or related tooling is run in an accessible environment, but the presence of known vulnerable tooling is still a real supply-chain and workstation risk.

Natural-Language Policy Violations

Medium
Confidence
97% confidence
Finding
This code contains numerous user-facing strings in Portuguese, such as labels, button text, status text, and confirmation messages, but does not provide any visible mechanism for user language selection or locale opt-in. That creates a natural-language policy issue when a skill or UI forces a specific language without giving users a choice.

Missing User Warnings

Medium
Confidence
81% confidence
Finding
This markdown file includes a destructive "Delete" action in the table example, but the surrounding guidance does not mention confirmation, undo, or any warning about data loss. For markdown files, omissions around behaviors that could affect user data or system integrity should be flagged when the description presents such actions without safety disclosure.

Missing User Warnings

Medium
Confidence
88% confidence
Finding
This markdown file demonstrates file uploads to `/api/upload` and discusses UX details like progress and validation, but it does not warn that selected files will be sent off the client to a server. Because uploads can affect user data and privacy, the skill description should disclose that behavior in user-facing guidance.

Natural-Language Policy Violations

Medium
Confidence
95% confidence
Finding
This TSX file contains many user-visible labels and messages such as 'Editar usuário', 'Excluir usuário?', 'Usuários', and validation text in Portuguese. Per the policy rule, forcing a specific language without user opt-in or a documented regional justification is a natural-language policy violation.

Missing User Warnings

Low
Confidence
83% confidence
Finding
This markdown file includes code examples that transmit user search input to server-side APIs via `api.search(debouncedQuery)`, but the surrounding documentation does not mention that typed queries are sent over the network. For markdown files, SQP-2 applies when the skill description omits warnings about behaviors that could affect user data or privacy.

Missing User Warnings

Low
Confidence
89% confidence
Finding
The autocomplete pattern calls `api.suggest(value)` as the user types, which can transmit partial queries and potentially sensitive input. The markdown does not warn about this behavior or its privacy implications, which fits the markdown-specific missing-user-warning criterion.

Missing User Warnings

Low
Confidence
90% confidence
Finding
The minimal code snippet uses `fetch(`/api/search?q=${debouncedQuery}`)` to send user-entered search text over HTTP, yet the markdown contains no explicit warning about transmitting user queries. This is a user-data-affecting behavior in a markdown skill description and should be disclosed.

Natural-Language Policy Violations

Low
Confidence
95% confidence
Finding
The document sets `lang="pt-BR"` unconditionally, which is a natural-language locale choice applied to all users. There is no indication in this file that the locale is optional, user-selected, or justified as region-specific, so it may violate language/locale policy requirements.

Known Vulnerable Dependency: @babel/core==7.29.0 — 1 advisory(ies): CVE-2026-49356 (@babel/core: Arbitrary File Read via sourceMappingURL Comment)

Low
Category
Supply Chain
Confidence
87% confidence
Finding
The lockfile pins @babel/core 7.29.0, which the supplied advisory identifies as affected by an arbitrary file read issue via sourceMappingURL handling. In this project it is a dev/build-time dependency rather than runtime code, so exploitability depends on processing attacker-controlled source content during builds, but it is still a real dependency risk.

Known Vulnerable Dependency: baseline-browser-mapping==2.9.19 — 1 advisory(ies): CVE-2026-45819 (baseline-browser-mapping process termination on invalid input causes denial of s)

Low
Category
Supply Chain
Confidence
80% confidence
Finding
baseline-browser-mapping 2.9.19 is present as a transitive dev dependency and the referenced advisory indicates denial of service on invalid input. Because it is only used by tooling around browserslist data, this is mainly a build-time stability issue rather than a production compromise, but it is still a genuine vulnerable component.

Known Vulnerable Dependency: esbuild==0.21.5 — 1 advisory(ies): GHSA-67mh-4wv8-2f99 (esbuild enables any website to send any requests to the development server and r)

Low
Category
Supply Chain
Confidence
91% confidence
Finding
esbuild 0.21.5 is present and the cited advisory affects the development server, allowing websites to induce requests to the dev server. This is a real issue, but in this starter project esbuild is a dev dependency used through Vite, so the risk is mostly to developers running local dev servers rather than deployed users.

Unpinned Dependencies

Low
Category
Supply Chain
Content
"preview": "vite preview"
  },
  "dependencies": {
    "antd": "^5.0.0",
    "react": "^18.3.1",
    "react-dom": "^18.3.1"
  },
Confidence
40% confidence
Finding
Dependencies lack version pinning, allowing potential malicious package updates. Consider pinning versions.

Unpinned Dependencies

Low
Category
Supply Chain
Content
},
  "dependencies": {
    "antd": "^5.0.0",
    "react": "^18.3.1",
    "react-dom": "^18.3.1"
  },
  "devDependencies": {
Confidence
40% confidence
Finding
Dependencies lack version pinning, allowing potential malicious package updates. Consider pinning versions.

Unpinned Dependencies

Low
Category
Supply Chain
Content
"dependencies": {
    "antd": "^5.0.0",
    "react": "^18.3.1",
    "react-dom": "^18.3.1"
  },
  "devDependencies": {
    "@types/react": "^18.3.12",
Confidence
40% confidence
Finding
Dependencies lack version pinning, allowing potential malicious package updates. Consider pinning versions.

Unpinned Dependencies

Low
Category
Supply Chain
Content
"react-dom": "^18.3.1"
  },
  "devDependencies": {
    "@types/react": "^18.3.12",
    "@types/react-dom": "^18.3.1",
    "@vitejs/plugin-react": "^4.3.4",
    "typescript": "^5.6.3",
Confidence
40% confidence
Finding
Dependencies lack version pinning, allowing potential malicious package updates. Consider pinning versions.

Unpinned Dependencies

Low
Category
Supply Chain
Content
},
  "devDependencies": {
    "@types/react": "^18.3.12",
    "@types/react-dom": "^18.3.1",
    "@vitejs/plugin-react": "^4.3.4",
    "typescript": "^5.6.3",
    "vite": "^5.4.10"
Confidence
40% confidence
Finding
Dependencies lack version pinning, allowing potential malicious package updates. Consider pinning versions.

Unpinned Dependencies

Low
Category
Supply Chain
Content
"devDependencies": {
    "@types/react": "^18.3.12",
    "@types/react-dom": "^18.3.1",
    "@vitejs/plugin-react": "^4.3.4",
    "typescript": "^5.6.3",
    "vite": "^5.4.10"
  }
Confidence
40% confidence
Finding
Dependencies lack version pinning, allowing potential malicious package updates. Consider pinning versions.

Unpinned Dependencies

Low
Category
Supply Chain
Content
"@types/react": "^18.3.12",
    "@types/react-dom": "^18.3.1",
    "@vitejs/plugin-react": "^4.3.4",
    "typescript": "^5.6.3",
    "vite": "^5.4.10"
  }
}
Confidence
40% confidence
Finding
Dependencies lack version pinning, allowing potential malicious package updates. Consider pinning versions.

Unpinned Dependencies

Low
Category
Supply Chain
Content
"@types/react-dom": "^18.3.1",
    "@vitejs/plugin-react": "^4.3.4",
    "typescript": "^5.6.3",
    "vite": "^5.4.10"
  }
}
Confidence
40% confidence
Finding
Dependencies lack version pinning, allowing potential malicious package updates. Consider pinning versions.

Static analysis

No suspicious patterns detected.