loop-breaker
Scaffolds middleware to prevent infinite recursion and runaway loops in serverless Workers, protecting against costly billing impacts.
Install this skill
Security score
The loop-breaker skill was audited on Feb 12, 2026 and we found 14 security issues across 4 threat categories. Review the findings below before installing.
Categories Tested
Security Issues
Template literal with variable interpolation in command context
| 49 | console.error(`Recursion limit exceeded: depth=${currentDepth}, limit=${maxDepth}`); |
Template literal with variable interpolation in command context
| 58 | message: `Recursion depth ${currentDepth} exceeds limit ${maxDepth}`, |
Template literal with variable interpolation in command context
| 174 | super(`Recursion limit exceeded: ${ctx.depth} > ${ctx.maxDepth}`); |
Template literal with variable interpolation in command context
| 181 | super(`Recursion cycle detected: ${worker} in chain [${chain.join(' -> ')}]`); |
Template literal with variable interpolation in command context
| 215 | const key = `${keyPrefix}${messageId}`; |
Template literal with variable interpolation in command context
| 243 | console.log(`Skipping duplicate message: ${msg.id}`); |
Template literal with variable interpolation in command context
| 253 | console.error(`Failed to process message ${msg.id}:`, error); |
Template literal with variable interpolation in command context
| 387 | .prepare(`SELECT * FROM users WHERE id IN (${placeholders})`) |
Fetch to external URL
| 106 | const response = await fetch('https://other-worker.example.com/process', { |
Webhook reference - potential data exfiltration
| 3 | description: Scaffold middleware to detect and block Worker self-recursion, infinite fetch chains, and runaway loops. Use this skill when designing Workers that call other Workers, implement webhooks, |
Webhook reference - potential data exfiltration
| 102 | app.post('/webhook', async (c) => { |
Webhook reference - potential data exfiltration
| 464 | | Webhook → same Worker | Recursive billing | Add depth limit | |
Access to .env file
| 194 | const result = await c.env.DATA_SERVICE.fetchUser(userId, ctx); |
External URL reference
| 106 | const response = await fetch('https://other-worker.example.com/process', { |