# Missing maximum bond signature parameter

Signed agent-registration message in Olas ServiceManager omits bond amount, letting a service owner raise bonds and reuse the signature to lock 100x more operator funds.

- Payout: Contest reward
- Severity: high
- Program: Olas
- Credited: santipu_
- Disclosed: 2026-05-18
- Write-up quality: 6/10
- Original: https://code4rena.com/reports/2026-01-olas#h-09
- Library page: https://bugbountylibrary.com/r/c4%3A2026-01-olas%3AH-09
- Tags: domain:web3 impact:funds-loss kind:contest platform:code4rena sev:high tech:solidity technique:source-review vuln:business-logic vuln:signature-replay

**Target:** ServiceManager.sol registerAgentsWithSignature
**Root cause:** The signed message hash covers operator, owner, service ID, agent instances, agent IDs and nonce but not the bond amount, so bond changes after signing are not authenticated.
**Steps:**
1. Bob creates service requiring Agent1 with bond 1e18.
2. Alice signs registerAgentsWithSignature message authorizing Bob to register her agents.
3. Bob terminates service, updates bond to 100e18 per agent, reactivates registrations.
4. Bob calls registerAgentsWithSignature with Alice's original signature; contract registers agents at 100e18 bond.
5. Alice's 100x funds are locked until service termination, controlled by Bob.
**How found:** Code review of the signature parameter list in registerAgentsWithSignature, noticing bond amount absent from the signed hash and reasoning about post-signature config changes.
**Exploitation:** Service owner reuses a pre-signed registration authorization after inflating the bond requirement, forcing the operator's tokens to be bonded far beyond consent; funds stay locked until owner-terminated service.
**Insight:** When auditing signature-gated registration, enumerate every economic parameter the callee enforces at execution time and check each is bound in the signed hash; mutable config between signing and execution is the attack window.
