#717·devika

[错误] AgentStateModel 中未验证的 JSON 序列化允许伪造状态和评估中毒

作者: QiuYucheng2003创建于 2026年6月19日更新于 2026年6月19日

描述漏洞 在 src/state.py 中, AgentStateModel 将代理的状态存储在 state_stack_json 字符串字段中,但没有强制执行严格的模式验证。 update_latest_state 和 add_to_current_state 方法直接接受一个字典,并在提交到 SQLite 数据库之前使用 json.dumps() 进行序列化。 由于没有结构验证(例如通过 Pydantic 或严格的 ORM 字段),具有高能力或恶意的代理可以输出深度嵌套、变异的 JSON,其中包含未经授权的键值对(例如伪造的验证标志或评估指标,如 {"task_verified": true})。 这些伪造的指标被盲目保存到数据库中,并在反序列化(使用 json.loads())时被视为合法的系统指标,从而允许代理在评估结果或系统状态中默默地进行操作。

内容来源: stitionai/devika