← Dashboard

Taint Flow Analysis Report

Target: /private/tmp/openclaw | 2026-05-29
Taint analysis traces untrusted data (user input, external sources) through the call graph to dangerous operations (SQL queries, command execution, buffer copies). Each flow represents a potential vulnerability where unsanitized input reaches a security-sensitive sink.
36
Total Flows
2
Unique CWEs
4
Source→Sink Patterns

CWE Breakdown

CWECountNameRemediation
CWE-22: Path Traversal → findings33Path Traversal-
CWE-78: OS Command Injection → findings3OS Command InjectionUse subprocess with explicit argument lists instead of shell=True. Never pass user input to os.system() or exec().

Taint Flows

#SourceSinkCWECall Chain
1 read
in createHostEditOperations
src/agents/agent-tools.read.ts:1011
open
in createHostEditOperations
src/agents/agent-tools.read.ts:1029
CWE-22: Path Traversal createHostEditOperations
2 read
in load_payload
skills/model-usage/scripts/model_usage.py:53
open
in load_payload
skills/model-usage/scripts/model_usage.py:55
CWE-22: Path Traversal load_payload
3 read
in transcodeAudioBuffer
src/media/audio-transcode.ts:152
open
in beginSpeakerTurn
extensions/discord/src/voice/realtime.ts:634
CWE-22: Path Traversal transcodeAudioBufferrunAfconvertspawnspawnSubagentDirectbuildSubagentInitialUserMessagejoinjoinUnlockedhandleSpeakingStartbeginSpeakerTurn
4 read
in createHostWriteOperations
src/agents/agent-tools.read.ts:981
open
in beginSpeakerTurn
extensions/discord/src/voice/realtime.ts:634
CWE-22: Path Traversal createHostWriteOperationswriteWorkspaceFiletoCanonicalRelativeWorkspacePathjoinjoinUnlockedhandleSpeakingStartbeginSpeakerTurn
5 read
in readLogSlice
src/logging/log-tail.ts:117
open
in beginSpeakerTurn
extensions/discord/src/voice/realtime.ts:634
CWE-22: Path Traversal readLogSlicestatassertLocalPathSafetyjoinjoinUnlockedhandleSpeakingStartbeginSpeakerTurn
6 read
in readBoundedResponseText
scripts/pre-commit/pnpm-audit-prod.mjs:745
open
in beginSpeakerTurn
extensions/discord/src/voice/realtime.ts:634
CWE-22: Path Traversal readBoundedResponseTextjoinjoinUnlockedhandleSpeakingStartbeginSpeakerTurn
7 read
in runProof
test/proof/thinking-signature-real-proof.ts:298
open
in beginSpeakerTurn
extensions/discord/src/voice/realtime.ts:634
CWE-22: Path Traversal runProofparseassertAllowedKeysjoinjoinUnlockedhandleSpeakingStartbeginSpeakerTurn
8 read
in streamProxy
src/agents/runtime/proxy.ts:217
open
in beginSpeakerTurn
extensions/discord/src/voice/realtime.ts:634
CWE-22: Path Traversal streamProxyparseassertAllowedKeysjoinjoinUnlockedhandleSpeakingStartbeginSpeakerTurn
9 read
in runSingleCheck
scripts/run-additional-boundary-checks.mjs:289
open
in beginSpeakerTurn
extensions/discord/src/voice/realtime.ts:634
CWE-22: Path Traversal runSingleCheckcreateBoundedOutputBufferjoinjoinUnlockedhandleSpeakingStartbeginSpeakerTurn
10 read
in readTranscriptLeafInfo
src/config/sessions/transcript-append.ts:80
open
in beginSpeakerTurn
extensions/discord/src/voice/realtime.ts:634
CWE-22: Path Traversal readTranscriptLeafInfolineParentLinkedEntryIdparseassertAllowedKeysjoinjoinUnlockedhandleSpeakingStartbeginSpeakerTurn
11 read
in buildManagedResponse
src/agents/provider-transport-fetch.ts:345
open
in beginSpeakerTurn
extensions/discord/src/voice/realtime.ts:634
CWE-22: Path Traversal buildManagedResponsefinalizejoinjoinUnlockedhandleSpeakingStartbeginSpeakerTurn
12 read
in runCrestodianRescueMessage
src/crestodian/rescue-message.ts:175
exec
in getTailnetHostname
src/infra/tailscale.ts:123
CWE-78: OS Command Injection runCrestodianRescueMessageexecuteCrestodianOperationstatusCommandscanStatuscollectStatusScanOverviewgetTailnetHostname
13 read
in runCrestodianRescueMessage
src/crestodian/rescue-message.ts:175
open
in beginSpeakerTurn
extensions/discord/src/voice/realtime.ts:634
CWE-22: Path Traversal runCrestodianRescueMessageexecuteCrestodianOperationjoinjoinUnlockedhandleSpeakingStartbeginSpeakerTurn
14 read
in transcodeToWhatsAppVoiceOpus
extensions/whatsapp/src/outbound-media-contract.ts:249
open
in beginSpeakerTurn
extensions/discord/src/voice/realtime.ts:634
CWE-22: Path Traversal transcodeToWhatsAppVoiceOpuswithTempWorkspacejoinjoinUnlockedhandleSpeakingStartbeginSpeakerTurn
15 read
in renderLazyView
ui/src/ui/lazy-view.ts:78
open
in beginSpeakerTurn
extensions/discord/src/voice/realtime.ts:634
CWE-22: Path Traversal renderLazyViewrenderrenderApprenderSkillsjoinjoinUnlockedhandleSpeakingStartbeginSpeakerTurn
16 read
in createHostEditOperations
src/agents/agent-tools.read.ts:1011
open
in beginSpeakerTurn
extensions/discord/src/voice/realtime.ts:634
CWE-22: Path Traversal createHostEditOperationswriteWorkspaceFiletoCanonicalRelativeWorkspacePathjoinjoinUnlockedhandleSpeakingStartbeginSpeakerTurn
17 read
in readLastMessagePreviewFromOpenTranscriptAsync
src/gateway/session-utils.fs.ts:1118
open
in beginSpeakerTurn
extensions/discord/src/voice/realtime.ts:634
CWE-22: Path Traversal readLastMessagePreviewFromOpenTranscriptAsyncparseassertAllowedKeysjoinjoinUnlockedhandleSpeakingStartbeginSpeakerTurn
18 read
in readResponseBodyText
extensions/openai/image-generation-provider.ts:421
open
in beginSpeakerTurn
extensions/discord/src/voice/realtime.ts:634
CWE-22: Path Traversal readResponseBodyTextjoinjoinUnlockedhandleSpeakingStartbeginSpeakerTurn
19 read
in readSseEvent
src/gateway/sessions-history-http.test.ts:191
open
in beginSpeakerTurn
extensions/discord/src/voice/realtime.ts:634
CWE-22: Path Traversal readSseEventjoinjoinUnlockedhandleSpeakingStartbeginSpeakerTurn
20 read
in buildGuardedModelFetch
src/agents/provider-transport-fetch.ts:541
open
in beginSpeakerTurn
extensions/discord/src/voice/realtime.ts:634
CWE-22: Path Traversal buildGuardedModelFetchjoinjoinUnlockedhandleSpeakingStartbeginSpeakerTurn
21 read
in resolveReply
src/crestodian/tui-backend.ts:290
open
in beginSpeakerTurn
extensions/discord/src/voice/realtime.ts:634
CWE-22: Path Traversal resolveReplyjoinjoinUnlockedhandleSpeakingStartbeginSpeakerTurn
22 read
in resolveReply
src/crestodian/tui-backend.ts:290
exec
in getTailnetHostname
src/infra/tailscale.ts:123
CWE-78: OS Command Injection resolveReplyexecuteCrestodianOperationstatusCommandscanStatuscollectStatusScanOverviewgetTailnetHostname
23 read
in readLastNonzeroUsageFromSessionLog
src/auto-reply/reply/agent-runner-memory.ts:521
open
in beginSpeakerTurn
extensions/discord/src/voice/realtime.ts:634
CWE-22: Path Traversal readLastNonzeroUsageFromSessionLogestimatePostUsageTrailingBytesjoinjoinUnlockedhandleSpeakingStartbeginSpeakerTurn
24 read
in readResponseText
src/agents/tools/web-shared.ts:236
exec
in sh
scripts/e2e/parallels/guest-transports.ts:368
CWE-78: OS Command Injection readResponseTextdecodeResponseBytessniffCharsetexecrunresolveDesktopHomerunresolveHostIpsh
25 read
in computeFileSha256
extensions/file-transfer/src/tools/dir-fetch-tool.ts:157
open
in beginSpeakerTurn
extensions/discord/src/voice/realtime.ts:634
CWE-22: Path Traversal computeFileSha256digeststableStringifyjoinjoinUnlockedhandleSpeakingStartbeginSpeakerTurn
26 read
in downloadAndSaveTelegramFile
extensions/telegram/src/bot/delivery.resolve-media.ts:212
open
in writeMediaStreamToFile
src/media/store.ts:403
CWE-22: Path Traversal downloadAndSaveTelegramFilesaveRemoteMediasaveRemoteMediaOncesaveOkMediaResponsesaveMediaStreamwriteMediaStreamToFile
27 read
in handleControlUiAssistantMediaRequest
src/gateway/control-ui.ts:593
open
in resolveMediaBufferPath
src/media/store.ts:656
CWE-22: Path Traversal handleControlUiAssistantMediaRequestassertLocalMediaAllowedresolveInboundMediaReferenceresolveInboundMediaPathresolveMediaBufferPath
28 accept
in requestJsonlSocket
src/infra/jsonl-socket.ts:53
open
in beginSpeakerTurn
extensions/discord/src/voice/realtime.ts:634
CWE-22: Path Traversal requestJsonlSocketparseassertAllowedKeysjoinjoinUnlockedhandleSpeakingStartbeginSpeakerTurn
29 read
in transcodeToFeishuVoiceOpus
extensions/feishu/src/media.ts:969
open
in beginSpeakerTurn
extensions/discord/src/voice/realtime.ts:634
CWE-22: Path Traversal transcodeToFeishuVoiceOpuswithTempWorkspacejoinjoinUnlockedhandleSpeakingStartbeginSpeakerTurn
30 accept
in attachWebInboxToSocket
extensions/whatsapp/src/inbound/monitor.ts:789
open
in writeMediaStreamToFile
src/media/store.ts:403
CWE-22: Path Traversal attachWebInboxToSocketdownloadInboundMediasaveMediaStreamwriteMediaStreamToFile
31 read
in transcodeAudioBufferToOpus
src/media/audio-transcode.ts:98
open
in beginSpeakerTurn
extensions/discord/src/voice/realtime.ts:634
CWE-22: Path Traversal transcodeAudioBufferToOpuswithTempWorkspacejoinjoinUnlockedhandleSpeakingStartbeginSpeakerTurn
32 read
in register
extensions/voice-call/index.ts:511
open
in beginSpeakerTurn
extensions/discord/src/voice/realtime.ts:634
CWE-22: Path Traversal registerjoinjoinUnlockedhandleSpeakingStartbeginSpeakerTurn
33 accept
in handleCall
extensions/voice-call/src/webhook/realtime-handler.ts:861
open
in beginSpeakerTurn
extensions/discord/src/voice/realtime.ts:634
CWE-22: Path Traversal handleCallscheduleForcedAgentConsultrunForcedAgentConsultbuildForcedConsultSpeechPromptjoinjoinUnlockedhandleSpeakingStartbeginSpeakerTurn
34 read
in readTailLines
src/commands/channels/logs.ts:81
open
in beginSpeakerTurn
extensions/discord/src/voice/realtime.ts:634
CWE-22: Path Traversal readTailLinesstatassertLocalPathSafetyjoinjoinUnlockedhandleSpeakingStartbeginSpeakerTurn
35 getenv
in collectMacLaunchctlGatewayEnvOverrideWarning
src/commands/doctor-platform-notes.ts:128
open
in beginSpeakerTurn
extensions/discord/src/voice/realtime.ts:634
CWE-22: Path Traversal collectMacLaunchctlGatewayEnvOverrideWarningjoinjoinUnlockedhandleSpeakingStartbeginSpeakerTurn
36 read
in readScannableText
scripts/audit-seams.mjs:63
open
in beginSpeakerTurn
extensions/discord/src/voice/realtime.ts:634
CWE-22: Path Traversal readScannableTextstatassertLocalPathSafetyjoinjoinUnlockedhandleSpeakingStartbeginSpeakerTurn