Versioned security assessment

Report ID: SA-A25199BC

7/5/2026, 6:00:29 PM

gwas-database security assessment v6

Skill Security Certification Report

Audit History
Audit model: codex Historical report
Skill name
gwas-database
Version
v6
Maintainer
K-Dense-AI
Coverage
2 Files scanned · 1,402 Lines analyzed
Policy version
Unavailable

Highest confirmed finding severity

Medium

1 confirmed security finding requires attention.

Installation context

Historical evidence

This report may not describe the currently installable artifact. Open the current Skill page for install guidance.

Open current Skill page

This report does not block or authorize the manifest or ZIP.

Most static findings are false positives from Markdown backticks and intended examples accessing public NHGRI-EBI GWAS endpoints. Confirmed risks are limited to FTP or plain HTTP summary-statistics downloads and local file writing without integrity or path safeguards. No prompt injection or malicious exfiltration language was found.

Report position

Historical report

Open audit history before using this report to install.

Audit attestation

Not attestable

The required immutable binding is incomplete.

Human verification

Not verified

No human verification is recorded for this report.

Coverage

2 Files scanned · 1,402 Lines analyzed

8 items shown for review

Limitations

This report does not claim runtime or sandbox execution and does not prove the absence of side effects.

Evidence chain

Follow the evidence from source binding to the install contract. Available evidence supports verification; it is not a safety guarantee.

  1. Source

    Binding unavailable

  2. Artifact

    Identity incomplete

  3. Audit

    Complete

  4. Install contract

    Open manifest to verify

    Open manifest

Capabilities observed

Observed means this report recorded supporting evidence. Not recorded does not prove that a capability is absent.

Contains scripts

May execute code included with the Skill.

Not recorded by this audit

Network access

May connect to external services.

Observed in 91 evidence locations

Filesystem access

May read or write local files.

Observed in 1 evidence location

Env variables

May read values from the process environment.

Not recorded by this audit

External commands

May invoke commands or programs outside the Skill.

Observed in 71 evidence locations

Capability review items (7)
Medium
Python file write/append
with open(output_path, 'wb') as f:
The example writes streamed network content to a local path derived from parameters. Normal GCST IDs are structured, but the workflow lacks path validation, overwrite protection, and checksum checks.
Medium
FTP protocol
# ftp://ftp.ebi.ac.uk/pub/databases/gwas/summary_statistics/GCSTXXXXXX/
The skill recommends ftp:// access for GWAS summary statistics. FTP lacks transport security and integrity protection, so downloaded research data could be tampered with in transit.
Medium
FTP protocol
wget ftp://ftp.ebi.ac.uk/pub/databases/gwas/summary_statistics/GCSTXXXXXX/harmonised/GCSTXXXXXX-harm
The skill recommends ftp:// access for GWAS summary statistics. FTP lacks transport security and integrity protection, so downloaded research data could be tampered with in transit.
Low
Python HTTP libraries
response = requests.get(harmonised_url, stream=True)
This request streams a summary-statistics download built from a plain HTTP FTP mirror URL. The source is legitimate, but the example lacks secure transport and integrity validation.
Low
Hardcoded URL
ftp_base = "http://ftp.ebi.ac.uk/pub/databases/gwas/summary_statistics"
This URL points to a plain HTTP or FTP bulk-download path for public summary statistics. The domain is legitimate, but the transport is not integrity protected.
Low
Hardcoded URL
1. **FTP download**: http://ftp.ebi.ac.uk/pub/databases/gwas/summary_statistics/
This URL points to a plain HTTP or FTP bulk-download path for public summary statistics. The domain is legitimate, but the transport is not integrity protected.
Low
Hardcoded URL
- **FTP site**: http://ftp.ebi.ac.uk/pub/databases/gwas/
This URL points to a plain HTTP or FTP bulk-download path for public summary statistics. The domain is legitimate, but the transport is not integrity protected.

Risk findings

Confirmed security concerns are separated from items that still need review.

Confirmed security concerns (1)

RISK-001 Medium
Unverified Summary Statistics Download
The skill includes workflows that fetch summary statistics over FTP or plain HTTP and save them locally without checksum or signature validation.
The cited examples use wget over FTP or requests against an http://ftp.ebi.ac.uk URL, then write downloaded bytes locally. The endpoint is legitimate, but the workflow lacks integrity verification.

Remediation

Suggested fixes recorded by this audit. Applying them is the maintainer’s responsibility.

  1. FIX-001
    Medium
    FTP and plain HTTP download examples lack transport security.
    Prefer HTTPS API or web download paths. If FTP is unavoidable, require checksums or signatures before using downloaded data.
  2. FIX-002
    Medium
    Downloaded files are written without path validation or overwrite controls.
    Validate GCST identifiers, constrain output paths to a user-approved directory, and avoid overwriting existing files by default.
  3. FIX-003
    Low
    Network examples do not consistently mention operational safeguards.
    Add timeouts, pagination limits, caching, rate limiting, and an allowlist for GWAS Catalog domains in executable examples.

Expert evidence

Immutable subject identity, scanner metadata, dismissed matches, and source-level evidence.

Artifact subject

Marketplace commit
Unavailable
Content hash
Unavailable
Tree hash
Unavailable
Skill path
Unavailable
Audit payload hash
Unavailable

Analysis metadata

Audit model: codex

Analysis state: Complete

Scope is limited to the recorded files, lines, methods, and evidence. No runtime or sandbox execution is claimed.

Verify and export

The manifest and lockfile bind install artifacts to cryptographic hashes. This integrity claim is separate from the security assessment.

Audit attestation: not_attestable