This repository was archived by the owner on Aug 4, 2026. It is now read-only.
v3.3.3 — Cross-Model Security Audit (4 HIGH fixes)
v3.3.3 — Cross-Model Security Audit
Three free Devin CLI models (swe-1.6, glm-5-2, kimi-k2.7) reviewed the same codebase with the same checklist. Different blind spots, richer union.
HIGH — Fixed
| # | File | Finding | Found by |
|---|---|---|---|
| 1 | a2a_direct.py:65-67 |
No SSRF guard on call() — arbitrary urlopen() without URL validation. webhook/push paths had guards; direct A2A didn't. Fixed: validate_target_url() before every call(). |
swe ✅ kimi ✅ |
| 2 | tool_handlers.py:171-202 |
No SSRF guard on webhook reachability check — _validate_webhook_reachable() opened arbitrary URLs. Fixed: validate_target_url() with allow_loopback=True before outbound I/O. |
swe ✅ kimi ✅ |
| 3 | test_telegram_float.py:62 |
Env var chain leak — test didn't cover A2A_V2_BOT_TOKEN, causing live token to appear in pytest diff. Fixed: test now covers all 4 tiers. Rotate the leaked token. |
swe ✅ glm ✅ kimi ✅ |
| 4 | server.py:806-858 |
Auth bypass on GET endpoints — /tasks, /tasks/{id}, /extendedAgentCard skipped _check_auth() even when A2A_REQUIRE_AUTH=true. Fixed: all task/card GET routes now respect auth. Escalated to HIGH by Linda. |
kimi ✅ |
LOW — Fixed
| # | File | Fix |
|---|---|---|
| 5 | identity.py:68,406 |
Silent except Exception: pass → logger.warning() |
| 6 | rate_limiter.py:186 |
Cleanup loop failure → logged instead of swallowed |
| 7 | server.py |
4 dead imports removed. Webhook host validation error → logged. |
| 8 | telegram_float.py:36-38 |
Docstring env chain updated to reflect A2A_V2_BOT_TOKEN |
Cross-Model Reviewer Performance
| Model | Findings | Missed | Notes |
|---|---|---|---|
glm-5-2 |
3 | 6 false negatives | ✅ Best coder, ❌ NEVER for review. Claimed "no auth gaps" when GET bypass exists. Confident + wrong. |
swe-1.6 |
9 | auth bypass | Speed king. Solid mechanical sweep — caught both SSRF gaps + all silent exceptions. |
kimi-k2.7 |
10 | — | Slow but caught the auth bypass both others missed. Different training = different blind spots. |
Rule codified: glm-5-2 codes. swe-1.6 + kimi-k2.7 review. Coding model ≠ review model.
Tests
625 passed in 88.37s
Attribution: Cross-model sweep by Britney (orchestration) + Linda (gate, escalation of #4). Dispatch via Devin CLI harness v1.9.0.