T01 · Skill Instruction Hijacking
- Location
SKILL.md:447- Finding
Authentication QR Codes Are Forwarded Outside the Initiating Conversation
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This skill appears intended to collect 1688 seller analytics, but it uses broad browser and messaging privileges that could expose login QR codes, seller data, and tokens beyond the requesting user.
Review before installing. Use this only in a dedicated, low-privilege environment with a separate browser profile. Restrict the extension to 1688 origins, remove wildcard external extension access, avoid forwarding login QR codes to any group unless the user explicitly confirms that recipient, verify all downloaded installers by hash/signature, and protect Feishu tokens, QR images, and raw seller reports with private storage permissions.
SKILL.md:447Authentication QR Codes Are Forwarded Outside the Initiating Conversation
plugin/background.js:237Any Installed Extension Can Retrieve the Complete Stored Seller Dataset
plugin/content.js:861688 Authentication Token Is Logged and May Be Persisted as an Account Identifier
scripts/start-browser.sh:46Extension and Chromium Run with Excessive Privileges
scripts/start-browser.ps1:16Spoofable Marker File Can Redirect Privileged CDP Operations
scripts/setup.ps1:71Setup Downloads and Executes Mutable Remote Code Without Integrity Verification
scripts/fetch_data.py:30Sensitive Reports, Tokens, and QR Codes Are Written to Predictable Files with Default Permissions
scripts/start-browser.sh:11Launcher Force-Kills Unrelated Xvfb Processes Despite Declared Non-Destructive Behavior
scripts/generate_report_v3.py:302Unescaped Platform-Controlled Text Is Embedded in Agent-Reviewed and Feishu-Rendered Reports
Credentials or environment variables flow to a network sink. This is a high-confidence indicator of credential exfiltration.
h = host or CDP_HOST
p = port or CDP_PORT
try:
with urllib.request.urlopen(f'http://{h}:{p}/json/version', timeout=3):
pass
except Exception:
return False
Credentials or environment variables flow to a network sink. This is a high-confidence indicator of credential exfiltration.
def get_1688_tab():
"""快捷函数:获取当前1688页面的 CDP 连接信息"""
with urllib.request.urlopen(f'http://{CDP_HOST}:{CDP_PORT}/json/list') as resp:
tabs = json.loads(resp.read())
for t in tabs:
if t['type'] == 'page' and '1688.com' in t.get('url', ''):
Credentials or environment variables flow to a network sink. This is a high-confidence indicator of credential exfiltration.
headers={'Content-Type': 'application/json'},
method='POST',
)
with urllib.request.urlopen(req, timeout=15) as resp:
data = json.loads(resp.read().decode('utf-8'))
if data.get('code') != 0:
raise RuntimeError(f'获取 token 失败: code={data.get("code")} msg={data.get("msg")}')
Credentials or environment variables flow to a network sink. This is a high-confidence indicator of credential exfiltration.
},
method='POST',
)
return urllib.request.urlopen(req, timeout=15)
try:
with _post() as resp:
The skill performs browser/Xvfb orchestration, remote-debugging port probing, extension loading, and marker-file ownership checks, which are sensitive local-environment control features not evident from the title/description. Such hidden control-plane behavior increases attack surface and can interfere with host/browser security expectations.
The skill performs browser/Xvfb orchestration, remote-debugging port probing, extension loading, and marker-file ownership checks, which are sensitive local-environment control features not evident from the title/description. Such hidden control-plane behavior increases attack surface and can interfere with host/browser security expectations.
The skill performs browser/Xvfb orchestration, remote-debugging port probing, extension loading, and marker-file ownership checks, which are sensitive local-environment control features not evident from the title/description. Such hidden control-plane behavior increases attack surface and can interfere with host/browser security expectations.
The skill performs browser/Xvfb orchestration, remote-debugging port probing, extension loading, and marker-file ownership checks, which are sensitive local-environment control features not evident from the title/description. Such hidden control-plane behavior increases attack surface and can interfere with host/browser security expectations.
The skill performs browser/Xvfb orchestration, remote-debugging port probing, extension loading, and marker-file ownership checks, which are sensitive local-environment control features not evident from the title/description. Such hidden control-plane behavior increases attack surface and can interfere with host/browser security expectations.
The skill performs browser/Xvfb orchestration, remote-debugging port probing, extension loading, and marker-file ownership checks, which are sensitive local-environment control features not evident from the title/description. Such hidden control-plane behavior increases attack surface and can interfere with host/browser security expectations.
The skill performs browser/Xvfb orchestration, remote-debugging port probing, extension loading, and marker-file ownership checks, which are sensitive local-environment control features not evident from the title/description. Such hidden control-plane behavior increases attack surface and can interfere with host/browser security expectations.
The skill performs browser/Xvfb orchestration, remote-debugging port probing, extension loading, and marker-file ownership checks, which are sensitive local-environment control features not evident from the title/description. Such hidden control-plane behavior increases attack surface and can interfere with host/browser security expectations.
The skill performs browser/Xvfb orchestration, remote-debugging port probing, extension loading, and marker-file ownership checks, which are sensitive local-environment control features not evident from the title/description. Such hidden control-plane behavior increases attack surface and can interfere with host/browser security expectations.
The skill performs browser/Xvfb orchestration, remote-debugging port probing, extension loading, and marker-file ownership checks, which are sensitive local-environment control features not evident from the title/description. Such hidden control-plane behavior increases attack surface and can interfere with host/browser security expectations.
The skill performs browser/Xvfb orchestration, remote-debugging port probing, extension loading, and marker-file ownership checks, which are sensitive local-environment control features not evident from the title/description. Such hidden control-plane behavior increases attack surface and can interfere with host/browser security expectations.
The skill performs browser/Xvfb orchestration, remote-debugging port probing, extension loading, and marker-file ownership checks, which are sensitive local-environment control features not evident from the title/description. Such hidden control-plane behavior increases attack surface and can interfere with host/browser security expectations.
The skill performs browser/Xvfb orchestration, remote-debugging port probing, extension loading, and marker-file ownership checks, which are sensitive local-environment control features not evident from the title/description. Such hidden control-plane behavior increases attack surface and can interfere with host/browser security expectations.
The guide documents an external messaging API that allows other extensions and 1688-domain webpages to communicate with the plugin, while collected seller analytics are retrievable through OPEN_CLAW_API. Combined with the manifest example showing externally_connectable ids set to wildcard and 1688 webpages allowed, this creates a strong risk of unauthorized cross-extension or webpage access to sensitive business data if callers are not strictly authenticated and authorized.
This code provides cross-extension/external access to locally stored collected data through OPEN_CLAW_API without validating the caller. In a browser-extension context, exposing aggregated business data to external requesters creates a direct confidentiality risk because any trusted external messaging peer can pull the dataset without user awareness.
YARA rule matched a hack tool or exploit indicator (offensive tools, reconnaissance, privilege escalation, or exploit frameworks).
{
"manifest_version": 3,
"name": "1688 Data Claw - 数据采集器",
"version": "1.0.0",
"description": "采集1688店铺经营数据,为OpenClaw提供结构化数据接口",
"key": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAur6CE+BGEBWB5atgTevs6vDdZ6meGWEF+rhbEE5RPwraDMAPRjj3a3arI0nu499MVxHRHIso7U96k7U1sPC6MDpjgHyGEQora44bUp5mv5O4pztCLF+/b9nETcXlmJjJLf/3B4clXKC1PCJDQgODbl6HIUL5RumrDDkJM93jc/2hHetJS0cGvisO9tE0jYYmGsUtJ0SA7yJS73NuH1xbhzj5+xrYAR92b/rgpe1RXuQLyotvKqUnGCdw1aAs/T4nNJ3YSFevted0cqjvU0zTvFVf8UooH6uRbgHpE0gHiD2aO5B0z4ZBdq38MbMPbtTLhYqq78pgJRXiGt9SIxXAywIDAQAB",
"permissions": [
"activeTab",
"storage",
"scripting",
"tabs",
"background"
],
"ex
The manifest claims the extension only collects 1688 seller workspace data, but its host permissions include https://*/*, granting potential access to essentially any HTTPS origin. In a browser extension, this broad scope materially expands the blast radius: if the extension logic is abused or later modified, it could read from or inject into unrelated sites beyond the stated business purpose.
Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).
else:
script = SKILL_DIR / 'scripts' / 'start-browser.sh'
cmd = f'bash "{script}"'
result = subprocess.run(cmd, shell=True, check=False)
return result.returncode == 0
The script downloads get-pip.py from the internet and immediately executes it with the bundled Python interpreter, which is direct execution of remote installer code at setup time. If the source, transport, or upstream content is compromised, arbitrary code can run on the user's machine with the privileges of the setup process.
The script fetches remote JSON to determine the browser version and uses that untrusted network response to select which binary to download. Although it is not directly piping shell code into execution, it still delegates installation decisions to mutable remote content, which is dangerous because a compromised upstream or mirror could steer the setup toward malicious or unexpected artifacts.
echo ">>> 获取最新 Chromium 版本..."
# 从 npmmirror 获取最新稳定版号
version=$(curl -s "https://registry.npmmirror.com/-/binary/chrome-for-testing/last-known-good-versions.json" \
| python3 -c "import sys,json; print(json.load(sys.stdin)['channels']['Stable']['version'])" 2>/dev/null)
echo " 最新稳定版: $version"
Hidden instructions were detected in comments or invisible text. These could contain malicious directives. Manual review is recommended.
# ============================================================
# 1688 Data Claw - Windows launcher
# Start or reuse an independent Chromium instance (headless)
# Uses a marker file to identify our instance (no process kill)