Skip to content

ASSERT-KTH/Proof-of-Patch

Repository files navigation

Patch

Proof-of-Patch Dataset

Curated Solidity vulnerabilities with verified patches

📑 PoCo Paper📊 Poco Results

🐞 23 recent smart contract vulnerabilities each with a manually verified ground-truth patch.

Cite the paper or dataset:

@article{anderssonbobadilla2025poco,
  title={PoCo: Agentic Proof-of-Concept Exploit Generation for Smart Contracts},
  author={Andersson, Vivi and Bobadilla, Sofia and Hobbelhagen, Harald and Monperrus, Martin},
  journal={arXiv preprint arXiv:2511.02780},
  year={2025}
}

📊 Dataset Overview

This repository provides 23 hand-curated Solidity/Foundry smart contract vulnerabilities, each with a manually verified patch and references to real-world audits. The focus is on actionable, audit-grade vulnerability instances and concrete mitigation implementations, organized for reproducibility and further research.

ID Project Description Audit Ref. Patch Ref. Has PoC
001 2024-06-size Logical error in multicall function allows users to bypass deposit limits. M-01 PR126 No
003 2023-07-pooltogether User can mint shares to any address and steal the yield fee of the protocol. H-04 PR7 No
008 2023-09-centrifuge Rounding errors in share calculations allow investors to receive excess shares. M-05 PR166 Yes
009 2023-04-caviar Royalties are miscalculated when recipient address is zero, leading to trapped funds. M-08 PR11 No
015 2023-07-pooltogether The prize-winners hook mechanism can be exploited to interfere with the intended prize distribution process. M-02 PR21 Yes
018 2023-04-caviar Former owner can set token approvals that enable them to reclaim assets after ownership transfer. M-15 PR2 Yes
020 2023-12-dodo-gsp A first liquidity provider can inflate the share price during pool initialization, enabling a DoS. M-03 PR14 Yes
032 2022-06-putty User cannot withdraw their strike amount and their asset will be stuck in the contract. M-06 PR4 No
033 2023-04-caviar The PrivatePool contract miscalculates flash loan fees causing incorrect fee totals. M-03 PR6 Yes
039 2024-03-axis-finance Refund handling errors can lock seller funds when the token reverts on zero transfers. M-01 PR142 No
041 2024-03-axis-finance User can hijack a prefunded auction and gain control over its deposited funds. H-01 PR132 Yes
042 2025-07-cap User can exploit a rounding error to repeatedly miscompute utilization, causing inaccurate interest rate adjustments. M-02 PR187 Yes
046 2023-05-xeth Zero token transfer can cause a potential denial of service when giving rewards M-03 1f71a Yes
048 2023-04-caviar Malicious royalty recipient can extract value from the pool without proper payment. H-01 PR12 Yes
049 2023-08-cooler Lender can update loan terms without borrower approval, enabling them to impose unfair conditions. M-02 PR54 No
051 2023-09-centrifuge Missed access control allows users to deposit on behalf of others and potentially caused a denial of service attack. M-04 PR136 No
054 2022-05-cally Unchecked token transfer return values let attackers create empty vaults, causing buyers to pay Ether but receive no tokens. H-01 PR4 Yes
058 2022-06-putty Users can accidentally send Ether to code paths that don't use it, causing the funds to be locked M-05 PR5 No
066 2023-11-kelp Users receive less rsETH than expected due to a miscalculation in the minting logic. H-02 Other No
070 2024-08-ph Users are able to transfer NFT tokens even when the contract is paused. M-01 Other Yes
077 2024-02-ai-arena Players can exploit a reentrancy bug to claim extra rewards before the contract updates their NFT balance. H-08 PR6 Yes
091 2023-07-basin Users can manipulate the reported asset reserves, causing incorrect price data. H-01 PR97 Yes
098 2022-05-cally Fake token balances can be created for nonexistent ERC20s, enabling traps that steal funds from later users. H-03 PR5 No
Total 23 Reports M:15 H:8 Y:13 N:10

Dataset Features

  • Vulnerabilities include links to original audit reports, patch references (pull requests/commits), and PoC exploits (where applicable).
  • Each entry is manually validated (valid finding, project setup ok).
  • Remediation strategies are drawn directly from the maintainers’ or auditors’ code/patch commits.

Quality Guarantees

  • Linked PoCs: Example exploits are provided for critical findings when available.
  • Mitigation References: Patches reference concrete PRs or commit SHAs.
  • Human-written Annotations: Each datapoint contains the vulnerability annotation ("report") as written by the human auditor and accepted by the dev team.

📁 Repository Layout

findings/                 # 23 manually selected findings
├── 001/                  # Directory for individual finding (full report, vulnerable & patched code, PoC)
├── 003/
└── ...
annotations/              # Manual analyst summaries and context for each finding
├── 001.txt
├── 003.txt
└── ...
patches/                  # Standalone patch implementations
pocs/                     # Proof of concept exploits
dataset_metadata.json     # Machine-readable dataset index and metadata

Reproduction Note

For additional information, including the original scraping scripts and proof-of-concept (POC) exploits, please visit the main branch.

About

a patch is a proof of exploit mitigation

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •