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

Versionierte Sicherheitsbewertung

Berichts-ID: SA-3B5016A6

7/8/2026, 2:05:17 AM

citation-management Sicherheitsbewertung v8

Zertifizierungsbericht zur Skill-Sicherheit

Audit-Verlauf
Auditmodell: codex Historischer Bericht
Skillname
citation-management
Version
v8
Betreuer
davila7
Abdeckung
14 Gescannte Dateien · 8,180 Analysierte Zeilen
Richtlinienversion
Nicht verfügbar

Höchster bestätigter Schweregrad eines Befunds

Mittel

3 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.

AI review found no prompt injection, credential exfiltration intent, or real obfuscation. Confirmed risks are expected network access to academic APIs, NCBI environment credential handling, user-selected file writes, and a Google Scholar proxy option that may bypass rate limits.

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

14 Gescannte Dateien · 8,180 Analysierte Zeilen

40 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 76 Nachweisstellen beobachtet

Dateisystemzugriff

Kann lokale Dateien lesen oder schreiben.

An 6 Nachweisstellen beobachtet

Umgebungsvariablen

Kann Werte aus der Prozessumgebung lesen.

An 24 Nachweisstellen beobachtet

Externe Befehle

Kann Befehle oder Programme außerhalb des Skills aufrufen.

An 97 Nachweisstellen beobachtet

Elemente der Fähigkeitsprüfung (37)
Hoch
Python getenv function
api_key = os.getenv('NCBI_API_KEY')
The script reads NCBI_API_KEY from the environment and sends it as a PubMed request parameter when present. This is legitimate API use but handles a secret value.
Hoch
getenv function call
api_key = os.getenv('NCBI_API_KEY')
The script reads NCBI_API_KEY from the environment and sends it as a PubMed request parameter when present. This is legitimate API use but handles a secret value.
Hoch
Generic API/secret keys
api_key = os.getenv('NCBI_API_KEY')
The script reads NCBI_API_KEY from the environment and sends it as a PubMed request parameter when present. This is legitimate API use but handles a secret value.
Hoch
Generic API/secret keys
if api_key:
The script reads NCBI_API_KEY from the environment and sends it as a PubMed request parameter when present. This is legitimate API use but handles a secret value.
Hoch
Generic API/secret keys
params['api_key'] = api_key
The script reads NCBI_API_KEY from the environment and sends it as a PubMed request parameter when present. This is legitimate API use but handles a secret value.
Hoch
Python getenv function
self.api_key = api_key or os.getenv('NCBI_API_KEY', '')
The script reads or forwards NCBI_API_KEY and includes it in PubMed API parameters. This is intended API use, but it handles and transmits a secret.
Hoch
getenv function call
self.api_key = api_key or os.getenv('NCBI_API_KEY', '')
The script reads or forwards NCBI_API_KEY and includes it in PubMed API parameters. This is intended API use, but it handles and transmits a secret.
Hoch
Generic API/secret keys
self.api_key = api_key or os.getenv('NCBI_API_KEY', '')
The script reads or forwards NCBI_API_KEY and includes it in PubMed API parameters. This is intended API use, but it handles and transmits a secret.
Hoch
Generic API/secret keys
if self.api_key:
The script reads or forwards NCBI_API_KEY and includes it in PubMed API parameters. This is intended API use, but it handles and transmits a secret.
Hoch
Generic API/secret keys
params['api_key'] = self.api_key
The script reads or forwards NCBI_API_KEY and includes it in PubMed API parameters. This is intended API use, but it handles and transmits a secret.
Hoch
Generic API/secret keys
if self.api_key:
The script reads or forwards NCBI_API_KEY and includes it in PubMed API parameters. This is intended API use, but it handles and transmits a secret.
Hoch
Generic API/secret keys
params['api_key'] = self.api_key
The script reads or forwards NCBI_API_KEY and includes it in PubMed API parameters. This is intended API use, but it handles and transmits a secret.
Hoch
Generic API/secret keys
help='NCBI API key (or set NCBI_API_KEY env var)'
The CLI accepts an API key argument and forwards it to the searcher. Passing secrets on a command line can expose them through shell history or process listings.
Hoch
Generic API/secret keys
searcher = PubMedSearcher(api_key=args.api_key, email=args.email)
The CLI accepts an API key argument and forwards it to the searcher. Passing secrets on a command line can expose them through shell history or process listings.
Mittel
Python file write/append
with open(args.output, 'w', encoding='utf-8') as f:
The script writes generated BibTeX, JSON, or report output to a user-supplied path. This is expected behavior, but it is still filesystem write capability.
Mittel
Hardcoded URL
url = 'http://export.arxiv.org/api/query'
The metadata extractor queries the arXiv API over HTTP for user-provided arXiv identifiers. This is expected network behavior but uses an unencrypted endpoint.
Mittel
Python file write/append
with open(args.output, 'w', encoding='utf-8') as f:
The script writes generated BibTeX, JSON, or report output to a user-supplied path. This is expected behavior, but it is still filesystem write capability.
Mittel
Python file write/append
with open(output_file, 'w', encoding='utf-8') as f:
The formatter writes to a user-supplied output path and defaults to overwriting the input file. This is legitimate functionality but can overwrite files if run with unsafe arguments.
Mittel
Python file write/append
with open(args.output, 'w', encoding='utf-8') as f:
The script writes generated BibTeX, JSON, or report output to a user-supplied path. This is expected behavior, but it is still filesystem write capability.
Mittel
Python file write/append
with open(args.output, 'w', encoding='utf-8') as f:
The script writes generated BibTeX, JSON, or report output to a user-supplied path. This is expected behavior, but it is still filesystem write capability.
Mittel
Python file write/append
with open(args.report, 'w', encoding='utf-8') as f:
The script writes generated BibTeX, JSON, or report output to a user-supplied path. This is expected behavior, but it is still filesystem write capability.
Niedrig
Python HTTP libraries
self.session = requests.Session()
The DOI converter creates a requests session and retrieves BibTeX from doi.org. User-provided DOI values are sent to an external academic resolver.
Niedrig
Python HTTP libraries
except requests.exceptions.Timeout:
The DOI converter creates a requests session and retrieves BibTeX from doi.org. User-provided DOI values are sent to an external academic resolver.
Niedrig
Python HTTP libraries
except requests.exceptions.RequestException as e:
The DOI converter creates a requests session and retrieves BibTeX from doi.org. User-provided DOI values are sent to an external academic resolver.
Niedrig
Hardcoded URL
url = f'https://doi.org/{doi}'
The DOI converter creates a requests session and retrieves BibTeX from doi.org. User-provided DOI values are sent to an external academic resolver.
Niedrig
Python HTTP libraries
self.session = requests.Session()
The metadata extractor sends user-provided identifiers to CrossRef or PubMed APIs. This outbound network access is central to the skill but must be disclosed.
Niedrig
Hardcoded URL
url = f'https://api.crossref.org/works/{doi}'
The metadata extractor sends user-provided identifiers to CrossRef or PubMed APIs. This outbound network access is central to the skill but must be disclosed.
Niedrig
Hardcoded URL
url = f'https://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi'
The metadata extractor sends user-provided identifiers to CrossRef or PubMed APIs. This outbound network access is central to the skill but must be disclosed.
Niedrig
Python getenv function
self.email = email or os.getenv('NCBI_EMAIL', '')
The script reads NCBI_EMAIL from the environment and may include it in PubMed E-utilities requests. This is expected but exposes environment-provided contact data to NCBI.
Niedrig
getenv function call
self.email = email or os.getenv('NCBI_EMAIL', '')
The script reads NCBI_EMAIL from the environment and may include it in PubMed E-utilities requests. This is expected but exposes environment-provided contact data to NCBI.
Niedrig
Python HTTP libraries
self.session = requests.Session()
The PubMed searcher creates a requests session and calls NCBI E-utilities endpoints. Search terms, PMIDs, email, and optional API keys may be sent to NCBI.
Niedrig
Hardcoded URL
self.base_url = 'https://eutils.ncbi.nlm.nih.gov/entrez/eutils/'
The PubMed searcher creates a requests session and calls NCBI E-utilities endpoints. Search terms, PMIDs, email, and optional API keys may be sent to NCBI.
Niedrig
Python getenv function
self.email = email or os.getenv('NCBI_EMAIL', '')
The script reads NCBI_EMAIL from the environment and may send it to the NCBI API. This is expected but exposes environment-provided contact data.
Niedrig
getenv function call
self.email = email or os.getenv('NCBI_EMAIL', '')
The script reads NCBI_EMAIL from the environment and may send it to the NCBI API. This is expected but exposes environment-provided contact data.
Niedrig
Python HTTP libraries
self.session = requests.Session()
The validator checks DOI resolution through doi.org and CrossRef when DOI verification is enabled. Citation identifiers are sent to external services.
Niedrig
Hardcoded URL
url = f'https://doi.org/{doi}'
The validator checks DOI resolution through doi.org and CrossRef when DOI verification is enabled. Citation identifiers are sent to external services.
Niedrig
Hardcoded URL
crossref_url = f'https://api.crossref.org/works/{doi}'
The validator checks DOI resolution through doi.org and CrossRef when DOI verification is enabled. Citation identifiers are sent to external services.

Risikofunde

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

Bestätigte Sicherheitsbedenken (3)

RISK-001 Mittel
System reconnaissance
use_proxy: Use free proxy (helps avoid rate limiting)
The option describes using free proxies to avoid Google Scholar rate limiting. That can bypass third-party anti-abuse controls during automated scraping.
RISK-002 Mittel
System reconnaissance
help='Use free proxy to avoid rate limiting'
The option describes using free proxies to avoid Google Scholar rate limiting. That can bypass third-party anti-abuse controls during automated scraping.
RISK-003 Mittel
Rate-Limit Evasion Proxy Option
The Google Scholar helper offers a free proxy option described as avoiding rate limits. This can facilitate bypassing third-party anti-abuse controls during automated scraping.
The script explicitly connects the proxy option to avoiding rate limits and configures scholarly FreeProxies. The behavior is visible in executable code and CLI help.

Abhilfemaßnahmen

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

  1. FIX-001
    Hoch
    NCBI API keys and emails are read from environment variables or CLI arguments.
    Document exactly which values are read and where they are sent. Prefer environment variables over CLI secret flags and never log secret values.
  2. FIX-002
    Mittel
    Google Scholar proxy option can bypass rate limits.
    Remove the free proxy option, or require explicit user confirmation and clear policy guidance before any proxy-assisted search.
  3. FIX-003
    Mittel
    Several scripts write to user-provided output paths, and the formatter can overwrite the input file.
    Warn before overwriting existing files, validate output paths, and recommend backups for bibliography files.
  4. FIX-004
    Niedrig
    The skill sends identifiers and search terms to external services.
    List CrossRef, doi.org, NCBI, arXiv, and Google Scholar as network destinations before running searches or metadata extraction.

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