<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>Panther Audits — Security Research</title>
  <subtitle>Move-first smart contract security field notes, findings, formal verification, and research labs.</subtitle>
  <id>https://pantheraudits.com/blog/</id>
  <link href="https://pantheraudits.com/blog/"/>
  <link href="https://pantheraudits.com/feed.xml" rel="self" type="application/atom+xml"/>
  <updated>2026-08-19T00:00:00Z</updated>
  <author><name>Panther</name><uri>https://pantheraudits.com/</uri></author>
  <entry>
    <title>Beyond the Bet: Auditing a Prediction Market on Sui Move</title>
    <id>https://pantheraudits.com/blog/when-odds-become-state-auditing-a-prediction-market-on-sui-move.html</id>
    <link href="https://pantheraudits.com/blog/when-odds-become-state-auditing-a-prediction-market-on-sui-move.html"/>
    <published>2026-08-19T00:00:00Z</published>
    <updated>2026-08-19T00:00:00Z</updated>
    <summary type="text">Field notes from a private one-month review of a Sui Move prediction market and its signed oracle integration.</summary>
  </entry>
  <entry>
    <title>Between Two Chains: How I Audit Cross-Chain DeFi Protocols</title>
    <id>https://pantheraudits.com/blog/how-to-audit-cross-chain-defi-protocols.html</id>
    <link href="https://pantheraudits.com/blog/how-to-audit-cross-chain-defi-protocols.html"/>
    <published>2026-07-16T00:00:00Z</published>
    <updated>2026-08-05T00:00:00Z</updated>
    <summary type="text">Lessons from a private EVM audit on asynchronous bridges, mirrored accounting, stale snapshots, recovery paths, and cross-chain invariants.</summary>
  </entry>
  <entry>
    <title>When Collateral Is a Live Market: Auditing Lending Protocols on Bittensor</title>
    <id>https://pantheraudits.com/blog/how-to-audit-lending-protocols-on-bittensor.html</id>
    <link href="https://pantheraudits.com/blog/how-to-audit-lending-protocols-on-bittensor.html"/>
    <published>2026-07-16T00:00:00Z</published>
    <updated>2026-07-16T00:00:00Z</updated>
    <summary type="text">Lessons from a private Bittensor lending audit covering unit-safe accounting, Dynamic TAO pricing, staking precompiles, liquidation liveness, and runtime-aware testing.</summary>
  </entry>
  <entry>
    <title>Private Bug Bounty Triage: Validating and Reproducing Web3 Findings</title>
    <id>https://pantheraudits.com/blog/private-bug-bounty-triage.html</id>
    <link href="https://pantheraudits.com/blog/private-bug-bounty-triage.html"/>
    <published>2026-06-05T00:00:00Z</published>
    <updated>2026-06-05T00:00:00Z</updated>
    <summary type="text">How I validate private Web3 findings during bounty triage, then write deterministic PoCs, impact evidence, and reviewer-ready artifacts.</summary>
  </entry>
  <entry>
    <title>How to Audit a Perp Protocol on Sui Move</title>
    <id>https://pantheraudits.com/blog/how-to-audit-a-perp-protocol-on-sui-move.html</id>
    <link href="https://pantheraudits.com/blog/how-to-audit-a-perp-protocol-on-sui-move.html"/>
    <published>2026-04-15T00:00:00Z</published>
    <updated>2026-04-15T00:00:00Z</updated>
    <summary type="text">Auditing perps on Sui requires a different checklist from EVM or Aptos. The object model, hot-potato request/response pattern, Programmable Transaction Blocks, and shared collateral vaults all reshape the attack surface — the Sui companion to the…</summary>
  </entry>
  <entry>
    <title>The Upgrade Trap — How Versioned Objects Can Brick Protocols on Sui</title>
    <id>https://pantheraudits.com/blog/the-upgrade-trap-how-sui-move-versioned-objects-can-brick-protocols.html</id>
    <link href="https://pantheraudits.com/blog/the-upgrade-trap-how-sui-move-versioned-objects-can-brick-protocols.html"/>
    <published>2026-04-02T00:00:00Z</published>
    <updated>2026-04-02T00:00:00Z</updated>
    <summary type="text">Sui&apos;s Versioned wrapper lets protocols migrate shared objects across upgrades. But the same pattern creates an upgrade trap — if your immutable package depends on a versioned protocol, one migrate() call bricks you forever.</summary>
  </entry>
  <entry>
    <title>Move VM Runtime — How Your Move Code Actually Runs</title>
    <id>https://pantheraudits.com/blog/move-vm-runtime-explained.html</id>
    <link href="https://pantheraudits.com/blog/move-vm-runtime-explained.html"/>
    <published>2026-04-01T00:00:00Z</published>
    <updated>2026-04-01T00:00:00Z</updated>
    <summary type="text">How the Move VM runtime actually executes your code — from bytecode loading to interpreter dispatch and native function calls.</summary>
  </entry>
  <entry>
    <title>Sui Execution Layer — A Security Researcher&apos;s Deep Dive</title>
    <id>https://pantheraudits.com/blog/sui-execution-layer-deep-dive.html</id>
    <link href="https://pantheraudits.com/blog/sui-execution-layer-deep-dive.html"/>
    <published>2026-03-30T00:00:00Z</published>
    <updated>2026-03-30T00:00:00Z</updated>
    <summary type="text">A deep dive into Sui&apos;s execution layer — how transactions flow from submission to state changes, and what security researchers should look for.</summary>
  </entry>
  <entry>
    <title>Sui Bella Ciao — Inside the New Move VM</title>
    <id>https://pantheraudits.com/blog/sui-bella-ciao-new-move-vm.html</id>
    <link href="https://pantheraudits.com/blog/sui-bella-ciao-new-move-vm.html"/>
    <published>2026-03-28T00:00:00Z</published>
    <updated>2026-03-28T00:00:00Z</updated>
    <summary type="text">Sui rewrote their entire Move VM. Here&apos;s how the new execution layer works, what changed from the old one, and where the interesting attack surface lives for security researchers.</summary>
  </entry>
  <entry>
    <title>Sui&apos;s Cut Package — How Sui Freezes Its Execution Layer</title>
    <id>https://pantheraudits.com/blog/sui-execution-cut-package-explained.html</id>
    <link href="https://pantheraudits.com/blog/sui-execution-cut-package-explained.html"/>
    <published>2026-03-28T00:00:00Z</published>
    <updated>2026-03-28T00:00:00Z</updated>
    <summary type="text">How Sui uses the cut package mechanism to freeze its execution layer — snapshotting framework code at specific protocol versions for deterministic replay.</summary>
  </entry>
  <entry>
    <title>ML04: Membership Inference Attack — 0xTheBlackPanther</title>
    <id>https://pantheraudits.com/blog/ai-security-ML04-membership-inference-attack.html</id>
    <link href="https://pantheraudits.com/blog/ai-security-ML04-membership-inference-attack.html"/>
    <published>2026-03-26T00:00:00Z</published>
    <updated>2026-03-26T00:00:00Z</updated>
    <summary type="text">You don&apos;t need to extract the training data. You just need to ask the right questions — and the model will tell you whose data it learned from.</summary>
  </entry>
  <entry>
    <title>ML05: Model Theft — 0xTheBlackPanther</title>
    <id>https://pantheraudits.com/blog/ai-security-ML05-model-theft.html</id>
    <link href="https://pantheraudits.com/blog/ai-security-ML05-model-theft.html"/>
    <published>2026-03-26T00:00:00Z</published>
    <updated>2026-03-26T00:00:00Z</updated>
    <summary type="text">You don&apos;t need to break into anyone&apos;s servers. If a model is queryable, it is reconstructable.</summary>
  </entry>
  <entry>
    <title>ML06: ML Supply Chain Attacks — 0xTheBlackPanther</title>
    <id>https://pantheraudits.com/blog/ai-security-ML06-ML-supply-chain-attacks.html</id>
    <link href="https://pantheraudits.com/blog/ai-security-ML06-ML-supply-chain-attacks.html"/>
    <published>2026-03-26T00:00:00Z</published>
    <updated>2026-03-26T00:00:00Z</updated>
    <summary type="text">You audited your model. You reviewed your code. But did you audit every library your training script imported?</summary>
  </entry>
  <entry>
    <title>ML07: Transfer Learning Attack — 0xTheBlackPanther</title>
    <id>https://pantheraudits.com/blog/ai-security-ML07-transfer-learning-attack.html</id>
    <link href="https://pantheraudits.com/blog/ai-security-ML07-transfer-learning-attack.html"/>
    <published>2026-03-26T00:00:00Z</published>
    <updated>2026-03-26T00:00:00Z</updated>
    <summary type="text">The model passed every benchmark. It scored well on your validation set. But it was trained to fail in exactly the one scenario the attacker controls.</summary>
  </entry>
  <entry>
    <title>ML08: Model Skewing — 0xTheBlackPanther</title>
    <id>https://pantheraudits.com/blog/ai-security-ML08-model-skewing.html</id>
    <link href="https://pantheraudits.com/blog/ai-security-ML08-model-skewing.html"/>
    <published>2026-03-26T00:00:00Z</published>
    <updated>2026-03-26T00:00:00Z</updated>
    <summary type="text">The model wasn&apos;t broken on day one. It was steered — slowly, carefully, through fake feedback — until its decisions aligned with what the attacker needed.</summary>
  </entry>
  <entry>
    <title>ML09: Output Integrity Attack — 0xTheBlackPanther</title>
    <id>https://pantheraudits.com/blog/ai-security-ML09-output-integrity-attack.html</id>
    <link href="https://pantheraudits.com/blog/ai-security-ML09-output-integrity-attack.html"/>
    <published>2026-03-26T00:00:00Z</published>
    <updated>2026-03-26T00:00:00Z</updated>
    <summary type="text">Every other attack tampers with the model. This one doesn&apos;t touch it at all. It intercepts the correct answer on the way out — and replaces it with a lie.</summary>
  </entry>
  <entry>
    <title>ML10: Model Poisoning — 0xTheBlackPanther</title>
    <id>https://pantheraudits.com/blog/ai-security-ML10-model-poisoning.html</id>
    <link href="https://pantheraudits.com/blog/ai-security-ML10-model-poisoning.html"/>
    <published>2026-03-26T00:00:00Z</published>
    <updated>2026-03-26T00:00:00Z</updated>
    <summary type="text">Every other attack manipulates what the model learns or outputs. This one goes straight to the parameters and rewrites them directly.</summary>
  </entry>
  <entry>
    <title>ML02: Data Poisoning Attack — 0xTheBlackPanther</title>
    <id>https://pantheraudits.com/blog/ai-security-ML02-data-poisoning-attack.html</id>
    <link href="https://pantheraudits.com/blog/ai-security-ML02-data-poisoning-attack.html"/>
    <published>2026-03-25T00:00:00Z</published>
    <updated>2026-03-25T00:00:00Z</updated>
    <summary type="text">The attack that happens before the model even wakes up — how data poisoning corrupts AI at the weights level.</summary>
  </entry>
  <entry>
    <title>ML03: Model Inversion Attack — 0xTheBlackPanther</title>
    <id>https://pantheraudits.com/blog/ai-security-ML03-model-inversion-attack.html</id>
    <link href="https://pantheraudits.com/blog/ai-security-ML03-model-inversion-attack.html"/>
    <published>2026-03-25T00:00:00Z</published>
    <updated>2026-03-25T00:00:00Z</updated>
    <summary type="text">You don&apos;t need to steal the training data. You just need an API and patience — and the model will hand it back to you.</summary>
  </entry>
  <entry>
    <title>ML01: Input Manipulation Attack — 0xTheBlackPanther</title>
    <id>https://pantheraudits.com/blog/ai-security-ML01-input-manipulation-attack.html</id>
    <link href="https://pantheraudits.com/blog/ai-security-ML01-input-manipulation-attack.html"/>
    <published>2026-03-24T00:00:00Z</published>
    <updated>2026-03-24T00:00:00Z</updated>
    <summary type="text">What happens when the model&apos;s reality and human reality are different things — and an attacker exploits that gap.</summary>
  </entry>
  <entry>
    <title>How to Audit Aave V3 Fork Deployment Scripts — The Unsexy Attack Surface</title>
    <id>https://pantheraudits.com/blog/how-to-audit-aave-v3-fork-deployment-scripts.html</id>
    <link href="https://pantheraudits.com/blog/how-to-audit-aave-v3-fork-deployment-scripts.html"/>
    <published>2026-03-22T00:00:00Z</published>
    <updated>2026-03-22T00:00:00Z</updated>
    <summary type="text">Learnings from auditing Aave V3 fork deployment scripts — the bug classes, the patterns, and the real findings from production audits.</summary>
  </entry>
  <entry>
    <title>How Lending Protocols Work On-Chain — And How to Audit Them on Sui Move</title>
    <id>https://pantheraudits.com/blog/how-to-audit-a-lending-protocol-on-sui-move.html</id>
    <link href="https://pantheraudits.com/blog/how-to-audit-a-lending-protocol-on-sui-move.html"/>
    <published>2026-03-16T00:00:00Z</published>
    <updated>2026-03-16T00:00:00Z</updated>
    <summary type="text">Share-ratio manipulation, eMode edge cases, oracle staleness, and the liquidation paths that actually break — a field checklist from a live Sui lending audit.</summary>
  </entry>
  <entry>
    <title>Formal Verification of Aptos Move Contracts Using the Move Prover</title>
    <id>https://pantheraudits.com/blog/formal-verification-of-aptos-move-contracts-using-move-prover.html</id>
    <link href="https://pantheraudits.com/blog/formal-verification-of-aptos-move-contracts-using-move-prover.html"/>
    <published>2026-03-15T00:00:00Z</published>
    <updated>2026-03-15T00:00:00Z</updated>
    <summary type="text">Setting up the Move Prover on a real Aptos codebase: writing spec blocks, proving aborts_if conditions, and the invariants that catch bugs manual review misses.</summary>
  </entry>
  <entry>
    <title>Formal Verification of Sui Move Lending Protocol — Part 2: eMode Borrow Restrictions &amp; Finding a Bug with Certora</title>
    <id>https://pantheraudits.com/blog/formal-verification-of-current-sui-using-certora-part-2.html</id>
    <link href="https://pantheraudits.com/blog/formal-verification-of-current-sui-using-certora-part-2.html"/>
    <published>2026-03-14T00:00:00Z</published>
    <updated>2026-03-14T00:00:00Z</updated>
    <summary type="text">Using Certora&apos;s Sui Prover to encode borrow restrictions as parametric rules — and what the prover surfaced that manual review walked past.</summary>
  </entry>
  <entry>
    <title>Formal Verification of Sui Move Lending Protocol Using Certora Prover</title>
    <id>https://pantheraudits.com/blog/formal-verification-of-current-sui-using-certora-sui-prover.html</id>
    <link href="https://pantheraudits.com/blog/formal-verification-of-current-sui-using-certora-sui-prover.html"/>
    <published>2026-03-13T00:00:00Z</published>
    <updated>2026-03-13T00:00:00Z</updated>
    <summary type="text">How I mathematically proved that an eMode group assignment is immutable after obligation creation in a Sui DeFi lending protocol — using Certora&apos;s Sui Prover, parametric rules, and field accessors.</summary>
  </entry>
  <entry>
    <title>ZK Journey Week 5 — Isomorphisms, Why Cubics, and Counting Points</title>
    <id>https://pantheraudits.com/blog/zk-journey-week-05.html</id>
    <link href="https://pantheraudits.com/blog/zk-journey-week-05.html"/>
    <published>2026-03-12T00:00:00Z</published>
    <updated>2026-03-12T00:00:00Z</updated>
    <summary type="text">As a Move security researcher, I need to understand ZK proofs deeply — not just what they do, but how they work under the hood. Week 5 of my ZK learning journey at the Rare Skills ZK Bootcamp.</summary>
  </entry>
  <entry>
    <title>ZK Journey Week 4 — Elliptic Curves: Drawing Lines, Building Groups</title>
    <id>https://pantheraudits.com/blog/zk-journey-week-04.html</id>
    <link href="https://pantheraudits.com/blog/zk-journey-week-04.html"/>
    <published>2026-03-09T00:00:00Z</published>
    <updated>2026-03-09T00:00:00Z</updated>
    <summary type="text">Week 4 of my ZK learning journey at the Rare Skills ZK Bootcamp.</summary>
  </entry>
  <entry>
    <title>How to Audit a Gold-Backed Staking Protocol on Solana</title>
    <id>https://pantheraudits.com/blog/how-to-audit-a-gold-backed-staking-protocol-on-solana.html</id>
    <link href="https://pantheraudits.com/blog/how-to-audit-a-gold-backed-staking-protocol-on-solana.html"/>
    <published>2026-03-08T00:00:00Z</published>
    <updated>2026-03-08T00:00:00Z</updated>
    <summary type="text">RWA-backed staking on Solana: mint/redeem trust boundaries, reward accounting, oracle dependencies, and the Anchor account-validation traps from a real engagement.</summary>
  </entry>
  <entry>
    <title>How to Audit a Diamond-Pattern Stablecoin Protocol — Lessons from a Real Engagement</title>
    <id>https://pantheraudits.com/blog/how-to-audit-a-stablecoin-protocol.html</id>
    <link href="https://pantheraudits.com/blog/how-to-audit-a-stablecoin-protocol.html"/>
    <published>2026-03-06T00:00:00Z</published>
    <updated>2026-03-06T00:00:00Z</updated>
    <summary type="text">Peg mechanics, collateral accounting, mint/burn access paths, and diamond-pattern upgrade risk — what I check first in every stablecoin review.</summary>
  </entry>
  <entry>
    <title>I Built an Open-Source Move Auditor Skill for Claude Code</title>
    <id>https://pantheraudits.com/blog/the-move-auditor.html</id>
    <link href="https://pantheraudits.com/blog/the-move-auditor.html"/>
    <published>2026-03-05T00:00:00Z</published>
    <updated>2026-03-05T00:00:00Z</updated>
    <summary type="text">Introducing move-auditor — an open-source Claude skill that runs a structured security-audit pipeline over Move codebases, built from my real engagement workflow.</summary>
  </entry>
  <entry>
    <title>ZK Journey Week 3 — Why Prime? From Group Theory to Real Cryptography</title>
    <id>https://pantheraudits.com/blog/zk-journey-week-03.html</id>
    <link href="https://pantheraudits.com/blog/zk-journey-week-03.html"/>
    <published>2026-03-04T00:00:00Z</published>
    <updated>2026-03-04T00:00:00Z</updated>
    <summary type="text">Week 3 of my ZK learning journey at the Rare Skills ZK Bootcamp.</summary>
  </entry>
  <entry>
    <title>I Open-Sourced My AI Audit Workflow — Prompts, Pipelines, and Everything I Learned</title>
    <id>https://pantheraudits.com/blog/i-open-source-my-audit-prompts-and-workflow.html</id>
    <link href="https://pantheraudits.com/blog/i-open-source-my-audit-prompts-and-workflow.html"/>
    <published>2026-03-03T00:00:00Z</published>
    <updated>2026-03-03T00:00:00Z</updated>
    <summary type="text">The full prompt pipeline I use to assist real audits — recon, hypothesis generation, verification gates — published with notes on what worked and what didn&apos;t.</summary>
  </entry>
  <entry>
    <title>ZK Journey Week 2 — Abstract Algebra: From Sets to Fields</title>
    <id>https://pantheraudits.com/blog/zk-journey-week-02.html</id>
    <link href="https://pantheraudits.com/blog/zk-journey-week-02.html"/>
    <published>2026-03-02T00:00:00Z</published>
    <updated>2026-03-02T00:00:00Z</updated>
    <summary type="text">Week 2 of my ZK learning journey at the Rare Skills ZK Bootcamp.</summary>
  </entry>
  <entry>
    <title>How Perpetual Futures Work On-Chain — And How to Audit Them</title>
    <id>https://pantheraudits.com/blog/how-to-audit-a-perp-protocol-on-aptos-move.html</id>
    <link href="https://pantheraudits.com/blog/how-to-audit-a-perp-protocol-on-aptos-move.html"/>
    <published>2026-03-01T00:00:00Z</published>
    <updated>2026-03-01T00:00:00Z</updated>
    <summary type="text">Learnings from auditing a fully on-chain perp DEX in Move on Aptos — orderbook mechanics, oracle integration, liquidation engine, funding rate, and the bugs that actually matter.</summary>
  </entry>
  <entry>
    <title>Field Order Is Sort Order — How Struct Layout Silently Breaks Ordered Maps in Move</title>
    <id>https://pantheraudits.com/blog/silent-bug-in-big-ordered-map-struct-move.html</id>
    <link href="https://pantheraudits.com/blog/silent-bug-in-big-ordered-map-struct-move.html"/>
    <published>2026-02-23T00:00:00Z</published>
    <updated>2026-02-23T00:00:00Z</updated>
    <summary type="text">Move compares structs lexicographically by field declaration order. If you use a struct as a key in an ordered map, the first field dominates sorting — not the field you think matters. A real bug from Decibel Exchange&apos;s perpetual futures DEX on…</summary>
  </entry>
  <entry>
    <title>The Delete-Then-Validate Bug — How return vs abort Silently Corrupts State in Move</title>
    <id>https://pantheraudits.com/blog/the-silent-killer-in-move-how-return-after-state-mutation-permanently-corrupts-on-chain-data.html</id>
    <link href="https://pantheraudits.com/blog/the-silent-killer-in-move-how-return-after-state-mutation-permanently-corrupts-on-chain-data.html"/>
    <published>2026-02-22T00:00:00Z</published>
    <updated>2026-02-22T00:00:00Z</updated>
    <summary type="text">A real bug from Aptos core&apos;s trading engine that permanently deleted orders on an &amp;quot;error&amp;quot; path. The root cause? A return where there should have been an abort. Applies to both Aptos and Sui Move.</summary>
  </entry>
  <entry>
    <title>ZK Journey Week 1 — Why a Move Security Researcher Is Learning Zero Knowledge Proofs</title>
    <id>https://pantheraudits.com/blog/zk-journey-week-01.html</id>
    <link href="https://pantheraudits.com/blog/zk-journey-week-01.html"/>
    <published>2026-02-20T00:00:00Z</published>
    <updated>2026-02-20T00:00:00Z</updated>
    <summary type="text">As a Move security researcher, I need to understand ZK proofs deeply — not just what they do, but how they work under the hood. Week 1 of my ZK learning journey at the Rare Skills ZK Bootcamp.</summary>
  </entry>
  <entry>
    <title>The Wrong Address: The Move Bug That Would Have Bricked Aave on Aptos</title>
    <id>https://pantheraudits.com/blog/the-move-bug-that-would-have-bricked-aave-on-aptos.html</id>
    <link href="https://pantheraudits.com/blog/the-move-bug-that-would-have-bricked-aave-on-aptos.html"/>
    <published>2026-02-14T00:00:00Z</published>
    <updated>2026-08-05T00:00:00Z</updated>
    <summary type="text">Panther placed 3rd in Aave Aptos V3 and received 24,293.09 GHO total contest payout for 1 confirmed High and 1 confirmed Medium. This case study explains the protocol-bricking High.</summary>
  </entry>
  <entry>
    <title>From the Trenches — Lessons from 6x Top 3 Finishes in Competitive Audits</title>
    <id>https://pantheraudits.com/blog/how-to-win-a-public-contest.html</id>
    <link href="https://pantheraudits.com/blog/how-to-win-a-public-contest.html"/>
    <published>2026-02-12T00:00:00Z</published>
    <updated>2026-02-12T00:00:00Z</updated>
    <summary type="text">Zero fluff, pure trenches-tested insights from climbing to the top 50s on Cantina. This is the alpha that actually moved the needle — not theory, not vibes, just what works when you&apos;re deep in the code at 3 AM and the leaderboard is watching.</summary>
  </entry>
  <entry>
    <title>The Ghost Owner — CVE-2024-45304</title>
    <id>https://pantheraudits.com/blog/the-ghost-owner.html</id>
    <link href="https://pantheraudits.com/blog/the-ghost-owner.html"/>
    <published>2026-02-11T00:00:00Z</published>
    <updated>2026-08-05T00:00:00Z</updated>
    <summary type="text">CVE-2024-45304 in OpenZeppelin Cairo OwnableTwoStep left pending ownership live after renunciation, allowing a pending owner to reclaim control. This case study covers the root cause, impact, and fix.</summary>
  </entry>
</feed>
