T09 · Insecure Skill Coding Practices
- Location
SKILL.md:74- Finding
Plaintext HTTP Used for Weather Fallback Requests
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:74-86
Vulnerability Type: Unencrypted network communication
Risk Level: MediumThe wttr.in fallback examples omit the HTTPS scheme or explicitly specify HTTP:
bash curl -s "wttr.in/São+Paulo?format=3"Compact plain-text:
bash curl -s "wttr.in/São+Paulo?format=1"PNG image (for terminals or embeds):
bash curl -s -o sp.png "http://wttr.in/São+Paulo?format=1"Technical Analysis
A URL without an explicit scheme is interpreted by
curlas an HTTP request in this context, while the PNG example explicitly useshttp://. Consequently, these fallback requests lack transport encryption and server authentication.An attacker capable of observing or modifying network traffic can read the requested location and tamper with the weather response. The use of
curl -salso suppresses diagnostic output, making transport failures and unexpected server behavior less visible.Attack Path
- A user requests weather information for a location.
- The primary Open-Meteo operation fails or the agent otherwise invokes the documented wttr.in fallback.
- The agent sends the location to wttr.in using plaintext HTTP.
- An attacker controlling or monitoring the network path intercepts the request.
- The attacker reads the queried location or alters the returned weather text or PNG data.
- The manipulated response is displayed to the user or saved as
sp.png.
Impact Assessment
The vulnerability can expose queried location data and compromise the integrity of weather information or downloaded image content. An attacker could provide misleading weather data or arbitrary file content under the
sp.pngname.No direct privilege escalation or code-execution path is established because the downloaded file is only saved and is not executed by the documented commands. The demonstrated impact is limited to network confiden ...[truncated 106 chars]
- Remediation
View remediation
Remediation Suggestions
-
Use explicit HTTPS URLs for every wttr.in request:
bash curl --fail --show-error --location "https://wttr.in/São+Paulo?format=3" curl --fail --show-error --location "https://wttr.in/São+Paulo?format=1" curl --fail --show-error --location \ --output sp.png \ "https://wttr.in/São+Paulo?format=1" -
Do not permit fallback from HTTPS to plaintext HTTP.
-
Retain TLS certificate verification and do not add options such as
--insecure. -
Use
--fail --show-errorrather than silent-only operation so HTTP and transport failures remain visible. -
Validate the response status and expected content type before displaying or saving downloaded content.
-
URL-encode user-provided locations before incorporating them into the fallback URL.
-
Where supported, restrict redirects to HTTPS destinations and approved hosts.
-
