SECURITY.md
Rama main · réplica de lectura del repositorio original.
# Security & Safety Policy
Agronaut has two kinds of vulnerability, and the second one is the unusual one.
## 1. Software vulnerabilities
The usual: secrets exposure, injection, dependency issues, anything that compromises a
deployment or its users' data.
**Do not open a public issue.** Email **abdoulrachid03@gmail.com** with what you found, how to
reproduce it, and what an attacker could do with it. Expect an acknowledgement within a week.
Areas worth attention if you're looking:
- **Channel adapters** (`agronaut_agent/channels/`) accept untrusted webhook input. The
WhatsApp adapter verifies Meta's `X-Hub-Signature-256`; an allowlist gates who can talk to a
deployment at all.
- **Prompt injection.** Text inside a user's *photo* reaches the model. The observation guard
strips fabricated readings and prescriptions, but **it is not a prompt-injection defence** and
does not claim to be. A path that gets an injected instruction to call a tool with attacker
values would be a real finding.
- **Secrets.** `.env` is git-ignored; API keys must never reach logs, analytics, or the model
context.
## 2. Safety issues — advice that could hurt a system
This project produces engineering and husbandry advice. Advice can be dangerous even when the
code is flawless, and we treat that as a security-class problem:
- a sizing result that would **undersize aeration or biofiltration** (either can kill a stock
overnight);
- a treatment suggestion that would **harm the fish, the plants, or the biofilter** — copper in
a coupled system, antibiotics that wipe out nitrifying bacteria, a pesticide that can reach
the water;
- a **coefficient whose cited source doesn't support it**, or a citation that doesn't say what
we claim it says;
- a triage candidate presented as a **verdict** where the evidence can't support one.
**Please report these as public issues** with the `bug` label — unlike a software
vulnerability, other operators benefit from seeing the discussion immediately. If you'd rather
raise it privately, the email above works too.
Reporting a wrong number with its correct source is one of the most valuable contributions
anyone can make here.
## What we promise
- Every coefficient is auditable without trusting any model: value, range, unit, source.
- Every design states what it does not model.
- The advice-safety golden set (`python -m scripts.safety_eval`) runs in CI and fails the build
on any CRITICAL regression, so a promise made once keeps being checked.
## Supported versions
Agronaut is pre-1.0 and moves fast. Fixes land on `main`; there are no backported release
branches yet.