fix(#49): Object.hasOwn guards + model_policy precedence in resolveModelForTier

Squashed from claude/fervent-booth-fb7b1f. Hardens resolveModelPolicy against prototype pollution and fixes resolveModelForTier to check model_policy before dynamic_routing. 199 tests green.
This commit is contained in:
Tom Boucher
2026-06-01 10:02:05 -04:00
committed by GitHub
parent 628e1e2f32
commit 4332e1a5dd
3 changed files with 135 additions and 9 deletions

View File

@@ -0,0 +1,5 @@
---
type: Security
pr: 572
---
Hardened resolveModelPolicy against prototype pollution: Object.hasOwn guards now block \_\_proto\_\_ / constructor keys in user-supplied provider/budget/runtime_tiers from reaching inherited prototype slots. Also fixed resolveModelForTier to check model_policy before dynamic_routing so provider presets are not silently bypassed when dynamic routing is enabled.