Dieser Bericht ist nicht in der angeforderten Sprache verfügbar. Stattdessen wird der maßgebliche englische Bericht angezeigt.

Versionierte Sicherheitsbewertung

Berichts-ID: SA-62E2A730

7/5/2026, 9:16:29 PM

qryma-search Sicherheitsbewertung v6

Zertifizierungsbericht zur Skill-Sicherheit

Audit-Verlauf
Auditmodell: codex Historischer Bericht
Skillname
qryma-search
Version
v6
Betreuer
qryma-ai
Abdeckung
12 Gescannte Dateien · 770 Analysierte Zeilen
Richtlinienversion
Nicht verfügbar

Höchster bestätigter Schweregrad eines Befunds

Hoch

9 bestätigte Sicherheitsbefunde erfordern Aufmerksamkeit.

Installationskontext

Historische Nachweise

Dieser Bericht beschreibt möglicherweise nicht das derzeit installierbare Artefakt. Öffnen Sie die aktuelle Skill-Seite für Installationshinweise.

Aktuelle Skill-Seite öffnen

Dieser Bericht blockiert oder autorisiert weder das Manifest noch die ZIP-Datei.

The skill is a legitimate Qryma web-search wrapper, but it performs real network egress and handles API credentials. Confirmed risks include API key loading from environment and .env files, transmission of the key in an outbound header, a configurable endpoint that can redirect credentials, and documentation that encourages sharing keys with an AI assistant.

Position melden

Historischer Bericht

Öffnen Sie den Auditverlauf, bevor Sie diesen Bericht zur Installation verwenden.

Audit-Nachweis

Nicht bescheinigungsfähig

Die erforderliche unveränderliche Bindung ist unvollständig.

Menschliche Überprüfung

Nicht überprüft

Für diesen Bericht ist keine menschliche Überprüfung verzeichnet.

Abdeckung

12 Gescannte Dateien · 770 Analysierte Zeilen

44 Elemente zur Überprüfung angezeigt

Einschränkungen

Dieser Bericht beansprucht keine Laufzeit- oder Sandbox-Ausführung und beweist nicht das Fehlen von Nebenwirkungen.

Beweiskette

Folgen Sie den Nachweisen von der Quellenbindung bis zum Installationsvertrag. Verfügbare Nachweise unterstützen die Überprüfung; sie sind keine Sicherheitsgarantie.

  1. Quelle

    Bindung nicht verfügbar

  2. Artefakt

    Identität unvollständig

  3. Prüfung

    Vollständig

  4. Installationsvertrag

    Manifest zur Überprüfung öffnen

    Manifest öffnen

Beobachtete Funktionen

„Beobachtet“ bedeutet, dass dieser Bericht unterstützende Nachweise erfasst hat. Nicht erfasst bedeutet nicht, dass eine Fähigkeit nicht vorhanden ist.

Enthält Skripte

Kann mit dem Skill enthaltenen Code ausführen.

Durch dieses Audit nicht erfasst

Netzwerkzugriff

Kann eine Verbindung zu externen Diensten herstellen.

An 17 Nachweisstellen beobachtet

Dateisystemzugriff

Kann lokale Dateien lesen oder schreiben.

An 2 Nachweisstellen beobachtet

Umgebungsvariablen

Kann Werte aus der Prozessumgebung lesen.

An 31 Nachweisstellen beobachtet

Externe Befehle

Kann Befehle oder Programme außerhalb des Skills aufrufen.

An 14 Nachweisstellen beobachtet

