T09 · Insecure Skill Coding Practices
- Location
scripts/telephone_verify.py:64- Finding
Sensitive credentials and identity data exposed in HTTP GET query parameters
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill performs the advertised phone-name-ID verification, but it under-discloses third-party sharing and exposes highly sensitive identity data in URLs and terminal output.
Review before installing. Use this only for lawful, consented telecom identity verification, and assume the name, ID card number, phone number, and Juhe API key may appear in request URLs or terminal logs. Prefer a version that uses POST bodies, masks output by default, and asks for explicit confirmation before sending identity data to Juhe.
scripts/telephone_verify.py:64Sensitive credentials and identity data exposed in HTTP GET query parameters
scripts/telephone_verify.py:198Full personal identity information printed to standard output
Credentials or environment variables flow to a network sink. This is a high-confidence indicator of credential exfiltration.
try:
# 发起请求
response = requests.get(api_url, params=params, timeout=10)
if response.status_code == 200:
result = response.json()
This skill handles extremely sensitive personal data—full name, national ID number, and mobile phone number—and the documentation does not clearly warn that these identifiers will be transmitted to an external verification service. The lack of prominent disclosure and consent language materially increases the risk of privacy violations, unauthorized third-party sharing, and noncompliance with data protection obligations.
The script sends highly sensitive personal data—real name, ID card number, and mobile number—to a third-party service without any explicit user-facing notice or confirmation at runtime. In the context of a verification skill, third-party transmission is functionally necessary, but failing to clearly disclose that external sharing occurs creates significant privacy, compliance, and consent risk for users handling Chinese identity data.
The script prints the full name, full ID card number, and full mobile number directly to stdout. Terminal output is often captured in shell history, logs, CI traces, agent transcripts, or screen recordings, so exposing raw identifiers materially increases the chance of identity-data leakage beyond the intended verification result.
The skill documents use of an API key, references local configuration files, and describes a networked verification script, but it does not declare an explicit tool scope such as allowed tools or permissions. That mismatch can cause the agent to invoke file, environment, or network capabilities without transparent constraints, increasing the chance of unintended secret access or external data transmission.
The direct invocation guidance is broad and encourages triggering the skill whenever a user provides name, ID card, and phone number, without requiring confirmation, authority checks, or a privacy warning. In practice, this can lead to accidental transmission of highly sensitive PII to a third-party service based on ambiguous or insufficiently authorized user requests.
The document instructs transmission of highly sensitive personal data including full name, Chinese ID card number, and mobile number to a third-party verification API, but provides no warning about privacy, consent, retention, legal basis, or secure handling obligations. In the context of a real-name authentication skill, this increases the chance that integrators will collect and forward regulated personal data without adequate user notice or safeguards, creating significant privacy and compliance risk.
Large whitespace padding was detected (a block of blank lines or a long run of spaces). This can push injected instructions below or to the right of the visible area so a human reviewer never sees them while the agent still reads them. Manual review of the hidden content is recommended.
## 返回参数
| 名称 | 类型 | 说明 |
| ---------- | ---------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| error_code | int | 状态码 |
| reason | string | 状态提示 |
Large whitespace padding was detected (a block of blank lines or a long run of spaces). This can push injected instructions below or to the right of the visible area so a human reviewer never sees them while the agent still reads them. Manual review of the hidden content is recommended.
| 名称 | 类型 | 说明 |
| ---------- | ---------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| error_code | int | 状态码 |
| reason | string | 状态提示 |
| result | jsonObject | 返回结果 |
| res | int | 核验结果 |
Large whitespace padding was detected (a block of blank lines or a long run of spaces). This can push injected instructions below or to the right of the visible area so a human reviewer never sees them while the agent still reads them. Manual review of the hidden content is recommended.
| 名称 | 类型 | 说明 |
| ---------- | ---------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| error_code | int | 状态码 |
| reason | string | 状态提示 |
| result | jsonObject | 返回结果 |
| res | int | 核验结果 |
| resmsg | string | 核验结果描述 |
Large whitespace padding was detected (a block of blank lines or a long run of spaces). This can push injected instructions below or to the right of the visible area so a human reviewer never sees them while the agent still reads them. Manual review of the hidden content is recommended.
| 名称 | 类型 | 说明 |
| ---------- | ---------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| error_code | int | 状态码 |
| reason | string | 状态提示 |
| result | jsonObject | 返回结果 |
| res | int | 核验结果 |
| resmsg | string | 核验结果描述 |
Large whitespace padding was detected (a block of blank lines or a long run of spaces). This can push injected instructions below or to the right of the visible area so a human reviewer never sees them while the agent still reads them. Manual review of the hidden content is recommended.
| 名称 | 类型 | 说明 |
| ---------- | ---------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| error_code | int | 状态码 |
| reason | string | 状态提示 |
| result | jsonObject | 返回结果 |
| res | int | 核验结果 |
| resmsg | string | 核验结果描述 |
Large whitespace padding was detected (a block of blank lines or a long run of spaces). This can push injected instructions below or to the right of the visible area so a human reviewer never sees them while the agent still reads them. Manual review of the hidden content is recommended.
| reason | string | 状态提示 |
| result | jsonObject | 返回结果 |
| res | int | 核验结果 |
| resmsg | string | 核验结果描述 |
| type | string | 手机运营商,请求参数type=1时显示 |
| orderid | string | 聚合订单号,请求参数showid=1时显示 |
| province | string | 手机号归属省份,请求参数province=1时,显示 |
Large whitespace padding was detected (a block of blank lines or a long run of spaces). This can push injected instructions below or to the right of the visible area so a human reviewer never sees them while the agent still reads them. Manual review of the hidden content is recommended.
| reason | string | 状态提示 |
| result | jsonObject | 返回结果 |
| res | int | 核验结果 |
| resmsg | string | 核验结果描述 |
| type | string | 手机运营商,请求参数type=1时显示 |
| orderid | string | 聚合订单号,请求参数showid=1时显示 |
| province | string | 手机号归属省份,请求参数province=1时,显示 |
Large whitespace padding was detected (a block of blank lines or a long run of spaces). This can push injected instructions below or to the right of the visible area so a human reviewer never sees them while the agent still reads them. Manual review of the hidden content is recommended.
| result | jsonObject | 返回结果 |
| res | int | 核验结果 |
| resmsg | string | 核验结果描述 |
| type | string | 手机运营商,请求参数type=1时显示 |
| orderid | string | 聚合订单号,请求参数showid=1时显示 |
| province | string | 手机号归属省份,请求参数province=1时,显示 |
| city | string | 手机号归属城市,请求参数province=1时显示 |
Large whitespace padding was detected (a block of blank lines or a long run of spaces). This can push injected instructions below or to the right of the visible area so a human reviewer never sees them while the agent still reads them. Manual review of the hidden content is recommended.
| result | jsonObject | 返回结果 |
| res | int | 核验结果 |
| resmsg | string | 核验结果描述 |
| type | string | 手机运营商,请求参数type=1时显示 |
| orderid | string | 聚合订单号,请求参数showid=1时显示 |
| province | string | 手机号归属省份,请求参数province=1时,显示 |
| city | string | 手机号归属城市,请求参数province=1时显示 |
Large whitespace padding was detected (a block of blank lines or a long run of spaces). This can push injected instructions below or to the right of the visible area so a human reviewer never sees them while the agent still reads them. Manual review of the hidden content is recommended.
| res | int | 核验结果 |
| resmsg | string | 核验结果描述 |
| type | string | 手机运营商,请求参数type=1时显示 |
| orderid | string | 聚合订单号,请求参数showid=1时显示 |
| province | string | 手机号归属省份,请求参数province=1时,显示 |
| city | string | 手机号归属城市,请求参数province=1时显示 |
| rescode | string | 匹配详情码,请求参数detail=1时显示(说明 1:三要素核验一致 2:三要素核验不一致0 |
Large whitespace padding was detected (a block of blank lines or a long run of spaces). This can push injected instructions below or to the right of the visible area so a human reviewer never sees them while the agent still reads them. Manual review of the hidden content is recommended.
| res | int | 核验结果 |
| resmsg | string | 核验结果描述 |
| type | string | 手机运营商,请求参数type=1时显示 |
| orderid | string | 聚合订单号,请求参数showid=1时显示 |
| province | string | 手机号归属省份,请求参数province=1时,显示 |
| city | string | 手机号归属城市,请求参数province=1时显示 |
| rescode | string | 匹配详情码,请求参数detail=1时显示(说明 1:三要素核验一致 2:三要素核验不一致0 |
Large whitespace padding was detected (a block of blank lines or a long run of spaces). This can push injected instructions below or to the right of the visible area so a human reviewer never sees them while the agent still reads them. Manual review of the hidden content is recommended.
| resmsg | string | 核验结果描述 |
| type | string | 手机运营商,请求参数type=1时显示 |
| orderid | string | 聚合订单号,请求参数showid=1时显示 |
| province | string | 手机号归属省份,请求参数province=1时,显示 |
| city | string | 手机号归属城市,请求参数province=1时显示 |
| rescode | string | 匹配详情码,请求参数detail=1时显示(说明 1:三要素核验一致 2:三要素核验不一致0 |
| resmsg | string | 核验结果描述 |
Large whitespace padding was detected (a block of blank lines or a long run of spaces). This can push injected instructions below or to the right of the visible area so a human reviewer never sees them while the agent still reads them. Manual review of the hidden content is recommended.
| resmsg | string | 核验结果描述 |
| type | string | 手机运营商,请求参数type=1时显示 |
| orderid | string | 聚合订单号,请求参数showid=1时显示 |
| province | string | 手机号归属省份,请求参数province=1时,显示 |
| city | string | 手机号归属城市,请求参数province=1时显示 |
| rescode | string | 匹配详情码,请求参数detail=1时显示(说明 1:三要素核验一致 2:三要素核验不一致0 |
| resmsg | string | 核验结果描述 |
Large whitespace padding was detected (a block of blank lines or a long run of spaces). This can push injected instructions below or to the right of the visible area so a human reviewer never sees them while the agent still reads them. Manual review of the hidden content is recommended.
| type | string | 手机运营商,请求参数type=1时显示 |
| orderid | string | 聚合订单号,请求参数showid=1时显示 |
| province | string | 手机号归属省份,请求参数province=1时,显示 |
| city | string | 手机号归属城市,请求参数province=1时显示 |
| rescode | string | 匹配详情码,请求参数detail=1时显示(说明 1:三要素核验一致 2:三要素核验不一致0 |
| resmsg | string | 核验结果描述 |
| type | string | 手机运营商,请求参数type=1时显示 |
Large whitespace padding was detected (a block of blank lines or a long run of spaces). This can push injected instructions below or to the right of the visible area so a human reviewer never sees them while the agent still reads them. Manual review of the hidden content is recommended.
| type | string | 手机运营商,请求参数type=1时显示 |
| orderid | string | 聚合订单号,请求参数showid=1时显示 |
| province | string | 手机号归属省份,请求参数province=1时,显示 |
| city | string | 手机号归属城市,请求参数province=1时显示 |
| rescode | string | 匹配详情码,请求参数detail=1时显示(说明 1:三要素核验一致 2:三要素核验不一致0 |
| resmsg | string | 核验结果描述 |
| type | string | 手机运营商,请求参数type=1时显示 |
Large whitespace padding was detected (a block of blank lines or a long run of spaces). This can push injected instructions below or to the right of the visible area so a human reviewer never sees them while the agent still reads them. Manual review of the hidden content is recommended.
| orderid | string | 聚合订单号,请求参数showid=1时显示 |
| province | string | 手机号归属省份,请求参数province=1时,显示 |
| city | string | 手机号归属城市,请求参数province=1时显示 |
| rescode | string | 匹配详情码,请求参数detail=1时显示(说明 1:三要素核验一致 2:三要素核验不一致0 |
| resmsg | string | 核验结果描述 |
| type | string | 手机运营商,请求参数type=1时显示 |
| orderid | string | 聚合订单号,请求参数showid=1时显示 |