Back to skill

Security audit

Gemini Live Phone

Security checks across malware telemetry and agentic risk

Overview

This is a real Twilio-to-Gemini phone bridge, but it needs Review because it exposes unauthenticated public call-control features that can place and record phone calls using the operator's Twilio account.

Install only if you are prepared to operate it like a public telephony service. Before exposing it, set PUBLIC_URL, TWILIO_ACCOUNT_SID, and TWILIO_FROM to values you control; add authentication to /call and /status; validate Twilio webhook signatures; restrict destination numbers; add rate limits and quotas; and implement clear consent and disclosure for AI voice processing and any recording.

SkillSpector

By NVIDIA
Vulnerability Patterns
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Taint TrackingDirect Taint Flow, Variable-Mediated Taint Flow, Credential Exfiltration Chain
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
Findings (17)

Tainted flow: 'path' from os.getenv (line 61, credential/environment) → open (file write)

Medium
Category
Data Flow
Content
if self._file:
                self._file.close()
            path = OPENCLAW_LOG_DIR / f"openclaw-{now_date}.log"
            self._file = open(path, "a", encoding="utf-8")
            self._current_date = now_date

    def emit(self, record: logging.LogRecord):
Confidence
88% confidence
Finding
self._file = open(path, "a", encoding="utf-8")

Description-Behavior Mismatch

Medium
Confidence
93% confidence
Finding
The skill exposes an outbound call initiation endpoint that can place phone calls and optionally enable recording, but this capability is not reflected in the description. Hidden telephony actions materially expand the trust boundary and can enable unauthorized calling, spam, toll fraud, or unanticipated collection of voice data if the endpoint is exposed without strong access controls.

Description-Behavior Mismatch

Medium
Confidence
90% confidence
Finding
The code includes recording-related control and webhook handling that is not disclosed in the skill metadata. Undisclosed recording capability is security- and privacy-relevant because users and deployers may not realize that calls can be recorded or that recording metadata is being processed.

Missing User Warnings

Medium
Confidence
92% confidence
Finding
The documentation encourages live call bridging and internet-exposed webhooks but omits warnings about consent, retention, third-party processing, and telecom/API costs. In a phone-AI bridge, that omission is materially risky because real voice content and metadata may be sent to Twilio and Google, potentially triggering legal, privacy, and financial exposure for operators.

Missing User Warnings

High
Confidence
96% confidence
Finding
Caller audio is forwarded in real time to the Gemini Live API without any visible disclosure, consent flow, or notice to the caller in this code path. Because this is a phone bridge handling live voice content, silent third-party transmission creates serious privacy, compliance, and trust risks, especially where callers may share personal or sensitive information.

Missing User Warnings

High
Confidence
97% confidence
Finding
Outbound calls can be created with recording enabled based on request input, but there is no visible warning, consent notice, or legal gating in the call flow. In telephony contexts, recording without notice can violate wiretapping and consent laws and expose both users and operators to significant privacy and regulatory harm.

Unpinned Dependencies

Low
Category
Supply Chain
Content
fastapi>=0.135.0
uvicorn>=0.41.0
google-genai>=1.60.0
twilio>=9.0.0
Confidence
95% confidence
Finding
fastapi>=0.135.0

Unpinned Dependencies

Low
Category
Supply Chain
Content
fastapi>=0.135.0
uvicorn>=0.41.0
google-genai>=1.60.0
twilio>=9.0.0
audioop-lts>=0.2.0
Confidence
95% confidence
Finding
uvicorn>=0.41.0

Unpinned Dependencies

Low
Category
Supply Chain
Content
fastapi>=0.135.0
uvicorn>=0.41.0
google-genai>=1.60.0
twilio>=9.0.0
audioop-lts>=0.2.0
websockets>=16.0
Confidence
91% confidence
Finding
google-genai>=1.60.0

Unpinned Dependencies

Low
Category
Supply Chain
Content
fastapi>=0.135.0
uvicorn>=0.41.0
google-genai>=1.60.0
twilio>=9.0.0
audioop-lts>=0.2.0
websockets>=16.0
python-multipart>=0.0.20
Confidence
92% confidence
Finding
twilio>=9.0.0

Unpinned Dependencies

Low
Category
Supply Chain
Content
uvicorn>=0.41.0
google-genai>=1.60.0
twilio>=9.0.0
audioop-lts>=0.2.0
websockets>=16.0
python-multipart>=0.0.20
Confidence
86% confidence
Finding
audioop-lts>=0.2.0

Unpinned Dependencies

Low
Category
Supply Chain
Content
google-genai>=1.60.0
twilio>=9.0.0
audioop-lts>=0.2.0
websockets>=16.0
python-multipart>=0.0.20
Confidence
95% confidence
Finding
websockets>=16.0

Unpinned Dependencies

Low
Category
Supply Chain
Content
twilio>=9.0.0
audioop-lts>=0.2.0
websockets>=16.0
python-multipart>=0.0.20
Confidence
95% confidence
Finding
python-multipart>=0.0.20

Known Vulnerable Dependency: fastapi — 3 advisory(ies): CVE-2021-32677 (Cross-Site Request Forgery (CSRF) in FastAPI); CVE-2021-32677 (FastAPI is a web framework for building APIs with Python 3.6+ based on standard ); CVE-2024-24762 (FastAPI is a web framework for building APIs with Python 3.8+ based on standard )

High
Category
Supply Chain
Confidence
85% confidence
Finding
fastapi

Known Vulnerable Dependency: uvicorn — 4 advisory(ies): CVE-2020-7694 (Log injection in uvicorn); CVE-2020-7695 (HTTP response splitting in uvicorn); CVE-2020-7694 (This affects all versions of package uvicorn. The request logger provided by the) +1 more

High
Category
Supply Chain
Confidence
90% confidence
Finding
uvicorn

Known Vulnerable Dependency: websockets — 4 advisory(ies): CVE-2018-1000518 (websockets is vulnerable to denial of service by memory exhaustion); CVE-2021-33880 (Observable Timing Discrepancy in aaugustin websockets library); CVE-2018-1000518 (aaugustin websockets version 4 contains a CWE-409: Improper Handling of Highly C) +1 more

High
Category
Supply Chain
Confidence
89% confidence
Finding
websockets

Known Vulnerable Dependency: python-multipart — 5 advisory(ies): CVE-2024-24762 (python-multipart vulnerable to Content-Type Header ReDoS); CVE-2024-53981 (Denial of service (DoS) via deformation `multipart/form-data` boundary); CVE-2026-40347 (python-multipart affected by Denial of Service via large multipart preamble or e) +2 more

High
Category
Supply Chain
Confidence
96% confidence
Finding
python-multipart

VirusTotal

65/65 vendors flagged this skill as clean.

View on VirusTotal

Static analysis

No suspicious patterns detected.