T09 · Insecure Skill Coding Practices
- Location
src/scheduler.js:277- Finding
Task Scheduling Bypasses Configured Resource Limits
- Content
View full analysis
= 0; i--) { const task = this.taskQueue[i]; // Find suitable agents let suitableAgents = availableAgents; if (task.requirements.capabilities) { suitableAgents = availableAgents.filter(agent => task.requirements.capabilities.every(cap => agent.capabilities.includes(cap) ) ); } if (suitableAgents.length === 0) continue; // Select agent using load balancer const selectedAgent = this.loadBalancer.select(suitableAgents); if (!selectedAgent) continue; // Assign task task.status = 'running'; task.assignedTo = selectedAgent.id; task.startedAt = Date.now(); // Remove from queue this.taskQueue.splice(i, 1); // Add to running this.runningTasks.set(task.id, task); // Set timeout this._setTaskTimeout(task); this.emit('task:assigned', task, selectedAgent.id); console.log(`[Scheduler] Task assigned: ${task.id} -> ${selectedAgent.id}`); // Update agent load selectedAgent.currentLoad++; } } ``` `src/resource-manager.js:70-107` defines validation that the scheduler never invokes: ```javascript canAllocateTask(agentId, resources = {}) { const agentRes = this.agentResources.get(agentId); if (!agentRes) return false; // Check concurrency if (agentR ...[truncated 3030 chars]- Remediation
View remediation
