News · Security · November 12, 2026
We scanned ourselves: 51 findings, all fixed in public
This week a full security scan of Ghostdrive produced 51 numbered findings. Fixes for every one of them are merged. What they were, and what they are not.
DRIVE 369 DAO · 3 min read
Trust in a security claim comes from showing the work. This week we ran a broad security scan of the Ghostdrive code, and fixed what it found. Here is what it was, in plain terms.
The numbers
The scan numbered its findings F1 to F51. Fixes for all 51 are merged into the main code, and each fix names the finding it closes. We run a second pass, called run 2, and a fix from it landed on November 12. A scan is not an audit: it is our own check, run before and alongside the external audit, which is pending.
What the findings were
In groups, with no recipes for attackers:
| Area | What was fixed |
|---|---|
| Smart contracts (testnet) | A slashed bond is burnt, never paid to the deal's owner. A board vote counts the stake held when the proposal opened, so one bond cannot vote twice by moving between wallets. Staking rewards are shared in whole units with safe maths. |
| Identity and Calls | A Ghost ID is shown only when a signed hello proved it. A call link cannot name who invited you. What a peer says about a member is cleaned before it shows. |
| City and agents | A visit counts for the block of its signed owner. A block never hands back a visitor's private sources reworded. A stranger stays in a quiet folder however many messages it sends. |
| Vault | Recovery words need a fresh proof to be shown. A cut-short move to new words never stores the new root. No passkey is created on a shared gateway. |
| Resource limits | Several places that took too long on crafted input now run in linear time. A spreadsheet is checked before it is unzipped, so a decompression bomb is refused. |
| Agent permissions | Approvals in Telegram count only from the owner. A broad permission on the agent browser is limited to the origin you approved. A permission card never cuts its text silently. |
| Supply chain | The private AI model's files are checked against pinned hashes on every load. The desktop sends its node token only to a listener that proved it knows it. |
Why we publish it
Because the alternative is a page that says "we take security seriously". A list of what was wrong, and what changed, is checkable by anyone who reads the code. It also shows the cost of speed: in an age when AI finds bugs faster than people patch them, a team that does not look for its own flaws will have them found by someone else.
What this is not
- Not an audit. The contracts' audit is pending. Here is where security stands.
- Not a promise of no bugs. A scan finds what it finds, and more will come. The next run will have its own numbers.
- Not on mainnet. The contracts run on a testnet, and test tokens have no value.
What you can do
Read the fixes in the repository, run your own checks, and tell us what we missed. Accepted bug reports earn testnet points.
Security and audits · Academy: start here · Join the testnet
Questions
- What did the scan find?
- 51 numbered findings, F1 to F51, across contracts, identity, City, the vault, resource limits, agent permissions and the supply chain. Fixes for all of them are merged.
- Is this an audit?
- No. It is our own scan. The external audit of the contracts is pending.