T08 · Insecure Dependencies
- Location
requirements.txt:1- Finding
Unnecessary and Unpinned PyPI Dependencies Create a Supply-Chain Risk
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill appears purpose-aligned and non-malicious, but it has review-worthy issues in a clinical compliance workflow: an unnecessary unpinned install step, under-documented output categories, and fail-open risk defaults that can understate serious deviations.
Review carefully before installing or using in a clinical quality workflow. Avoid running the pip install step unless the dependency list is fixed or removed, treat all outputs as advisory only, and require human QA review especially for missing or malformed risk-factor inputs and any downstream process expecting only major/minor labels.
requirements.txt:1Unnecessary and Unpinned PyPI Dependencies Create a Supply-Chain Risk
scripts/main.py:86Missing Risk Factors Are Converted to Benign Values and Bypass Automatic Assessment
The documented purpose says the skill performs a binary major/minor classification, but the content also describes critical deviations, report generation, and interactive workflows. This mismatch can cause agents or users to invoke the skill under incorrect assumptions, leading to over-broad behavior, unsafe automation, or outputs being used for regulatory decisions beyond the intended scope.
The skill documentation acknowledges file read/write behavior but does not declare an explicit tool scope such as permissions or allowed-tools. This creates an authorization gap where an agent runtime may grant broader filesystem access than reviewers or users expect, increasing the chance of unintended data access or overwriting files.
The trigger text says the skill should be used 'when classification assessment of protocol deviations is needed,' which is a general condition rather than a specific invocation scope. It does not define precise trigger phrases, boundaries, or exclusion conditions, so it could overlap with many routine discussions of clinical trial deviations.
This Python skill includes natural-language descriptions and operational output primarily in Chinese, and the interactive/CLI experience continues that fixed-language behavior elsewhere in the file. Under the policy rule for language/locale, forcing a specific language without user opt-in is a violation unless the locale constraint is clearly documented and justified.
The manifest says the skill determines whether an incident is a 'major deviation' or 'minor deviation', but the implementation introduces and emits a third 'critical' outcome. This interface/behavior mismatch can break downstream automation, regulatory workflows, or policy logic that assumes a closed two-class decision, causing misrouting or unhandled cases in a clinical compliance context.
The feature list advertises 'Chinese Support: Full support for Chinese clinical trial scenarios,' which introduces a locale-specific behavior without stating whether users can choose other languages or locales. Under the policy, locale constraints should be opt-in or clearly justified as region-specific.
Dependencies lack version pinning, allowing potential malicious package updates. Consider pinning versions.
dataclasses
enum
Dependencies lack version pinning, allowing potential malicious package updates. Consider pinning versions.
dataclasses
enum
The manifest centers on classifying a deviation incident and assessing its impact, but this code also produces summary reports, category breakdowns, rates, and portfolio-level recommendations across batches of incidents. That is broader quality-management reporting functionality, not just per-incident classification.
No suspicious patterns detected.