other
Note
- Location
- scripts/fetch_news.py:383
- Finding
- Undocumented Outbound Network Access to Jin10## Vulnerability Details **File Location**: `scripts/fetch_news.py:383`, `scripts/fetch_news.py:509` **Vulnerability Type**: Undocumented outbound network access **Risk Level**: Low ### Complete Code Snippet ```python def fetch_jin10_news(limit=20): """Fetch Jin10 flash news directly from API (newsnow-style)""" try: timestamp = int(time.time() * 1000) url = f"https://www.jin10.com/flash_newest.js?t={timestamp}" raw_data = http_request(url, timeout=30) ``` ```python fetchers = { "weibo": fetch_weibo_hot, "zhihu": fetch_zhihu_hot, "baidu": fetch_baidu_hot, "douyin": fetch_douyin_hot, "wallstreetcn": fetch_wallstreetcn_hot, "toutiao": fetch_toutiao_hot, "jin10": fetch_jin10_news, "thepaper": fetch_thepaper_hot, } ``` ### Technical Analysis The dispatcher accepts `jin10` as a source and invokes `fetch_jin10_news`, which sends an HTTPS request to `www.jin10.com`. However, `SKILL.md` does not identify Jin10 as a supported source and does not include `www.jin10.com` or `flash.jin10.com` in its network-request disclosure table. This creates a mismatch between the documented and actual outbound network behavior. It also contradicts the documentation's assertion that the Skill has no unexpected outbound endpoints. The request retrieves news data rather than executable code, so this finding is not remote payload execution. ### Attack Path 1. A user or agent invokes `scripts/fetch_news.py` with `jin10` as the source. 2. `fetch_news()` resolves the source through the `fetchers` dictionary. 3. `fetch_jin10_news()` constructs a URL under `https://www.jin10.com/`. 4. `http_request()` sends an outbound HTTPS request to the undocumented third party. 5. Jin10 receives network metadata including the source IP, request timestamp, and User-Agent. 6. Returned data is parsed and emitted as news output. ### Impact Assessment The issue does not provide local code execution, elevated privileges, persistence, or ac ...[truncated 300 chars]
- Remediation
- ## Remediation Suggestions 1. Add Jin10 to the documented supported-source table and usage examples in `SKILL.md`. 2. Add `www.jin10.com` and `flash.jin10.com` to the network-request disclosure table. 3. Revise the claim that there are no unexpected outbound endpoints so it accurately reflects all implemented behavior. 4. Alternatively, remove `fetch_jin10_news` and its dispatcher entry if Jin10 is not intended to be supported. 5. Implement an explicit hostname allowlist in `http_request()` and keep it synchronized with the documented endpoint inventory. 6. Add an automated test that extracts outbound hostnames from the implementation and compares them with the documented allowlist.
