T08 · Insecure Dependencies
- Location
requirements.txt:1- Finding
Unpinned Third-Party Dependencies Permit Unreviewed Package Resolution
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This skill is a disclosed ClinicalTrials.gov lookup tool with some reliability and dependency hygiene issues, but no evidence of hidden access, credential use, persistence, exfiltration, or destructive behavior.
Install only in an environment where unpinned Python dependencies are acceptable, or pin and review requests first. Treat the tool as a current ClinicalTrials.gov lookup and summary helper, not a complete status-change monitoring system, unless snapshot comparison is added.
requirements.txt:1Unpinned Third-Party Dependencies Permit Unreviewed Package Resolution
The skill advertises network/API functionality and includes executable Python usage, but the manifest does not declare any explicit tool scope such as allowed network access. That creates an authorization and transparency gap: an agent or reviewer cannot reliably enforce what external actions the skill is permitted to take, increasing the chance of unintended outbound requests.
The trigger text is broad enough to match generic requests about tracking, monitoring, or analyzing trials, which can cause the skill to activate in contexts the user did not intend. Overbroad activation increases the risk of unnecessary network access, unintended file operations, and misleading delegation to this skill instead of a safer or more appropriate workflow.
The skill documentation states that it performs external API calls and read/write operations, but it does not clearly tell users what data leaves the environment or what local files may be created or modified. This lack of disclosure weakens informed consent and increases the chance that sensitive user-supplied search terms, trial lists, or generated reports are transmitted or stored unexpectedly.
The function is advertised as monitoring status changes, but it only fetches the current state of each trial and annotates it with a 'monitored_since' timestamp. Because it never loads prior snapshots or compares historical values, users may wrongly believe they are receiving true change detection, which can lead to missed competitor updates or incorrect intelligence decisions.
The summary report computes a lookback date but does not limit the trial search itself to that period, so the report can imply time-bounded analysis while actually aggregating all matching trials. In a competitive-intelligence context, this can produce misleading reports and false conclusions about recent activity because only 'recent_updates' is date-filtered while headline totals and breakdowns are not.
The dependency list is unpinned, so builds may resolve to different versions over time and become non-reproducible. For dataclasses, this mainly creates supply-chain and reliability risk because an unexpected or compromised release could be installed without review, though the package itself is typically only needed on older Python versions.
dataclasses
requests
requests is unpinned, which makes the environment susceptible to silently pulling in different releases, including versions with known security flaws. In a skill that fetches external data from ClinicalTrials.gov or related URLs, dependency drift increases the chance of introducing exploitable HTTP/client-side weaknesses or inconsistent behavior.
dataclasses
requests
The manifest does not pin requests, and multiple advisories exist for some requests releases, so the deployed environment could resolve to a vulnerable version without visibility. Because this skill likely performs outbound HTTP requests to monitor trial data, an affected requests version could expose credentials, weaken TLS/request verification, or mishandle malicious URLs depending on runtime usage.
No suspicious patterns detected.