The normal behavior of the system allows customer demands to be triggered only if the company's reputation is at or above 60, with successful sales increasing reputation by 2 (up to 100) and failed sales (due to insufficient inventory) decreasing it by 5 (down to 0). This simulates market trust based on fulfillment.
The specific issue is that once reputation drops below 60 due to repeated failed sales, no further demands can be triggered, preventing any successful sales needed to recover reputation, creating a permanent lockout state with no built-in recovery mechanism.
Likelihood: Medium
Multiple failed demands occur during periods of low inventory, which can happen naturally if production is not kept up with demand triggers.
Users or attackers repeatedly trigger demands after cooldowns when inventory is depleted, leading to progressive reputation loss.
Impact: High
Permanent denial of service for sales and revenue generation, rendering the core simulation functionality unusable.
Accumulated holding debts from unsold inventory could lead to bankruptcy, indirectly risking all company funds and investor payouts.
The test script funds the company, produces minimal inventory (1 item), and simulates multiple customer demands over time (with cooldown bypass via time travel), causing repeated sale failures that drop reputation below 60, after which further demands revert, demonstrating irrecoverable lockout.
Add an owner-only function boost_reputation to incrementally increase reputation (capped at 10 per call) and emit a ReputationChanged event, allowing manual recovery.
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.