T09 · Insecure Skill Coding Practices
- Location
scripts/main.py:154- Finding
NCBI API Key Embedded and Repeated in Request URLs
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This appears to be a legitimate research variant-annotation skill, but it needs review because it can transmit sensitive genetic inputs externally and has a medical-classification flaw when population data is missing.
Use this only for research or education, not diagnosis or treatment. Before installing, review whether variant identifiers or batch files are sensitive, assume queries go to NCBI, avoid passing valuable API keys on the command line, and treat ACMG output as provisional until the missing-frequency scoring bug and dependency issue are fixed.
scripts/main.py:154NCBI API Key Embedded and Repeated in Request URLs
requirements.txt:1Unnecessary and Unpinned Third-Party Dependency
scripts/main.py:274Missing Population Frequency Data Is Misclassified as ACMG PM2 Evidence
The skill advertises network and file read/write behavior but does not declare any explicit tool scope or permissions boundary. In an agent environment, this creates ambiguity about what resources the skill may access and increases the risk of unintended file access, data exfiltration, or broader tool invocation than reviewers and orchestrators expect.
The trigger text is broad enough to activate on general discussions of pathogenicity or clinical significance, not just concrete variant-annotation tasks. Over-broad activation can cause the skill to process unintended user content, invoke networked lookups unnecessarily, and return medical-style interpretations in contexts where the user did not ask for this specialized workflow.
Skill enables autonomous high-impact decisions without human-in-the-loop verification. Critical operations (destructive commands, financial transactions, data deletion) should require explicit user confirmation.
- **PM3**: For recessive disorders, detected in trans with a pathogenic variant
- **PM4**: Protein length changes as a result of in-frame deletions/insertions in a nonrepeat region or stop-loss variants
- **PM5**: Novel missense change at an amino acid residue where a different missense change determined to be pathogenic has been seen before
- **PM6**: Assumed de novo, but without confirmation of paternity and maternity
### Supporting Pathogenic (PP)
- **PP1**: Cosegregation with disease in multiple affected family members in a gene definitively known to cause the disease
Skill enables autonomous high-impact decisions without human-in-the-loop verification. Critical operations (destructive commands, financial transactions, data deletion) should require explicit user confirmation.
- **PM3**: For recessive disorders, detected in trans with a pathogenic variant
- **PM4**: Protein length changes as a result of in-frame deletions/insertions in a nonrepeat region or stop-loss variants
- **PM5**: Novel missense change at an amino acid residue where a different missense change determined to be pathogenic has been seen before
- **PM6**: Assumed de novo, but without confirmation of paternity and maternity
### Supporting Pathogenic (PP)
- **PP1**: Cosegregation with disease in multiple affected family members in a gene definitively known to cause the disease
This file contains concrete genetic variant examples with asserted pathogenic/benign interpretations and expected outputs, but it does not state that the content is for testing/reference only and not for clinical, diagnostic, or medical decision-making. In a variant-annotation skill, users or downstream agents could mistakenly treat these examples as authoritative medical guidance, creating a risk of unsafe health interpretation or overconfident automation.
The code sends user-supplied variant identifiers and an optional NCBI API key to external NCBI endpoints without any explicit consent flow, warning, or data-handling notice. In this skill’s context, variant queries can reveal highly sensitive genetic and health-related information, so silent transmission creates a real privacy and compliance risk even if the destination is a legitimate biomedical service.
The tool ingests variant lists from local files and then processes them for annotation without warning that the file contents may contain sensitive genetic data. Because this skill is specifically designed to analyze clinical significance and pathogenicity, users may unknowingly submit regulated or personally sensitive genomic information for external lookup, increasing privacy, confidentiality, and compliance exposure.
The line 'AI自主验收状态: 需人工检查' introduces Chinese-language content in the skill documentation without offering a language choice or explaining a locale-specific requirement. This can violate language/locale policy expectations for user-facing skill materials.
Dependencies lack version pinning, allowing potential malicious package updates. Consider pinning versions.
dataclasses
No suspicious patterns detected.