@@ -58,6 +58,7 @@ Please be aware that these contain spoilers. For contribution guidelines, please
5858 - [ Foundry cheatcodes] ( #foundry-cheatcodes )
5959 - [ Front-running] ( #front-running )
6060 - [ Back-running] ( #back-running )
61+ - [ EIP-7702] ( #eip-7702 )
6162 - [ Head overflow bugs in calldata tuple ABI-reencoding (\< Solidity 0.8.16)] ( #head-overflow-bugs-in-calldata-tuple-abi-reencoding--solidity-0816 )
6263 - [ Overwriting storage slots via local storage variables (\< Solidity 0.8.1)] ( #overwriting-storage-slots-via-local-storage-variables--solidity-081 )
6364 - [ Overwriting arbitrary storage slots by setting array lengths to ` 2^256-1 ` (\< Solidity 0.6.0)] ( #overwriting-arbitrary-storage-slots-by-setting-array-lengths-to-2256-1--solidity-060 )
@@ -356,28 +357,29 @@ Note:
356357- Use a disassembler (e.g., [ ByteGraph] ( https://bytegraph.xyz/ ) , [ ethersplay] ( https://github.com/crytic/ethersplay ) ).
357358- Use a debugger (e.g., [ Foundry Debugger] ( https://book.getfoundry.sh/forge/debugger ) ).
358359
359- | Challenge | Note, Keywords |
360- | --------------------------------------------------------------- | --------------------------------------- |
361- | Incognito 2.0: Ez | keep in plain text |
362- | [ 0x41414141 CTF: crackme.sol] ( src/0x41414141CTF/ ) | decompile |
363- | [ 0x41414141 CTF: Crypto Casino] ( src/0x41414141CTF/ ) | bypass condition check |
364- | Paradigm CTF 2021: Babyrev | |
365- | 34C3 CTF: Chaingang | |
366- | Blaze CTF 2018: Smart? Contract | |
367- | DEF CON CTF Qualifier 2018: SAG? | |
368- | pbctf 2020: pbcoin | |
369- | Paradigm CTF 2022: STEALING-SATS | |
370- | Paradigm CTF 2022: ELECTRIC-SHEEP | |
371- | Paradigm CTF 2022: FUN-REVERSING-CHALLENGE | |
372- | [ DownUnderCTF 2022: EVM Vault Mechanism] ( src/DownUnderCTF2022/ ) | |
373- | [ EKOPARTY CTF 2022: Byte] ( src/EkoPartyCTF2022/ ) | stack tracing |
374- | [ EKOPARTY CTF 2022: SmartRev] ( src/EkoPartyCTF2022/ ) | memory tracing |
375- | [ Numen Cyber CTF 2023: HEXP] ( src/NumenCTF/ ) | previous block hash == gas price % 2^24 |
376- | [ BlazCTF 2023: Maze] ( src/BlazCTF2023/ ) | |
377- | [ BlazCTF 2023: Jambo] ( src/BlazCTF2023/ ) | |
378- | [ BlazCTF 2023: Ghost] ( src/BlazCTF2023/ ) | |
379- | [ Curta: Lana] ( src/Curta/20_Lana/ ) | LLVM |
380- | [ Ethernaut: 30. HigherOrder] ( src/Ethernaut/HigherOrder/ ) | calldata |
360+ | Challenge | Note, Keywords |
361+ | ------------------------------------------------------------------------------------ | --------------------------------------- |
362+ | Incognito 2.0: Ez | keep in plain text |
363+ | [ 0x41414141 CTF: crackme.sol] ( src/0x41414141CTF/ ) | decompile |
364+ | [ 0x41414141 CTF: Crypto Casino] ( src/0x41414141CTF/ ) | bypass condition check |
365+ | Paradigm CTF 2021: Babyrev | |
366+ | 34C3 CTF: Chaingang | |
367+ | Blaze CTF 2018: Smart? Contract | |
368+ | DEF CON CTF Qualifier 2018: SAG? | |
369+ | pbctf 2020: pbcoin | |
370+ | Paradigm CTF 2022: STEALING-SATS | |
371+ | Paradigm CTF 2022: ELECTRIC-SHEEP | |
372+ | Paradigm CTF 2022: FUN-REVERSING-CHALLENGE | |
373+ | [ DownUnderCTF 2022: EVM Vault Mechanism] ( src/DownUnderCTF2022/ ) | |
374+ | [ EKOPARTY CTF 2022: Byte] ( src/EkoPartyCTF2022/ ) | stack tracing |
375+ | [ EKOPARTY CTF 2022: SmartRev] ( src/EkoPartyCTF2022/ ) | memory tracing |
376+ | [ Numen Cyber CTF 2023: HEXP] ( src/NumenCTF/ ) | previous block hash == gas price % 2^24 |
377+ | [ BlazCTF 2023: Maze] ( src/BlazCTF2023/ ) | |
378+ | [ BlazCTF 2023: Jambo] ( src/BlazCTF2023/ ) | |
379+ | [ BlazCTF 2023: Ghost] ( src/BlazCTF2023/ ) | |
380+ | [ Curta: Lana] ( src/Curta/20_Lana/ ) | LLVM |
381+ | [ Ethernaut: 30. HigherOrder] ( src/Ethernaut/HigherOrder/ ) | calldata |
382+ | [ COMPFEST CTF 2025: Synthetic Manipulation] ( src/Compfest2025/SyntheticManipulation/ ) | |
381383
382384### EVM assembly logic bugs
383385- Logic bugs in assemblies such as Yul
@@ -529,9 +531,10 @@ Note:
529531- This can be exploited in systems that track used signatures, as the alternative signature may not be recognized as already used.
530532- In Ethereum's secp256k1 curve, this property can be used to bypass signature verification mechanisms.
531533
532- | Challenge | Note, Keywords |
533- | ---------------------------------------------------------- | ---------------------------------------- |
534- | [ SmileyCTF: MultisigWallet] ( src/SmileyCTF/MultisigWallet/ ) | ECDSA, signature malleability, secp256k1 |
534+ | Challenge | Note, Keywords |
535+ | ---------------------------------------------------------------------- | ---------------------------------------- |
536+ | [ SmileyCTF: MultisigWallet] ( src/SmileyCTF/MultisigWallet/ ) | ECDSA, signature malleability, secp256k1 |
537+ | [ COMPFEST CTF 2025: snake_inception] ( src/Compfest2025/SnakeInception/ ) | Vyper |
535538
536539### Brute-forcing addresses
537540- Brute force can make a part of an address a specific value.
@@ -620,6 +623,13 @@ Note:
620623| [ MEV-Share CTF: MevShareCTFNewContract (Address)] ( src/MEVShareCTF/ ) | |
621624| [ MEV-Share CTF: MevShareCTFNewContract (Salt)] ( src/MEVShareCTF/ ) | CREATE2 |
622625
626+ ### EIP-7702
627+
628+ | Challenge | Note, Keywords |
629+ | --------------------------------------------------------------------------------------------------------------------------------------------------- | -------------- |
630+ | [ HITCON CTF 2025: Maximal Extractable Vuln] ( https://github.com/minaminao/my-ctf-challenges/tree/main/ctfs/hitcon-ctf-2025/maximal-extractable-vuln ) | |
631+ | [ COMPFEST CTF 2025: snake_inception] ( src/Compfest2025/SnakeInception/ ) | Vyper |
632+
623633### Head overflow bugs in calldata tuple ABI-reencoding (< Solidity 0.8.16)
624634- See: https://blog.soliditylang.org/2022/08/08/calldata-tuple-reencoding-head-overflow-bug/
625635
0 commit comments