Scan Report
5 /100
fly-flight
China domestic flight and high-speed rail transport lookup skill via public web sources and 12306 official endpoints
A legitimate China domestic transport query skill (flights + trains) that makes documented HTTP requests to public endpoints with no malicious behavior, credential access, or data exfiltration.
Safe to install
No blocking action needed. The skill is safe for deployment.
Findings 2 items
| Severity | Finding | Location |
|---|---|---|
| Low | Node.js invocation not explicitly called out in SKILL.md Doc Mismatch | scripts/providers/flight_public_service.py:63 |
| Low | Local HTTP server binds to all interfaces by default Sensitive Access | scripts/transport_service.py:24 |
| Resource | Declared | Inferred | Status | Evidence |
|---|---|---|---|---|
| Network | READ | READ | ✓ Aligned | flight_public_service.py:74-76 fetches ly.com; train_public_service.py:45-47 fet… |
| Filesystem | READ | READ | ✓ Aligned | flight_public_service.py:18 reads local JSON data files; sample state files read… |
| Shell | NONE | READ | ✓ Aligned | flight_public_service.py:63-68 invokes 'node extract_tongcheng_state.js' — node … |
| Environment | NONE | NONE | — | No os.environ access found anywhere |
| Clipboard | NONE | NONE | — | Not used |
| Browser | NONE | NONE | — | Not used |
| Database | NONE | NONE | — | Not used |
| Skill Invoke | NONE | NONE | — | No skill-invocation or inter-skill calls found |
8 findings
Medium External URL 外部 URL
https://www.ly.com/flights/ README.md:78 Medium External URL 外部 URL
https://kyfw.12306.cn/ README.md:83 Medium External URL 外部 URL
https://www.ly.com/flights/itinerary/oneway/ references/provider-public-web.md:6 Medium External URL 外部 URL
https://www.ly.com/flights/itinerary/oneway/BJS-SHA?date=2026-03-20 references/provider-public-web.md:7 Medium External URL 外部 URL
https://kyfw.12306.cn/otn/resources/js/framework/station_name.js?station_version=1.9367 scripts/providers/train_public_service.py:20 Medium External URL 外部 URL
https://kyfw.12306.cn/otn/leftTicket/queryG scripts/providers/train_public_service.py:21 Medium External URL 外部 URL
https://kyfw.12306.cn/otn/leftTicket/init?linktypeid=dc scripts/providers/train_public_service.py:22 Medium External URL 外部 URL
https://kyfw.12306.cn/otn/leftTicketPrice/queryAllPublicPrice scripts/providers/train_public_service.py:23 File Tree
17 files · 70.4 KB · 2063 lines Python 6f · 1275L
JSON 6f · 378L
Markdown 3f · 377L
JavaScript 1f · 29L
YAML 1f · 4L
├─
▾
agents
│ └─
openai.yaml
YAML
├─
▾
assets
│ ├─
▾
data
│ │ ├─
airport_aliases.json
JSON
│ │ └─
domestic_city_codes.json
JSON
│ ├─
sample-provider-response.json
JSON
│ ├─
sample-public-state.json
JSON
│ ├─
sample-train-price.json
JSON
│ └─
sample-train-query.json
JSON
├─
▾
references
│ └─
provider-public-web.md
Markdown
├─
▾
scripts
│ ├─
▾
providers
│ │ ├─
__init__.py
Python
│ │ ├─
flight_public_service.py
Python
│ │ └─
train_public_service.py
Python
│ ├─
domestic_flight_public_service.py
Python
│ ├─
extract_tongcheng_state.js
JavaScript
│ ├─
test_domestic_flight_public_service.py
Python
│ └─
transport_service.py
Python
├─
README.md
Markdown
└─
SKILL.md
Markdown
Security Positives
✓ No credential harvesting — no access to ~/.ssh, ~/.aws, .env, or os.environ
✓ No data exfiltration — all network calls are to documented, legitimate transport query endpoints (ly.com, 12306.cn)
✓ No obfuscation — no base64, eval(), or dynamic code generation found
✓ No reverse shell, C2, or persistence mechanisms
✓ No supply chain risks — no external dependencies declared, only python3 and node runtime tools
✓ All network destinations are explicitly documented in SKILL.md and README.md
✓ Sample data files are used only as test fixtures, not loaded dynamically from untrusted sources
✓ SSL context is properly configured for 12306 HTTPS calls
✓ No arbitrary file writes — filesystem access is read-only (loading local JSON data files)
✓ The node subprocess executes a fixed script path within the skill directory, not arbitrary user input