Elemente der Fähigkeitsprüfung (35)
Hoch
Generic API/secret keys
adapter = QrymaAdapter(api_key=getattr(args, "api_key", None))
The code accepts an API key through CLI or event parameters and passes it into the adapter/core. Secrets provided this way can appear in process listings, shell history, captured events, or logs.
Hoch
Generic API/secret keys
api_key = event.get("api_key") if isinstance(event, dict) else None
The code accepts an API key through CLI or event parameters and passes it into the adapter/core. Secrets provided this way can appear in process listings, shell history, captured events, or logs.
Hoch
Generic API/secret keys
adapter = QrymaAdapter(api_key=api_key)
The code accepts an API key through CLI or event parameters and passes it into the adapter/core. Secrets provided this way can appear in process listings, shell history, captured events, or logs.
Hoch
Generic API/secret keys
Get your free QRYMA_API_KEY from [qryma.com](https://qryma.com/). Chat with your AI assistant and as
The documentation tells users to provide QRYMA_API_KEY through an AI assistant prompt or similar chat flow. That can disclose a real API key into chat logs, tool transcripts, or third-party model systems.
Hoch
Generic API/secret keys
Please configure qryma search with the QRYMA_API_KEY set to ak-your-api-key-here.
The documentation tells users to provide QRYMA_API_KEY through an AI assistant prompt or similar chat flow. That can disclose a real API key into chat logs, tool transcripts, or third-party model systems.
Hoch
Generic API/secret keys
从[qryma.com](https://qryma.com/) 获取免费的QRYMA_API_KEY,直接发送给你的AI助手,让他帮你自动配置。
The documentation tells users to provide QRYMA_API_KEY through an AI assistant prompt or similar chat flow. That can disclose a real API key into chat logs, tool transcripts, or third-party model systems.
Hoch
Generic API/secret keys
请帮我配置好qryma search,设置QRYMA_API_KEY为ak-your-api-key-here
The documentation tells users to provide QRYMA_API_KEY through an AI assistant prompt or similar chat flow. That can disclose a real API key into chat logs, tool transcripts, or third-party model systems.
Hoch
Generic API/secret keys
export QRYMA_API_KEY="ak-your-api-key-here"
The documentation shows storing QRYMA_API_KEY in shell environment state or a plaintext .env file. This is a common setup method, but it creates a real local secret-exposure risk if history or files are not protected.
Hoch
Generic API/secret keys
echo 'QRYMA_API_KEY=ak-your-api-key-here' > .env
The documentation shows storing QRYMA_API_KEY in shell environment state or a plaintext .env file. This is a common setup method, but it creates a real local secret-exposure risk if history or files are not protected.
Hoch
Generic API/secret keys
adapter = QrymaAdapter(api_key=getattr(args, "api_key", None))
The code accepts an API key through CLI or event parameters and passes it into the adapter/core. Secrets provided this way can appear in process listings, shell history, captured events, or logs.
Hoch
Generic API/secret keys
def __init__(self, core: QrymaSearchCore = None, api_key: str = None):
The code accepts an API key through CLI or event parameters and passes it into the adapter/core. Secrets provided this way can appear in process listings, shell history, captured events, or logs.
Hoch
Generic API/secret keys
self.core = QrymaSearchCore(api_key=api_key)
The code accepts an API key through CLI or event parameters and passes it into the adapter/core. Secrets provided this way can appear in process listings, shell history, captured events, or logs.
Hoch
Hidden file in home directory
env_path = os.path.expanduser("~/.qryma/.env")
The code reads .env or ~/.qryma/.env and extracts QRYMA credentials or endpoint settings. Automatic reads from hidden or local environment files can expose secrets outside the skill package boundary.
Hoch
Hidden file in home directory
env_path = os.path.expanduser("~/.qryma/.env")
The code reads .env or ~/.qryma/.env and extracts QRYMA credentials or endpoint settings. Automatic reads from hidden or local environment files can expose secrets outside the skill package boundary.
Hoch
Hidden file access
env_path = os.path.expanduser("~/.qryma/.env")
The code reads .env or ~/.qryma/.env and extracts QRYMA credentials or endpoint settings. Automatic reads from hidden or local environment files can expose secrets outside the skill package boundary.
Hoch
Hidden file access
env_path = os.path.expanduser("~/.qryma/.env")
The code reads .env or ~/.qryma/.env and extracts QRYMA credentials or endpoint settings. Automatic reads from hidden or local environment files can expose secrets outside the skill package boundary.
Hoch
Python environment access
key = os.environ.get("QRYMA_API_KEY")
The code reads QRYMA_API_KEY from the process environment for use as a credential. This is expected for the skill, but it is still real environment-secret access.
Hoch
Generic API/secret keys
key = os.environ.get("QRYMA_API_KEY")
The code reads QRYMA_API_KEY from the process environment for use as a credential. This is expected for the skill, but it is still real environment-secret access.
Hoch
Generic API/secret keys
m = re.search(r"^\s*QRYMA_API_KEY\s*=\s*(.+?)\s*$", txt, re.M)
The code reads .env or ~/.qryma/.env and extracts QRYMA credentials or endpoint settings. Automatic reads from hidden or local environment files can expose secrets outside the skill package boundary.
Hoch
Generic API/secret keys
def __init__(self, api_key: Optional[str] = None, endpoint: Optional[str] = None):
The code accepts an API key through CLI or event parameters and passes it into the adapter/core. Secrets provided this way can appear in process listings, shell history, captured events, or logs.
Hoch
Generic API/secret keys
self.api_key = api_key or load_key()
The code accepts an API key through CLI or event parameters and passes it into the adapter/core. Secrets provided this way can appear in process listings, shell history, captured events, or logs.
Hoch
Generic API/secret keys
"X-Api-Key": self.api_key,
The code places self.api_key into the X-Api-Key header on the outbound request. This transmits a secret externally and becomes an exfiltration path if the endpoint is redirected.
Hoch
Generic API/secret keys
Get your free QRYMA_API_KEY from [qryma.com](https://qryma.com/). Chat with your AI assistant and as
The documentation tells users to provide QRYMA_API_KEY through an AI assistant prompt or similar chat flow. That can disclose a real API key into chat logs, tool transcripts, or third-party model systems.
Hoch
Generic API/secret keys
Please configure qryma search with the QRYMA_API_KEY set to ak-your-api-key-here.
The documentation tells users to provide QRYMA_API_KEY through an AI assistant prompt or similar chat flow. That can disclose a real API key into chat logs, tool transcripts, or third-party model systems.
Hoch
Generic API/secret keys
从 [qryma.com](https://qryma.com/) 获取免费的 QRYMA_API_KEY,直接发送给你的 AI 助手,让他帮你自动配置。
The documentation tells users to provide QRYMA_API_KEY through an AI assistant prompt or similar chat flow. That can disclose a real API key into chat logs, tool transcripts, or third-party model systems.
Hoch
Generic API/secret keys
请帮我配置好 qryma search,设置 QRYMA_API_KEY 为 ak-your-api-key-here
The documentation tells users to provide QRYMA_API_KEY through an AI assistant prompt or similar chat flow. That can disclose a real API key into chat logs, tool transcripts, or third-party model systems.
Hoch
Generic API/secret keys
export QRYMA_API_KEY="ak-your-api-key-here"
The documentation shows storing QRYMA_API_KEY in shell environment state or a plaintext .env file. This is a common setup method, but it creates a real local secret-exposure risk if history or files are not protected.
Hoch
Generic API/secret keys
QRYMA_API_KEY=ak-your-api-key-here
The documentation shows storing QRYMA_API_KEY in shell environment state or a plaintext .env file. This is a common setup method, but it creates a real local secret-exposure risk if history or files are not protected.
Mittel
Python environment access
endpoint = os.environ.get("QRYMA_ENDPOINT")
QRYMA_ENDPOINT from the environment controls the destination used for the later request. If this setting is changed unexpectedly, the API key and queries can be sent to an untrusted service.
Niedrig
Hardcoded URL
"default": "https://search.qryma.com/api/web"
The skill performs outbound HTTP requests to the Qryma search API and sends user search queries off-device. Network egress is expected for search, but it is a real data-transfer behavior users must understand.
Niedrig
Python HTTP libraries
import urllib.request
The skill performs outbound HTTP requests to the Qryma search API and sends user search queries off-device. Network egress is expected for search, but it is a real data-transfer behavior users must understand.
Niedrig
Python HTTP libraries
req = urllib.request.Request(
The skill performs outbound HTTP requests to the Qryma search API and sends user search queries off-device. Network egress is expected for search, but it is a real data-transfer behavior users must understand.
Niedrig
Python HTTP libraries
with urllib.request.urlopen(req, timeout=30) as resp:
The skill performs outbound HTTP requests to the Qryma search API and sends user search queries off-device. Network egress is expected for search, but it is a real data-transfer behavior users must understand.
Niedrig
Hardcoded URL
QRYMA_URL = "https://search.qryma.com/api/web"
The skill performs outbound HTTP requests to the Qryma search API and sends user search queries off-device. Network egress is expected for search, but it is a real data-transfer behavior users must understand.
Niedrig
Hardcoded URL
return "https://search.qryma.com/api/web"
The skill performs outbound HTTP requests to the Qryma search API and sends user search queries off-device. Network egress is expected for search, but it is a real data-transfer behavior users must understand.

Risikofunde

Bestätigte Sicherheitsbedenken werden von Punkten getrennt, die noch überprüft werden müssen.

Bestätigte Sicherheitsbedenken (9)

RISK-001 Hoch
Environment file access
# Method 2: Create .env file
The documentation shows storing QRYMA_API_KEY in shell environment state or a plaintext .env file. This is a common setup method, but it creates a real local secret-exposure risk if history or files are not protected.
RISK-002 Hoch
Environment file access
echo 'QRYMA_API_KEY=ak-your-api-key-here' > .env
The documentation shows storing QRYMA_API_KEY in shell environment state or a plaintext .env file. This is a common setup method, but it creates a real local secret-exposure risk if history or files are not protected.
RISK-003 Hoch
Environment file access
env_path = os.path.expanduser("~/.qryma/.env")
The code reads .env or ~/.qryma/.env and extracts QRYMA credentials or endpoint settings. Automatic reads from hidden or local environment files can expose secrets outside the skill package boundary.
RISK-004 Hoch
Environment file access
env_path = ".env"
The code reads .env or ~/.qryma/.env and extracts QRYMA credentials or endpoint settings. Automatic reads from hidden or local environment files can expose secrets outside the skill package boundary.
RISK-005 Hoch
Environment file access
env_path = os.path.expanduser("~/.qryma/.env")
The code reads .env or ~/.qryma/.env and extracts QRYMA credentials or endpoint settings. Automatic reads from hidden or local environment files can expose secrets outside the skill package boundary.
RISK-006 Hoch
Environment file access
env_path = ".env"
The code reads .env or ~/.qryma/.env and extracts QRYMA credentials or endpoint settings. Automatic reads from hidden or local environment files can expose secrets outside the skill package boundary.
RISK-007 Hoch
Environment file access
Create `.env` file:
The documentation shows storing QRYMA_API_KEY in shell environment state or a plaintext .env file. This is a common setup method, but it creates a real local secret-exposure risk if history or files are not protected.
RISK-008 Hoch
API Key Sharing Guidance Risks Secret Disclosure
README.md and SKILL.md tell users to ask an AI assistant to configure QRYMA_API_KEY. If users replace the placeholder with a real key, the secret can be stored in chat logs, tool transcripts, or third-party systems.
The documentation explicitly connects QRYMA_API_KEY setup with asking an AI assistant to configure it. This is a clear social-engineering risk for credential exposure.
RISK-009 Hoch
Configurable Endpoint Can Receive API Key
scripts/search_core.py loads QRYMA_ENDPOINT from the environment or .env files, then sends self.api_key in the X-Api-Key header to that endpoint. A modified endpoint can receive both user queries and the API key.
The data flow is visible in the source: endpoint configuration is loaded before the request is built, and the API key is attached to the request headers.

Abhilfemaßnahmen

Von diesem Audit vorgeschlagene Korrekturen wurden erfasst. Ihre Umsetzung liegt in der Verantwortung des Maintainers.

  1. FIX-001
    Hoch
    Documentation encourages users to send QRYMA_API_KEY to an AI assistant.
    Replace those instructions with manual setup steps that never ask users to paste real secrets into chat prompts or tool transcripts.
  2. FIX-002
    Hoch
    The endpoint can be overridden while the X-Api-Key header is sent to the selected endpoint.
    Restrict endpoint overrides to trusted hosts, require explicit confirmation for custom endpoints, or omit credentials when the endpoint is not the official Qryma API.
  3. FIX-003
    Hoch
    The skill automatically reads .env and ~/.qryma/.env for credentials.
    Use an explicit credential path or platform secret store, document file permission requirements, and avoid scanning hidden home-directory files by default.
  4. FIX-004
    Mittel
    API keys can be passed on the command line or event payload.
    Prefer environment or managed secret injection and warn users that command-line secrets may appear in shell history, process lists, or logs.
  5. FIX-005
    Niedrig
    Search queries are sent to an external API.
    Add clear privacy documentation explaining that queries and request metadata are transmitted to Qryma during use.

Expertennachweise

Unveränderliche Subjektidentität, Scanner-Metadaten, verworfene Treffer und Nachweise auf Quellcodeebene.

Artefakt-Subjekt

Marketplace-Commit
Nicht verfügbar
Inhalts-Hash
Nicht verfügbar
Tree-Hash
Nicht verfügbar
Skill-Pfad
Nicht verfügbar
Hash der Audit-Nutzlast
Nicht verfügbar

Analysemetadaten

Auditmodell: codex

Analysestatus: Vollständig

Der Umfang ist auf die aufgezeichneten Dateien, Zeilen, Methoden und Nachweise beschränkt. Es wird keine Ausführung in einer Laufzeitumgebung oder Sandbox beansprucht.

Verifizieren und exportieren

Das Manifest und die Lockdatei binden Installationsartefakte an kryptografische Hashes. Diese Integritätsaussage ist von der Sicherheitsbewertung getrennt.

Audit-Nachweis: not_attestable