T01 · Skill Instruction Hijacking
- Location
dist/services/post-call.js:57- Finding
Untrusted Call Transcript Injected into an Actionable System Event
- Content
View full analysis
num.length > 4 ? num.slice(0, -4).replace(/./g, "*") + num.slice(-4) : "****"; lines.push(`--- CALL COMPLETED (${dir}) ---`); if (meta?.callerPhone) lines.push(`Phone: ${maskPhone(meta.callerPhone)}`); if (extracted?.callerName) lines.push(`Caller: ${extracted.callerName}${extracted.company ? ` (${extracted.company})` : ""}`); if (extracted?.callbackNumber) lines.push(`Callback: ${maskPhone(extracted.callbackNumber)}`); if (extracted?.reason) lines.push(`Reason: ${extracted.reason}`); lines.push(`Duration: ${this.formatDuration(summary.durationMs)} | Turns: ${transcript.length}`); lines.push(`Outcome: ${summary.outcome}`); // M5: Limit system event transcript to last 5 turns instead of up to 20 if (transcript.length > 0) { lines.push(`\nTranscript (last ${Math.min(transcript.length, 5)} of ${transcript.length} turns):`); for (const entry of transcript.slice(-5)) { const role = entry.speaker === "agent" ? "Agent" : "Caller"; lines.push(`${role}: ${entry.text}`); } } if (recordingUrl) { lines.push ...[truncated 3106 chars]- Remediation
View remediation
