Announcing Beacon: Self-improving memory for coding agents
← All skills
Skill

github-proxy

skill:volcengine/openviking#github-proxy

GitHub 国内访问加速 skill,使用 githubproxy.cc 代理加速 GitHub 仓库克隆、文件下载、Raw 文件访问等操作。使用场景:(1) 需要 git clone GitHub 仓库时加速,(2) 下载 GitHub Release 文件、Raw 文件、Archive 压缩包时加速,(3) 任何需要访问 GitHub 资源但速度慢的场景

Verdict
Suspicious

Risky behavior the analysis could not rule out.

Analyzed Oct 27, 2026, 22:25 UTC at 54d4c0f

Dispute security verdict

If you believe this verdict is incorrect, submit a dispute and we'll review it.

1
findings
medium
highest severity
1
threat classes
5,511
files scanned
37/37
checks satisfied
0
package advisories

Why this verdict

  • suspicious: unverified finding skill:bot/workspace/skills/github-proxy:bot/workspace/skills/github-proxy/scripts/convert_url.py:23:SUPPLY

Security findings 1

Supply chain

mediumUnverifiedmedium confidence

scripts/convert_url.py, which SKILL.md tells the agent to run, programmatically rewrites any matching GitHub URL to proxy + / + url with the proxy defaulting to https://githubproxy.cc and a fallback to https://ghfast.top, channeling every converted download through these third-party endpoints.

{proxy}/{url}
vector:code

Open questions 1

What the analysis could not settle from the code alone.

Whether the third-party proxies githubproxy.cc and ghfast.top are operated by a trustworthy party and whether they tamper with the repository or file content they relay cannot be determined from the artifact; all downloads routed through them are unverified.
Supply chain
Refuted findings 4

Candidates the review stage examined and rejected, kept for transparency.

Supply chain

highRefutedlow confidence

The helper script hardcodes a second third-party proxy ghfast.top, reachable via a --backup flag, that the target's declared description (which names only githubproxy.cc) does not declare, sending fetched GitHub URLs through an additional non-official host; the behavior is disclosed in SKILL.md as a backup service but is undeclared at the target level and routes release/archive content through a host with no integrity guarantees.

BACKUP_PROXY = 
Why it was refuted

ghfast.top is not concealed: the artifact declares it as its backup proxy in the 代理服务 section and in the 注意事项 fallback rule, and it is reachable only via an explicit --backup flag for the same declared proxy-acceleration operation, so the behavior is declared within the artifact and stays inside the declared core capability's carve-out.

Supply chain

highRefutedmedium confidence

SKILL.md instructs the agent to route git clones and file downloads (raw files, releases, archives, gists) through the third-party proxy https://githubproxy.cc/, so all fetched code and files pass through a proxy operator of unknown trust who can modify content before it is built or executed.

git clone https://githubproxy.cc/https://github.com/username/repo.git
Why it was refuted

Routing git clones through githubproxy.cc is exactly the skill's declared core capability ('使用 githubproxy.cc 代理加速 GitHub 仓库克隆、文件下载、Raw 文件访问等操作'), stated openly in the frontmatter description, so the harm carve-out applies and the behavior is declared, not concealed. The speculative risk that the proxy operator might tamper with content is inherent to any mirror the skill exists to wrap, not an undeclared behavior of the artifact.

Supply chain

highRefutedlow confidence

SKILL.md instructs the agent to fetch GitHub raw files through the third-party proxy githubproxy.cc, placing an unaffiliated intermediary in a position to substitute downloaded code or files, though this matches the skill's declared acceleration purpose.

wget https://githubproxy.cc/https://raw.githubusercontent.com/username/repo/main/file.txt
Why it was refuted

Proxying raw-file fetches through githubproxy.cc is the declared core capability ('Raw 文件访问' is named verbatim in the description) and is disclosed with an exact example in the skill body, so the harm carve-out applies and nothing is undeclared or concealed.

Supply chain

highRefutedlow confidence

SKILL.md instructs routing GitHub repository clones and raw/release/archive downloads through the third-party proxy githubproxy.cc (backup ghfast.top), so all fetched code passes through an untrusted intermediary that could substitute content.

| `https://github.com/username/repo.git` | `https://githubproxy.cc/https://github.com/username/repo.git` |
Why it was refuted

The conversion table is the skill's declared core capability: the description explicitly claims acceleration for clones, Release files, Raw files and Archive packages via githubproxy.cc, and even the parenthetical backup host ghfast.top is openly declared in the skill body, so neither a harm beyond the carve-out nor concealment exists.

Coverage gaps 22

Parts of the artifact the static analysis could not fully examine.

context:unanalyzable_binary binary content is only byte-scanned
docs/images/favicon.ico
context:unanalyzable_binary binary content is only byte-scanned
openviking/server/static/favicon.ico
context:submodule_present submodules are not fetched
third_party/leveldb-1.23/.gitmodules
context:unanalyzable_binary binary content is only byte-scanned
web-studio/public/favicon.ico
external_plugin_source plugin 'openviking-memory' source is not local
.claude-plugin/marketplace.json
context:manifest_unparseable yaml: YAML aliases are not permitted
bot/deploy/docker/langfuse/docker-compose.yml
context:manifest_unparseable yaml: while scanning a simple key
bot/deploy/vke/k8s/deployment.yaml
context:manifest_unparseable yaml: while parsing a flow node
deploy/helm/openviking/templates/configmap.yaml
context:manifest_unparseable yaml: while parsing a flow node
deploy/helm/openviking/templates/deployment.yaml
context:manifest_unparseable yaml: while parsing a flow node
deploy/helm/openviking/templates/ingress.yaml
context:manifest_unparseable yaml: while parsing a flow node
deploy/helm/openviking/templates/pvc.yaml
context:manifest_unparseable yaml: while parsing a flow node
deploy/helm/openviking/templates/service.yaml
context:manifest_unparseable yaml: while parsing a flow node
deploy/helm/openviking/templates/serviceaccount.yaml
context:manifest_unparseable yaml: while parsing a flow node
deploy/helm/openviking-gateway/templates/configmap.yaml
context:manifest_unparseable yaml: while parsing a flow node
deploy/helm/openviking-gateway/templates/deployment.yaml
context:manifest_unparseable yaml: while parsing a flow node
deploy/helm/openviking-gateway/templates/networkpolicy.yaml
context:manifest_unparseable yaml: while parsing a flow node
deploy/helm/openviking-gateway/templates/pdb.yaml
context:manifest_unparseable yaml: while parsing a flow node
deploy/helm/openviking-gateway/templates/pvc.yaml
context:manifest_unparseable yaml: while parsing a flow node
deploy/helm/openviking-gateway/templates/service.yaml
context:manifest_unparseable yaml: while parsing a flow node
examples/k8s-helm/templates/deployment.yaml
context:manifest_unparseable yaml: while parsing a block mapping
examples/k8s-helm/templates/secret.yaml
context:manifest_unparseable yaml: while parsing a flow node
examples/k8s-helm/templates/service.yaml