T08 · Insecure Dependencies
- Location
README.md:12- Finding
Unpinned Package Execution During Installation
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This is a straightforward BillionVerify API helper, but it can send email lists/files and webhook URLs to BillionVerify and may consume paid credits.
Install from a trusted, pinned source where possible. Before using bulk or file verification, confirm you are authorized to send those email addresses to BillionVerify, remove unrelated spreadsheet data, and understand credit usage. Use only webhook URLs you control, prefer HTTPS, and store downloaded result files and webhook secrets securely.
README.md:12Unpinned Package Execution During Installation
The README explicitly encourages sending email addresses, uploaded files, and webhook destinations to a third-party verification service but does not warn users that this involves external data transfer and potential disclosure of personal or sensitive data. In a privacy-sensitive context, users may unknowingly submit customer lists or internal addresses to an external processor, creating compliance, confidentiality, and consent risks.
npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.
npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.
The hardcoded external API base URL indicates network transmission to a third-party domain. Although expected for an API integration skill, it is still security-relevant because it moves user-supplied data and authentication headers outside the local trust boundary.
curl -X POST "https://api.billionverify.com/v1/verify/single" \
-H "BV-API-KEY: $BILLIONVERIFY_API_KEY" \
-H "Content-Type: application/json" \
-d '{
The hardcoded external API base URL indicates network transmission to a third-party domain. Although expected for an API integration skill, it is still security-relevant because it moves user-supplied data and authentication headers outside the local trust boundary.
curl -X POST "https://api.billionverify.com/v1/verify/single" \
-H "BV-API-KEY: $BILLIONVERIFY_API_KEY" \
-H "Content-Type: application/json" \
-d '{
Batch verification sends multiple email addresses at once to an external service, increasing the volume of personal data transmitted in a single action. This raises privacy and operational risk if large contact lists are submitted without user awareness or authorization.
curl -X POST "https://api.billionverify.com/v1/verify/bulk" \
-H "BV-API-KEY: $BILLIONVERIFY_API_KEY" \
-H "Content-Type: application/json" \
-d '{
The skill instructs users to upload email lists and send verification data to a third-party API but does not clearly warn that potentially sensitive personal data leaves the local environment. This can lead to inadvertent disclosure of customer or prospect email datasets to an external processor without informed user consent or policy review.
The file upload feature transmits entire CSV/Excel/TXT datasets containing up to 100,000 email addresses to a third-party API. This materially increases the risk of bulk personal-data exposure, accidental transfer of unrelated spreadsheet contents, and compliance violations if users are not warned and data is not minimized.
Upload CSV, Excel (.xlsx/.xls), or TXT files (max 20MB, 100,000 emails):
curl -X POST "https://api.billionverify.com/v1/verify/file" \
-H "BV-API-KEY: $BILLIONVERIFY_API_KEY" \
-F "file=@/path/to/emails.csv" \
-F "check_smtp=true" \
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
Supports long-polling with timeout parameter (0-300 seconds):
curl -X GET "https://api.billionverify.com/v1/verify/file/{task_id}?timeout=30" \
-H "BV-API-KEY: $BILLIONVERIFY_API_KEY"
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
Supports long-polling with timeout parameter (0-300 seconds):
curl -X GET "https://api.billionverify.com/v1/verify/file/{task_id}?timeout=30" \
-H "BV-API-KEY: $BILLIONVERIFY_API_KEY"
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
Supports long-polling with timeout parameter (0-300 seconds):
curl -X GET "https://api.billionverify.com/v1/verify/file/{task_id}?timeout=30" \
-H "BV-API-KEY: $BILLIONVERIFY_API_KEY"
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
Supports long-polling with timeout parameter (0-300 seconds):
curl -X GET "https://api.billionverify.com/v1/verify/file/{task_id}?timeout=30" \
-H "BV-API-KEY: $BILLIONVERIFY_API_KEY"
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
Supports long-polling with timeout parameter (0-300 seconds):
curl -X GET "https://api.billionverify.com/v1/verify/file/{task_id}?timeout=30" \
-H "BV-API-KEY: $BILLIONVERIFY_API_KEY"
Downloading verification results retrieves processed email-list data from the external provider, potentially writing sensitive results to a local file. This can expose enriched contact intelligence or deliverability assessments if the storage location is insecure or if users were unaware such data would be fetched from a third party.
Without filters returns redirect to full result file. With filters returns CSV of matching emails (filters combined with OR logic):
curl -X GET "https://api.billionverify.com/v1/verify/file/{task_id}/results?valid=true&invalid=true" \
-H "BV-API-KEY: $BILLIONVERIFY_API_KEY" \
-L -o results.csv
Creating a webhook sends a user-controlled callback URL to the third-party service and establishes future server-to-server communications. If configured carelessly, this can expose internal endpoints, create SSRF-like operational risk on the vendor side, or leak event data to an unintended destination.
curl -X POST "https://api.billionverify.com/v1/webhooks" \
-H "BV-API-KEY: $BILLIONVERIFY_API_KEY" \
-H "Content-Type: application/json" \
-d '{
The README documents webhook creation, listing, and deletion without warning that webhooks create external callbacks and can affect system behavior or leak metadata to attacker-controlled endpoints if misconfigured. In agent-driven environments, this can enable unintended outbound communication or operational changes without adequate user awareness.
The skill notes credit consumption but does not present it as a user-facing warning before actions are taken. Users may unknowingly trigger paid API operations, causing unintended billing impact or depletion of account credits.
No suspicious patterns detected.