Output transaction sequence for reaching vulnerable state
See original GitHub issueDescription
Add an option that outputs the transactions for reaching each vulnerable state.
Background
We already have all the data we need from the solver. It should be trivial to reformat this output for various purposes:
- As a Truffle test;
- As an executable exploit;
- As a script that deploys the contract to Ganache and attempts to exploit the issue.
Scope
Compose the call data for each message call in the transaction sequence. For example, running an assert test on the following example should produce three transactions:
contract Token{
mapping(address => uint) public balances;
function airdrop() public{
balances[msg.sender] = 1000;
}
function consume() public{
require(balances[msg.sender]>0);
balances[msg.sender] -= 1;
}
function backdoor() public{
balances[msg.sender] += 1;
}
function test_invariants() {
assert(balances[msg.sender] <= 1000);
}
}
Issue Analytics
- State:
- Created 5 years ago
- Comments:10 (3 by maintainers)
Top Results From Across the Web
SmarTest: Effectively Hunting Vulnerable Transaction ...
Abstract. We present SMARTEST, a novel symbolic execution tech- nique for effectively hunting vulnerable transaction sequences.
Read more >5. Transactions - Mastering Bitcoin [Book] - O'Reilly
A transaction's lifecycle starts with the transaction's creation, also known as origination. The transaction is then signed with one or more signatures ...
Read more >KB4072698: Windows Server and Azure Stack HCI guidance ...
This article provides guidance for a new class of silicon-based microarchitectural and speculative execution side-channel vulnerabilities that affect many ...
Read more >Known Exploited Vulnerabilities Catalog | CISA
The vulnerability is due to a lack of proper input validation of URLs in HTTP requests processed by an affected device. An attacker...
Read more >What Is Proof of Work (PoW) in Blockchain? - Investopedia
Proof of work describes the process that allows the bitcoin network to remain robust by making the process of mining, or recording transactions,...
Read more >Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start FreeTop Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
Top GitHub Comments
I’m here @gitcoinbot
Issue Status: 1. Open 2. Started 3. Submitted 4. Done
The funding of 2.2 ETH (463.0 USD @ $210.45/ETH) attached to this issue has been approved & issued to @nbanmp.