Grades are a hygiene check, not a security guarantee.

MCP, MCP server

io.github.FantasyLab-ai/aurora

io.github.FantasyLab-ai/aurora, an MCP server listed in the PlugVet directory.

Compatibility: Not stated.

Grade C

One Medium finding. Read the findings before installing.

Graded by PlugVetRubric v2

Not a guarantee. A hygiene check of the source at the commit shown, not a security audit.

Rescanned at commit 5a4359da6019, unchanged since the check below.

NETWORK_HOST_FROM_INPUT

Why this grade

  • NETWORK_HOST_FROM_INPUT Medium

    A file takes a URL or endpoint as input and has no fixed host list.

    cloud/aurora-community/src/worker.js, line 54 async fetch(request, env) {

Any High, or two or more Medium findings, give D. One Medium gives C. Low findings or a security Note give B. Each code names a finding behind the letter.

If you think this grade is wrong, email [email protected] with the entry link and your evidence. We aim to acknowledge within two working days and decide within seven. If we confirm an error, we aim to correct it within 24 hours of confirming it. These are aims, not guarantees.

Grades are a hygiene check of the source at the commit shown, on the date checked, not a security audit or a guarantee. The free directory grades are automated. Before release, a PlugVet engineer reviews every paid report and any grade we hold back, including all F grades, against the source code and the evidence we quote.

What was checked

Plain notes from the hygiene checks.

  • Permissions

    Concern

    can delete files.

    PERMISSION_DELETE_FILES

    aurora_sdk/runner.py, line 346

    proc = subprocess.run(

    fantasyai/aurora/export.py, line 65

    r = subprocess.run(

    fantasyai/aurora/subprocess_runner.py, line 66

    proc = subprocess.run(

    Show more

    fantasyai/aurora/knowledge_bank/packs/installer.py, line 104

    shutil.rmtree(dest, ignore_errors=True)

    fantasyai/aurora/knowledge_bank/packs/installer.py, line 110

    shutil.rmtree(staging, ignore_errors=True)

    fantasyai/aurora/knowledge_bank/packs/installer.py, line 124

    shutil.rmtree(staging, ignore_errors=True)

    fantasyai/aurora/provenance/ledger.py, line 94

    result = subprocess.run(

    scripts/aspectify.py, line 9

    subprocess.run(cmd, check=True)

    scripts/bench_pipeline.py, line 246

    proc = subprocess.Popen(

    scripts/captions.py, line 14

    return subprocess.run(cmd, capture_output=True).returncode == 0

    scripts/captions.py, line 40

    subprocess.run(cmd, check=True)

  • Install and update

    Concern

    dependencies are not pinned.

    INSTALL_UNPINNED

    requirements.txt, line 4

    numpy>=1.24

  • Network

    Serious

    accepts a host from input, with no fixed list in this file.

    NETWORK_HOST_FROM_INPUT

    cloud/aurora-community/src/worker.js, line 54

    async fetch(request, env) {

    cloud/aurora-community/src/worker.js, line 155

    const r = await fetch("https://api.github.com/repos/FantasyLab-ai/aurora/releases/latest", {

    desktop/src/main.js, line 248

    const resp = await fetch(url, {

    Show more

    desktop/src/main.js, line 276

    await fetch(`${AURORA_BASE}/api/ping`, {

    desktop/src/main.js, line 1686

    // token and any older in-flight fetch (e.g. an interval poll that fired

    extensions/excel/taskpane.js, line 112

    const r = await fetch(url, {

    extensions/excel/taskpane.js, line 122

    const r = await fetch(url);

    fantasyai/aurora/data_collector.py, line 53

    resp = requests.get(OPEN_METEO_URL, params=params, timeout=20)

    fantasyai/aurora/reasoning.py, line 7

    r = requests.post("http://localhost:11434/api/generate", json=payload)

    fantasyai/aurora/agents/data_acquisition.py, line 303

    r = requests.get(url, timeout=30)

    scripts/build_generator_shim_from_backup.py, line 75

    with urllib.request.urlopen(f"http://127.0.0.1:{port}/json/version", timeout=2) as r: r.read()

  • Secrets

    Concern

    reads a credential or environment file.

    SECRETS_ENV_READ SECRETS_PATH_DOTENV

    aurora_mcp/http_server.py, line 228

    token = os.environ.get("AURORA_MCP_HTTP_TOKEN") or None

    demos/load_env.ps1, line 16

    # This script reads ./demos/.env.demos (or a path you pass as -EnvPath).

    demos/load_env.ps1, line 22

    [string] $EnvPath = "demos/.env.demos"

    Show more

    demos/load_env.ps1, line 26

    Write-Host " .env.demos not found at: $EnvPath" -ForegroundColor Yellow

    demos/load_env.ps1, line 27

    Write-Host " Copy demos/.env.demos.example to demos/.env.demos and paste your URLs." -ForegroundColor Yellow

    desktop/src-tauri/src/lib.rs, line 54

    .env("AURORA_PORT", "8001")

    desktop/src-tauri/src/lib.rs, line 55

    .env("AURORA_NO_BROWSER", "1") // the desktop window IS the UI

    desktop/src-tauri/src/lib.rs, line 56

    .env("AURORA_HOST", "127.0.0.1") // loopback only

    fantasyai/aurora/data_collector.py, line 141

    api_key = os.getenv("NASA_API_KEY")

    fantasyai/aurora/auth/tokens.py, line 64

    env_path = os.environ.get("AURORA_TOKEN_FILE", "").strip()

    fantasyai/aurora/knowledge_bank/ingest/sources/fred_metadata.py, line 213

    api_key = os.environ.get("FRED_API_KEY")

    fantasyai/aurora/llm/_http.py, line 80

    f"Set it in your environment, .env file, or docker-compose.yml."

  • Agent instructions

    Pass

    No instruction to ignore earlier instructions or to hide a step.

  • Obfuscation

    Note

    a file was over the read cap and was not fully read. the file cap was reached before every file was read.

    OBFUSCATION_FILE_OVER_READ_CAP OBFUSCATION_FILE_CAP_REACHED

    studio_api.py, line 1

    """

    fantasyai/aurora/math/physics_v2.py, line 1

    from __future__ import annotations

  • Licence

    Pass

    A licence file is present (LICENSE).

  • Maintainer activity

    Pass

    The latest commit is within the last 365 days.

Note

Hygiene check of commit 5a4359da6019. can delete files. dependencies are not pinned. accepts a host from input, with no fixed list in this file. reads a credential or environment file. a file was over the read cap and was not fully read. the file cap was reached before every file was read.

Date and source

Date checked:

View source

github.com

Commit graded: 5a4359da6019f3515edf783bc6d3b21648c7acb9

This link goes to the original host. PlugVet does not host or check what you download from there, and installing it is your own decision and risk.

Read how this letter is chosen