The owner deploys the contract and uses privileged functions to adjust the share cap, produce inventory items, and handle debt repayments, simulating executive decisions in a virtual company. Investors receive shares proportional to their funding contributions, expecting fair governance.
The lack of checks or balances on the owner's increase_share_cap function allows them to inflate the total share supply indefinitely, issuing new shares to themselves or favored parties, which directly reduces the value and voting power of existing shares without recourse. This centralization risk undermines the decentralized ethos and exposes investors to rug-pull scenarios.
Likelihood: High
Owner can call this function repeatedly during low-activity periods when investors are not monitoring
No cooldown, quorum, or timelock mechanisms to prevent abuse
Impact: High
Existing investors' proportional ownership is diluted, leading to loss of control over company decisions like production rates or debt management
Enables insider trading or self-funding loops where owner funds via new shares and extracts value through production sales
This PoC simulates a step-by-step attack sequence using pseudo-code (not executable Vyper, but illustrative of contract interactions). It demonstrates how an attacker (the owner) exploits the increase_share_cap and invest functions to dilute shares.
This diff shows targeted additions to increase_share_cap to add safeguards. + lines are new; - is unchanged for context. It introduces state variables like self.last_cap_increase (uint256 timestamp).
The contest is live. Earn rewards by submitting a finding.
This is your time to appeal against judgements on your submissions.
Appeals are being carefully reviewed by our judges.