An agentic interface and safety harness for safety-critical control systems
- capability exposure inferred + 35
- recent drift inferred + 20
- tool safety inferred + 19
- trust mitigators mixed − 8
inferred mixed
The A–E grade is our heuristic synthesis — a "review this" prompt, not a verdict. Each factor is tagged by what backs it: attested (a verifiable record), reported (a third party's claim), or inferred (our own heuristic, e.g. permissions). See methodology.
grade last moved 3d ago · see ecosystem CVEs →
- D · 61 → D · 66
- D · 66 → D · 61
- C · 59 → D · 66
- C · 51 → C · 59
No known CVEs for this server.
- high dangerous code
committed secret: Anthropic key · dynamic exec: unsafe yaml.load(), __import__(), eval()/exec(), __import__ sink
- medium tool shadowing execute
tool "execute" shadows a verified server's tool
- low exfiltration combo
sensitive read and network capabilities split across this server's tools
analyzed commit a29851e · analyzer v33 · 6h ago
skills & prompt files 16
- skill als-apg-osprey-a29851e/plugins/osprey/skills/contribute/SKILL.md
- skill als-apg-osprey-a29851e/plugins/osprey/skills/design-philosophy/SKILL.md
- skill als-apg-osprey-a29851e/plugins/osprey/skills/doc-sync/SKILL.md
- skill als-apg-osprey-a29851e/plugins/osprey/skills/housekeeping/SKILL.md
- skill als-apg-osprey-a29851e/plugins/osprey/skills/install/SKILL.md
- skill als-apg-osprey-a29851e/plugins/osprey/skills/panel/SKILL.md
- skill als-apg-osprey-a29851e/plugins/osprey/skills/pre-commit/SKILL.md
- skill als-apg-osprey-a29851e/plugins/osprey/skills/release/SKILL.md
- skill als-apg-osprey-a29851e/plugins/osprey/skills/upstream-scout/SKILL.md
- skill als-apg-osprey-a29851e/src/osprey/templates/claude_code/claude/skills/demo-gallery/SKILL.md
- skill als-apg-osprey-a29851e/src/osprey/templates/claude_code/claude/skills/demo-ui/SKILL.md
- skill als-apg-osprey-a29851e/src/osprey/templates/claude_code/claude/skills/diagnose/SKILL.md
- skill als-apg-osprey-a29851e/src/osprey/templates/claude_code/claude/skills/operating-bluesky-plans/SKILL.md
- skill als-apg-osprey-a29851e/src/osprey/templates/claude_code/claude/skills/session-report/SKILL.md
- skill als-apg-osprey-a29851e/src/osprey/templates/claude_code/claude/skills/sim-scenarios/SKILL.md
- skill als-apg-osprey-a29851e/src/osprey/templates/claude_code/claude/skills/writing-bluesky-plans/SKILL.md
danger signals32
- dynamic code execution unsafe yaml.load() als-apg-osprey-a29851e/packages/osprey-connectors/src/osprey_connectors/yaml_loader.py :42
return yaml.load(stream, Loader=safe_loader()) - dynamic code execution __import__() als-apg-osprey-a29851e/src/osprey/registry/initializers.py :325
module = __import__(reg.module_path, fromlist=[reg.class_name]) - dynamic code execution eval()/exec() als-apg-osprey-a29851e/src/osprey/services/bluesky_bridge/session_upload.py :234
exec(code, module_namespace) # noqa: S102 - dynamic code execution unsafe yaml.load() als-apg-osprey-a29851e/tests/cli/test_bluesky_service_registration.py :39
return yaml.load(fh) - dynamic code execution unsafe yaml.load() als-apg-osprey-a29851e/tests/cli/test_dispatch_network_injection.py :117
return yaml.load(fh)["services"] - dynamic code execution unsafe yaml.load() als-apg-osprey-a29851e/tests/cli/test_inject_bluesky_web.py :46
return yaml.load(fh) - dynamic code execution unsafe yaml.load() als-apg-osprey-a29851e/tests/cli/test_inject_dispatch.py :37
return yaml.load(fh) - dynamic code execution unsafe yaml.load() als-apg-osprey-a29851e/tests/cli/test_inject_port_base.py :112
return yaml.load(fh)["services"] - dynamic code execution unsafe yaml.load() als-apg-osprey-a29851e/tests/cli/test_panel_registration.py :52
return yaml.load(fh)["web"]["panels"] - dynamic code execution unsafe yaml.load() als-apg-osprey-a29851e/tests/deployment/test_compose_generator.py :1730
config = yaml.load(fh) - dynamic code execution unsafe yaml.load() als-apg-osprey-a29851e/tests/e2e/test_archiver_world_e2e.py :1122
config = yaml.load(handle) - dynamic code execution eval()/exec() als-apg-osprey-a29851e/tests/e2e/test_llm_providers.py :453
return {"result": float(eval(expression)), "expression": expression} - dynamic code execution __import__ sink als-apg-osprey-a29851e/tests/health/core/test_file_system.py :138
if hasattr(__import__("os"), "geteuid") and __import__("os").geteuid() == 0: - dynamic code execution eval()/exec() als-apg-osprey-a29851e/tests/integration/test_bluesky_queue_contract.py :377
exec(kwargs["script"], self.namespace, self.namespace) # noqa: S102 - dynamic code execution __import__ sink als-apg-osprey-a29851e/tests/interfaces/web_terminal/test_pty_manager.py :158
master_fd, slave_fd = __import__("pty").openpty() - dynamic code execution __import__ sink als-apg-osprey-a29851e/tests/mcp_server/test_http.py :532
assert "OSPREY_PANEL_TOKEN" not in __import__("os").environ - dynamic code execution eval()/exec() als-apg-osprey-a29851e/tests/mcp_server/test_npy_data_reader.py :164
exec(code, namespace) # noqa: S102 - dynamic code execution eval()/exec() als-apg-osprey-a29851e/tests/mcp_server/test_python_execute_tool.py :1317
exec(_ENUMERATION_SNIPPET, {}) # noqa: S102 - runs the shipped probe verbatim - dynamic code execution eval()/exec() als-apg-osprey-a29851e/tests/mcp_server/workspace/test_viz_common.py :17
exec(code, ns) # noqa: S102 - dynamic code execution eval()/exec() als-apg-osprey-a29851e/tests/services/bluesky_bridge/test_session_upload.py :106
exec(script, namespace, namespace) # noqa: S102 - dynamic code execution eval()/exec() als-apg-osprey-a29851e/tests/services/python_executor/execution/test_client_limits_monkeypatch.py :763
exec(compile(source, "<generated-wrapper>", "exec"), {}) - dynamic code execution eval()/exec() als-apg-osprey-a29851e/tests/services/python_executor/execution/test_p4p_monkeypatch.py :376
exec(compile(source, "<generated-wrapper>", "exec"), namespace) - dynamic code execution eval()/exec() als-apg-osprey-a29851e/tests/services/python_executor/execution/test_readonly_guard.py :177
exec(source, namespace) - dynamic code execution __import__ sink als-apg-osprey-a29851e/tests/services/python_executor/execution/test_readonly_guard.py :568
lambda: __import__("subprocess").run(["caput", "PV", "1"]), id="subprocess-run" - dynamic code execution eval()/exec() als-apg-osprey-a29851e/tests/services/python_executor/execution/test_sandbox_step_reader.py :190
exec(compile(source, "<generated-wrapper>", "exec"), {}) - dynamic code execution eval()/exec() als-apg-osprey-a29851e/tests/stores/test_numpy_serializer_parity.py :79
exec(compile(source, "<generated-save-artifact>", "exec"), namespace) - dynamic code execution unsafe yaml.load() als-apg-osprey-a29851e/tests/utils/test_config_writer_anchored_put_comment.py :87
data = yaml.load(text) - dynamic code execution unsafe yaml.load() als-apg-osprey-a29851e/tests/utils/test_config_writer_comment_anchoring.py :81
return yaml.load(fh) - dynamic code execution __import__() als-apg-osprey-a29851e/tests/va/test_standin_defaults.py :259
module = __import__(module_name, fromlist=["_"]) - suspicious endpoint 1.2.3.4 als-apg-osprey-a29851e/tests/mcp_server/test_http.py :91
assert http.phoebus_bridge_url() == "http://1.2.3.4:7000" - committed secret Anthropic key als-apg-osprey-a29851e/tests/pty/conftest.py :71
sk-ant…(40 chars, redacted) - committed secret Anthropic key als-apg-osprey-a29851e/tests/pty/test_live_region_real_terminal.py :1008
sk-ant…(38 chars, redacted)
- recent drift +20 capability drift →
Heuristic, inferred signals — false positives (legitimately powerful tools, forks, language ports) are expected. Treat each as "review this", not a verdict. See the ecosystem-wide picture on the security hub, or the fleet security of als-apg.