T09 · Insecure Skill Coding Practices
- Location
scripts/config.py:9- Finding
Bearer credentials and confidential queries can be sent to arbitrary configured endpoints
- Content
View full analysis
tuple[str, str]: """Return explicitly configured patent REST settings.""" return ( require_setting("PATSNAP_BASE_URL", PATSNAP_BASE_URL), require_setting("PATSNAP_API_KEY", PATSNAP_API_KEY), ) def literature_api_settings() -> tuple[str, str]: """Return explicitly configured literature REST settings.""" return ( require_setting("PATSNAP_LITERATURE_BASE_URL", LITERATURE_BASE_URL), require_setting("PATSNAP_LITERATURE_API_KEY", LITERATURE_API_KEY), ) ``` ```python # scripts/fetch_competitor_report.py:14-23 def _auth_headers(): _, api_key = _cfg.patent_api_settings() return {"Authorization": f"Bearer {api_key}"} def _base_url(): """Return the explicitly configured, verified PatSnap REST base URL.""" base_url, _ = _cfg.patent_api_settings() return base_url.rstrip("/") ``` ```python # scripts/fetch_competitor_report.py:55-67 def search(query, limit=200): """Run the verified v2 query-search endpoint.""" url = f"{_base_url()}/search/patent/query-search-patent/v2" payload = { "sort": [{"field": "PBDT_YEARMONTHDAY", "order": "DESC"}], "limit": limit, "offset": 0, "query_text": query, "collapse_by": "PBD", "collapse_type": "DOCDB", "collapse_order": "LATEST", } res ...[truncated 3196 chars]- Remediation
View remediation
