T09 · Insecure Skill Coding Practices
- Location
research_push.py:25- Finding
Plaintext arXiv API Communication Permits Interception and Response Tampering
- Content
View full analysis
Vulnerability Details
File Location:
research_push.py, lines 25-57
Vulnerability Type: Cleartext external API communication
Risk Level: MediumVulnerable Code
python def __init__(self): self.base_url = "http://export.arxiv.org/api/query" self.headers = {"User-Agent": "OpenClaw-Research-Push/1.0"}python response = requests.get( self.base_url, params=params, headers=self.headers, timeout=30 ) response.raise_for_status()Technical Analysis
The arXiv API endpoint uses plaintext HTTP rather than HTTPS. Consequently, the initial request—including the user's research query—is not protected by transport encryption or server authentication.
An attacker with a network-level interception position can inspect the research query or modify the HTTP response. Because the returned XML is parsed and its titles, abstracts, authors, and links are incorporated into the generated report, response tampering can introduce misleading content or attacker-selected links.
Even if the server redirects HTTP requests to HTTPS, the initial HTTP request remains susceptible to interception. An attacker may replace the redirect or provide a forged response before a secure connection is established.
Attack Path
- A user invokes the skill with a research topic.
- The skill sends the query to
http://export.arxiv.org/api/query. - An attacker positioned on the local network, proxy, gateway, or another network transit point intercepts the plaintext request.
- The attacker reads the research query or returns a modified Atom XML response.
- The application accepts and parses the modified response.
- Attacker-controlled titles, summaries, author information, or PDF links are displayed in the generated report.
- A user may rely on falsified information or follow an attacker-controlled link.
Impact Assessment
This issue can expose users' research intere ...[truncated 314 chars]
- Remediation
View remediation
Remediation Suggestions
- Replace the endpoint with
https://export.arxiv.org/api/query. - Retain the default TLS certificate verification provided by
requests. - Reject redirects that downgrade a request from HTTPS to HTTP.
- Validate the final response URL and require the
httpsscheme and expected arXiv hostname. - Continue using a finite timeout and consider separate connection and read timeouts.
- Validate response content type and structure before processing it.
- Sanitize all remote metadata before inserting it into a report.
- Replace the endpoint with
