Commit 00db174
fix: address CodeRabbit security and validation findings
Three improvements based on CodeRabbit review:
1. UUID Validation (Defense-in-Depth):
- Add strict UUID validation in ValidateAPIKey before using metadata.ID
- Fail-closed: return error instead of proceeding with malformed IDs
- Prevents malformed IDs from being used in cache keys or authz decisions
- Updated tests to use realistic UUIDs instead of human-readable IDs
2. Negative TTL Test Coverage:
- Extract ValidateCacheTTLs() helper function from SetupWithManager
- Update TestMaaSAuthPolicyReconciler_NegativeTTLRejection to actually
test the validation logic used by SetupWithManager
- Test now verifies expectSetupFail cases properly reject negative TTLs
3. X-MaaS-Group JSON Construction (Injection Prevention):
- Replace string concatenation ('["' + ... + '"]') with CEL string() conversion
- Properly escapes special characters in group names
- Prevents JSON injection if group names contain quotes or brackets
- Empty arrays now serialize as [] instead of potentially malformed strings
All tests pass after changes.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>1 parent 144c17f commit 00db174
File tree
4 files changed
+50
-26
lines changed- maas-api/internal/api_keys
- maas-controller/pkg/controller/maas
4 files changed
+50
-26
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
239 | 239 | | |
240 | 240 | | |
241 | 241 | | |
| 242 | + | |
| 243 | + | |
| 244 | + | |
| 245 | + | |
| 246 | + | |
| 247 | + | |
| 248 | + | |
| 249 | + | |
242 | 250 | | |
243 | 251 | | |
244 | 252 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
43 | 43 | | |
44 | 44 | | |
45 | 45 | | |
46 | | - | |
47 | | - | |
| 46 | + | |
| 47 | + | |
48 | 48 | | |
49 | 49 | | |
50 | 50 | | |
| |||
108 | 108 | | |
109 | 109 | | |
110 | 110 | | |
111 | | - | |
| 111 | + | |
112 | 112 | | |
113 | 113 | | |
114 | 114 | | |
| |||
134 | 134 | | |
135 | 135 | | |
136 | 136 | | |
137 | | - | |
| 137 | + | |
138 | 138 | | |
139 | 139 | | |
140 | 140 | | |
| |||
157 | 157 | | |
158 | 158 | | |
159 | 159 | | |
160 | | - | |
| 160 | + | |
161 | 161 | | |
162 | 162 | | |
163 | 163 | | |
| |||
180 | 180 | | |
181 | 181 | | |
182 | 182 | | |
183 | | - | |
| 183 | + | |
184 | 184 | | |
185 | 185 | | |
186 | 186 | | |
| |||
216 | 216 | | |
217 | 217 | | |
218 | 218 | | |
219 | | - | |
| 219 | + | |
220 | 220 | | |
221 | 221 | | |
222 | 222 | | |
| |||
249 | 249 | | |
250 | 250 | | |
251 | 251 | | |
252 | | - | |
| 252 | + | |
253 | 253 | | |
254 | 254 | | |
255 | 255 | | |
| |||
Lines changed: 17 additions & 7 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
459 | 459 | | |
460 | 460 | | |
461 | 461 | | |
462 | | - | |
| 462 | + | |
| 463 | + | |
463 | 464 | | |
464 | 465 | | |
465 | | - | |
| 466 | + | |
466 | 467 | | |
467 | 468 | | |
468 | 469 | | |
| |||
758 | 759 | | |
759 | 760 | | |
760 | 761 | | |
761 | | - | |
762 | | - | |
763 | | - | |
764 | | - | |
765 | | - | |
| 762 | + | |
| 763 | + | |
| 764 | + | |
766 | 765 | | |
767 | 766 | | |
768 | 767 | | |
769 | 768 | | |
770 | 769 | | |
771 | 770 | | |
| 771 | + | |
| 772 | + | |
| 773 | + | |
| 774 | + | |
| 775 | + | |
| 776 | + | |
| 777 | + | |
| 778 | + | |
| 779 | + | |
| 780 | + | |
| 781 | + | |
772 | 782 | | |
773 | 783 | | |
774 | 784 | | |
| |||
Lines changed: 17 additions & 11 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
585 | 585 | | |
586 | 586 | | |
587 | 587 | | |
588 | | - | |
589 | | - | |
590 | | - | |
591 | | - | |
592 | | - | |
593 | | - | |
594 | | - | |
595 | | - | |
596 | | - | |
| 588 | + | |
| 589 | + | |
| 590 | + | |
| 591 | + | |
| 592 | + | |
| 593 | + | |
| 594 | + | |
| 595 | + | |
| 596 | + | |
| 597 | + | |
| 598 | + | |
597 | 599 | | |
598 | | - | |
599 | | - | |
| 600 | + | |
| 601 | + | |
| 602 | + | |
| 603 | + | |
| 604 | + | |
| 605 | + | |
600 | 606 | | |
601 | 607 | | |
602 | 608 | | |
| |||
0 commit comments