Submit #934950: ag-ui-protocol ag-ui v1.0 CWE-346info

Titleag-ui-protocol ag-ui v1.0 CWE-346
DescriptionThe client's event application layer trusts the server stream for information that originates from the user side: TEXT_MESSAGE_START carries any role, including user; the message is stored as-is (apply/default.ts:168-186) and returned to the server in the next request's messages (agent/agent.ts:385-399, prepareRunAgentInput). MESSAGES_SNAPSHOT replaces the entire history with entries in any role, including developer/system (apply/default.ts:626-679). Any RUN_FINISHED clears pendingInterrupts (apply/default.ts:924-927): a stream emitting RUN_FINISHED(interrupt) → RUN_STARTED → RUN_FINISHED(success) leaves no pending interrupt, so the next runAgent() proceeds without any resume — bypassing the guard at agent.ts:402-417.
Source⚠️ https://github.com/ag-ui-protocol/ag-ui/issues/2437
User meraklbz (UID 87053)
Submission08/18/2026 04:29 (29 days ago)
Moderation09/16/2026 07:36 (29 days later)
StatusAccepted
VulDB entry405446 [ag-ui-protocol ag-ui 1.0 Event Application Layer agent/agent.ts prepareRunAgentInput TEXT_MESSAGE_START origin validation]
Points20

Do you want to use VulDB in your project?

Use the official API to access entries easily!