How to report something real.
Confidential token operations on FHEVM is new ground. If you've found a privilege escalation, money-loss path, ACL bypass, or EIP-712 signature forgery, report it privately through GitHub before opening any public issue.
Report it privately on GitHub
For a real vulnerability, use GitHub's private vulnerability reporting on the tokenops-sdk repo: open the repo's Security tab and click “Report a vulnerability”. That opens a private advisory only the maintainers can see, so please don't file a public issue for anything that could move funds or break confidentiality. Include a description, reproduction steps, and (if you have one) a PoC. We respond within 48 hours; serious reports receive a same-day acknowledgement.
What counts as in-scope: anything that lets a non-authorised party (a) move funds, (b) decrypt a ciphertext without holding the right ACL grant, (c) forge an EIP-712 claim against a domain they don't own, or (d) escalate to DEFAULT_ADMIN_ROLE on a factory / clone / singleton. Report these privately via the advisory flow above.
What's out of scope: gas-grief vectors that don't change ownership of value; UI bugs in the docs site; opinions about the FHE model itself (raise those with Zama). For these non-sensitive bugs, a public issue on the tokenops-sdk repo is the right channel.
What the SDK trusts
DEPLOYED_ADDRESSES
The factory + singleton addresses baked into the SDK are the audit boundary. The SDK never deploys factories, it only calls into pre-deployed ones.
Zama relayer + KMS
Encrypt + user-decrypt round-trips hit Zama's infrastructure. The SDK doesn't hold keys, but it does depend on Zama's threshold posture for liveness + correctness.
Caller's wallet
Operators are responsible for keeping their admin keys safe. Use a dedicated cold signer holding DEFAULT_ADMIN_ROLE solely for signing claims, rather than the warm operator wallet, so a warm-wallet compromise doesn't leak claim-signing authority.
Encrypted handle bytes
A handle is opaque. Possessing it tells you nothing about the plaintext. The SDK logs handles freely (debug, telemetry), this is by design and doesn't leak.
Where each product stands
All three products are audited by OpenZeppelin. fhe-disperse is live on Sepolia and Ethereum mainnet. fhe-vesting and fhe-airdrop are audited and live on Sepolia; mainnet deployment is pending CREATE3 deployment and Zama KMS mainnet readiness.