PyGeoFetch

v0.1.4 suspicious
6.0
Medium Risk

Universal satellite data download pipeline with unified access to 20+ repositories

🤖 AI Analysis

Final verdict: SUSPICIOUS

The package exhibits moderate risk due to potential obfuscation and credential handling issues, though legitimate network calls and lack of shell execution reduce immediate concerns.

  • High obfuscation risk through base64 decoding
  • Potential insecure handling of credentials
Per-check LLM notes
  • Network: The package makes legitimate network calls to an API endpoint, which is typical for a geospatial data fetching tool like 'PyGeoFetch'.
  • Shell: No shell execution patterns were detected in the provided code snippets.
  • Obfuscation: The use of base64 decoding without clear justification may indicate an attempt to hide code logic.
  • Credentials: Accessing keyring for password retrieval suggests potential interaction with user credentials, requiring careful review to ensure proper handling and security.
  • Metadata: The repository is not found, and the maintainer has only one package, which could indicate a new or less active account, raising some suspicion.

🔬 Heuristic Checks

Outbound Network Calls score 7.5

Found 5 network call pattern(s)

  • ll(): response = requests.get("https://api.example.com/data") response.raise_
  • :.1f} MB" } httpx.post(url, json=payload, timeout=10) except Exception as exc:
  • try: resp = httpx.get(url, timeout=8) if resp.status_code < 400:
  • try: resp = httpx.get(f"{self.BASE_URL}/search", params=params, headers=headers,
  • try: response = httpx.post( f"{self.BASE_URL}/search",
Code Obfuscation score 8.0

Found 4 obfuscation pattern(s)

  • decoded[k] = base64.b64decode(v.encode()).decode() except Excepti
  • d"): token = base64.b64decode(token).decode() return token except Ex
  • == "fish": line = f"eval (env _pygeofetch_COMPLETE=fish_source {prog})" cfg =
  • a` object if eval(expression, {"data": item, "__builtins__": {}}): # noqa: S3
Shell / Subprocess Execution

No shell execution patterns detected

Credential Harvesting score 2.5

Found 1 credential access pattern(s)

  • t keyring data = keyring.get_password(self.SERVICE_NAME, provider) if data:
Typosquatting

No typosquatting candidates detected

Registered Email Domain

No author email provided

Suspicious Page Links

All external links appear legitimate

Git Repository History score 3.0

Repository not found (deleted or private)

  • Repository not found (deleted or private)
Maintainer History score 2.0

1 maintainer concern(s) found

  • Author "pygeofetch Contributors" appears to have only 1 package on PyPI (new or inactive account)
Known CVE Vulnerabilities

No known vulnerabilities found in OSV database.

💡 AI App Starter Prompt

Use this prompt to build a project with PyGeoFetch
Develop a small but impactful application using the PyGeoFetch Python package, which provides a universal satellite data download pipeline with unified access to over 20 repositories. Your task is to create a 'Satellite Data Explorer', a command-line tool that allows users to query, download, and visualize satellite data easily.

### Features:
1. **Data Querying**: Users should be able to search for specific types of satellite data by specifying parameters such as date range, geographic coordinates, and type of data (e.g., imagery, climate data).
2. **Download Mechanism**: Once the data is queried, the user should have the option to download the selected datasets directly from the satellite repositories through PyGeoFetch.
3. **Visualization**: After downloading, the application should provide basic visualization capabilities to display the downloaded satellite data. This could include plotting maps with overlays for various types of data.
4. **User Interface**: Design a simple yet effective command-line interface (CLI) that guides users through the process of querying, downloading, and visualizing satellite data.
5. **Documentation**: Include comprehensive documentation within the project that explains how to install PyGeoFetch, how to use the CLI tool, and any additional setup instructions required.

### Utilization of PyGeoFetch:
- Use PyGeoFetch's API to interact with multiple satellite data repositories seamlessly.
- Implement functions within your application that utilize PyGeoFetch to fetch metadata about available datasets, allowing users to specify their queries more accurately.
- Integrate PyGeoFetch's download functionality into your application to handle the downloading of selected datasets.
- Ensure that your application leverages PyGeoFetch's capabilities to support a wide variety of satellite data types and formats.

Your goal is to create a versatile and user-friendly tool that makes it easy for anyone interested in satellite data to explore and analyze it without needing extensive technical knowledge.