Summary
The anonymous endpoint GET /api/v1/repos/federated deserializes each reachable peer response into Vec<serde_json::Value> and accumulates rows without byte, row, or aggregate limits (crates/gitlawb-node/src/api/repos.rs:2945-2990).
Impact
A peer returning oversized JSON arrays causes unbounded heap retention and serialization work.
Remediation
- Bound peer HTTP response bytes.
- Cap rows per peer and aggregate total.
- Deserialize bounded typed DTOs.
Summary
The anonymous endpoint
GET /api/v1/repos/federateddeserializes each reachable peer response intoVec<serde_json::Value>and accumulates rows without byte, row, or aggregate limits (crates/gitlawb-node/src/api/repos.rs:2945-2990).Impact
A peer returning oversized JSON arrays causes unbounded heap retention and serialization work.
Remediation