You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
Chat → Workflow 全链路问题汇总
基线与口径
feature/integrate@55001e07a。confirmed、OPEN等状态沿用原报告;Audit Full 和旧F-*未逐项提供新版状态字段,本文分别标为“最终报告收录”和“旧报告登记”。结论摘要
当前
/api/chat链路不只是“接口文档不完整”。入口层存在 standalone 匿名暴露、JWT audience fail-open、跨 scope run 查询与 fork;工具层存在审批旁路、默认远程执行、高影响 NyxID mutation 免审批、宿主级 LLM 凭据跨租户读写和 artifact owner 绕过;Workflow 控制面还可经 generic schedule 向任意 Actor 持久注入事件,同 scope 用户也能横向控制其他 member 的 run。可靠性方面,draft-run、fork/materialization、projection handoff 和 dedup 缺口会让 run 永久停住、不可见或重复执行。应先封闭身份与能力边界,再恢复 durable execution/observation,最后统一 authoring、SDK 与文档。Code Audit 补充的组合攻击链
A.
/api/chat接入、鉴权与协议H-04、SEC-004Program.cs:20,45;ChatEndpoints.cs:31-45,1150,1173;ChatRunRequestNormalizer.cs:221H-05、SEC-002、SEC-003ChatQueryEndpoints.cs:15,36,227;ChatEndpoints.cs:689;WorkflowForkRunCommandTargetResolver.cs:48,72,244SEC-006、CB-SEC-002、M-01AevatarAuthenticationHostExtensions.cs:70,143,346;appsettings.json:3;docker-compose.mainnet-cluster.yml:54,101,148/api/chat。 文档给出的 Host、5100 端口和无认证 curl 与实现不符,结果是连接失败或 401/403。DOC-001MainnetHostBuilderExtensions.cs:89,493-518;ChatEndpoints.cs:70-75,1026-1048DOC-002、DOC-010MemoryStream并在结尾再次复制;公开回调在验签前整包缓冲。SEC-005、M-04、M-11、DEBT-020ChatWebSocketProtocol.cs:25,31,48,57;WorkflowWebhookIngressEndpoints.cs:180-184;WorkflowExternalApprovalCallbackEndpoints.cs:662-666B. Chat 执行、工具与数据边界
H-01LlmRunCore.cs:336,355-356;ResponsesSafeToolExecutor.cs:8-17ssh_exec加入 workspace 工具集。 提示注入或工具选择偏差可落到远程 shell。H-02MainnetHostBuilderExtensions.cs:328-332,374-399;NyxIdSshExecTool.cs:43,49,78SEC-013IAgentTool.cs:33;ToolApprovalMiddleware.cs:53;NyxIdApprovalsTool.cs:16,58;NyxIdServicesTool.cs:81ApiKey。SEC-010SettingsController.cs:20,24;FileAevatarSettingsStore.cs:42,68,85,101,142,580;SettingsService.cs:135,161DEBT-028MEAILLMProvider.cs:177-190DEBT-029、DEBT-033WebSearchTool.cs:51-66;WebApiClient.cs:176-180;StreamingToolExecutor.cs:243-280SEC-012WorkflowDocumentExtractToolSource.cs:54,313,428;WorkflowSpreadsheetExtractToolSource.cs:43,202;FileSystemFileArtifactPort.cs:287,290M-05、DEBT-024、DOC-005EventEnvelopeToWorkflowRunEventMapper.cs:31-53,83-97;ScopeServiceEndpoints.cs:2143-2160,2260-2268C. 用 Chat 创建、执行和管理 Workflow
StepCompletedEvent改变量与分支,并持续重复投递。SEC-001ScheduledDispatchEndpoints.cs:442,750,835;WorkflowRunGAgent.cs:1193,2622;WorkflowExecutionKernel.cs:317,377,488Task.Run。 持久化Started后进程退出会让 Chat 永远收不到终态回复;重复 start 又被忽略。F-002、ARCH-006、DEBT-014ChannelWorkflowDraftRunGAgent.cs:80-119;ChannelWorkflowDraftRunInteractionPort.cs:91-116DEBT-017、DEBT-018、DEBT-019、CB-LIF-001WorkflowRunForkCoordinator.cs:32-81;WorkflowRunCommandTarget.cs:306-331;WorkflowRunFinalizeEmitter.cs:55-81H-09WorkflowParser.cs:24,110,204;WorkflowValidator.cs:576-585memberId、workflowId、publishedServiceId被混用。 Chat tool、HTTP、Studio 可能调用错误 service、查询错误 runs 或编辑错误 draft。F-004、ARCH-009、DEBT-022、M-09DefaultMemberPublishedServiceResolver.cs:15-23;ExecutionService.cs:93,108-113;studio/index.tsx:842-897SEC-014ScopeServiceEndpoints.cs:64,75,85,88,92,829,832,1320,1442;AevatarMemberAccessGuard.cs:123,133/studio与 canonical editor 又各自保存、发布、绑定和观察。F-006、ARCH-010、DEBT-046ScopeServiceEndpoints.cs:908,1904-1972;AevatarInvocationDispatcher.cs:328-354;useTeamMemberWorkflowStudio.ts:1682-1733,2395-2453JsonElement。 Chat/Workflow 客户端只能依赖运行时属性名判断,契约漂移无法在编译期发现。DEBT-021IAevatarWorkflowClient.cs:24-37;AevatarWorkflowClient.cs:138,253D. 会让 Workflow 管理结果不可信的底层根因
ARCH-001、DATA-001、DEBT-001、H-07ARCH-002、DATA-005、ARCH-003、DATA-004ARCH-004、DATA-002ARCH-005、DATA-006E. 测试、整改与验收
TEST-001的主流程只断言202 accepted;TEST-004没有浏览器登录 → workflow editor → publish → run → SSE → read model 的真实 E2E;M-15记录当前全量后端和 Console 基线失败。m-alpha/wf-alpha/svc-alpha,从带正确 audience、scope 和 member authority 的请求调用/api/chat,创建并发布 Workflow,消费真实 stream,等待 committed terminal state 与 read model 同步;覆盖进程重启、重复投递、跨 scope query/fork/artifact、同 scope member 横向访问、schedule raw-envelope 注入、超限输入、tool approval 拒绝和 secret 不回显。证据边界与未覆盖项
本文没有重新读取或修改源仓库,也没有执行 PoC、生产连接、数据库写入或外部状态变更。Code Audit 已完成 deep 静态审计,但仍有 109/289 个 HTTP endpoint/action 未逐项验证;模型是否服从间接 prompt、生产 issuer 的 audience 清单、外部代理限流和真实多节点故障恢复均未动态验证。高风险路径主要来自完整静态调用链与既有 build/test 结果,发生率、容量阈值和生产补偿能力尚未量化。
All reactions