T08 · Insecure Dependencies
- Location
references/installation.md:9- Finding
Unpinned Python Dependency Installation
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This is a documentation-only Django Unfold skill with some production-safety caveats, but no hidden execution, persistence, or deceptive behavior.
Install only in projects where you intentionally use django-unfold. Treat the examples as implementation patterns, not hardened production code: pin Python and npm dependencies, use lockfiles, and add explicit permissions, confirmations, audit logging, and idempotency for admin actions that change orders, payments, or other business data.
references/installation.md:9Unpinned Python Dependency Installation
references/theming.md:139Unpinned npm Packages Executed Through npx
The trigger instruction is overly broad because it says to always activate for any Django admin feature whenever django-unfold is present, even if Unfold is not explicitly mentioned. This can cause unintended skill invocation on general admin requests, leading the agent to apply framework-specific guidance in the wrong context and increasing the chance of incorrect changes or misleading advice.
This markdown file documents an action that directly changes order status to "SHIPPED" without any accompanying warning, confirmation step, or note that the action is irreversible or affects business data. Because SQP-2 applies to markdown files when descriptions omit warnings about behaviors affecting user data or system integrity, this example should disclose the impact more clearly.
Lines L124-L138 first present a 'dropdown container' action pattern, but L140 explicitly says 'Actually' and replaces that with a different mechanism, claiming dropdown grouping is automatic when multiple actions_row items share the same area. These statements actively contradict each other, creating intent/documentation divergence in a reference file that is supposed to provide authoritative implementation guidance.
The refund-processing example describes a financially sensitive admin action and provides only a basic form flow, without explicit permission checks, confirmation, idempotency protection, audit logging, or warnings about business impact. In an admin skill that developers may copy directly, this can lead to unsafe implementations where privileged users can trigger refunds without sufficient controls or traceability.
The documentation instructs users to execute npx @tailwindcss/cli without pinning a specific package version. This can pull whatever version is current at execution time, creating a supply-chain risk from unexpected updates or a compromised upstream release, and it also harms reproducibility of builds.
The example uses npx tailwindcss without a pinned version, so users may execute an unreviewed latest package version from the registry. In documentation for admin customization workflows, this increases supply-chain exposure and can lead to inconsistent or compromised build tooling if the dependency changes unexpectedly.
No suspicious patterns detected.