CodexQA

行业与实践研究与基准测试

五项历史 CVE 进了会话扫描:阿里云用 Qoder 看安全反馈什么时候到

CodexQA 团队阅读约 4 分钟

五条已修复的公开漏洞被还原成只谈功能的需求。扫描在会话里指出数据流,Qdrant 修完再扫不再报同类风险。正文没有检出率和误报数。

本文目录

五项历史 CVE 进了会话扫描:阿里云用 Qoder 看安全反馈什么时候到

阿里云社区 2026 年 10 月 14 日的原文《Five Vulnerabilities Slipped Past Human Engineers. We Asked Qoder to Rewrite the Code》。Qoder Security 是嵌在 Qoder Agent 会话里的代码安全检查,手动入口是 /security-scan。实验不是再报一次 CVE,而是把五条已经公开、已经修好的历史漏洞还原成「只要功能、不提安全」的需求,看会话里的扫描能不能指出人当时没看出来的那条数据流。

五条需求来自五个已修复的公开问题

五条都是正当功能,对应五个开源项目里后来被编号的漏洞。引入时没有人打算写危险代码,实现通过了评审、合并、发布,问题事后才冒出来。

作者把需求重写成提示,让 Qoder Agent 在指定的历史版本上实现。提示只描述怎么做功能,不提安全。写完再跑 /security-scan。五个场景:

需求项目编号
支持一种新的数据格式OpenSearch RubyCVE-2022-31115
从 URL 导入封面图KavitaCVE-2022-2756
上传文件并恢复数据备份QdrantCVE-2024-2221
给数据库操作加便捷方法Flight PHPCVE-2026-42550
给音频处理命令加自定义参数discordrbCVE-2023-28102

边界分别是数据解析、网络访问、文件系统、数据库和系统命令。正文展开了两条,另外三条只给了扫描指出的那一层。

两条展开:文件名走过整条链路,参数串进了外壳

Qdrant 是很多应用用来存向量的数据库。需求是加一个快照上传端点:接受上传的备份文件,存到指定目录,再走已有流程恢复。其中一条很自然:如果上传里带了文件名,保存时就用这个文件名。

Agent 按项目原有风格改了上传端点。扫描把文件名从上传请求、拼路径,一直跟到写文件,中间穿过好几层函数。只看其中一层,每一层都像在做自己的事。风险要整条链连起来才看得见。报告给出的修法是规范化并校验文件名,再确认最终路径仍在快照目录里。同一会话里让 Agent 照做。项目原有测试仍然通过。再扫一次,这条路径上同类风险不再出现。

discordrb 是 Ruby 社区里常用的 Discord 机器人框架,语音处理会调用 FFmpeg。需求是让调用方传一串额外参数,方便裁剪和滤镜。改动只有几行。扫描发现这串字被拼进交给系统外壳的命令。修法是把参数当成参数列表里的独立元素,而不是拼成一整串交给外壳解释。功能还在,边界被收住。

另外三条的扫描结论,原文是这样写的。OpenSearch Ruby:要客户端接受 YAML 响应,服务端返回的数据进了一个过宽的解析接口,这种接口除了读数据还可能在程序里触发行为。Kavita:从「端点收到 URL」跟到「服务器去下载」,指向本机或内网的地址没有被挡住。Flight PHP:写入的值用了参数绑定,表名和列名却直接拼进 SQL,而这两样不能靠参数绑定挡住。

实验要说明的是反馈时机,不是「AI 更不安全」

五条漏洞最初都是人写的,有同事评审,还是漏了。原文把这一点写在前面:不能读成「AI 写的代码更不安全」。人写会有这些风险,Agent 写也还有。变的是代码量,以及安全反馈什么时候到。

如果报告要等到提交之后、发布之前,作者已经换了上下文,还得从一堆告警里挑真问题。会话里的反馈把发现、看懂、修改、再验证放在同一次连续操作里。Qoder Security 因此做进 Agent 编码,而不是单独一道发布前的门。

复现材料是公开的:项目开源,版本写明,提示给全。走一遍大约每个场景半小时。指南在 qoder.com/blog/qoder-case-security。能力先出现在 Qoder Desktop 和 Qoder CLI,设置里可以打开,也可以随时手动 /security-scan。

这些叙述不能被读成什么

正文没有给出五局里的检出率、误报数或扫描耗时,不能写成「5/5」或「零误报」。另外三条没有像 Qdrant 那样写「再扫一次不再报告」。测试通过只出现在 Qdrant 那一次修复之后,不能套到另外四条。

文末限定写得很死。场景来自已经公开、已经修好的历史问题,用来看编码时能不能发现同类风险,不表示 Qoder 复现或重新发现了对应的 CVE。提到开源项目和编号只是说明场景来源,不是合作或背书。要在本地或经过授权的隔离环境里跑。扫描结果会随产品版本、项目状态和会话上下文变化。

没有更大的样本,没有和人工评审、传统静态扫描的对照表,也没有线上拦截率。五个历史版本上的一次重写,不能外推到所有仓库或所有 CVE 类型。

出处:阿里云社区,Five Vulnerabilities Slipped Past Human Engineers. We Asked Qoder to Rewrite the Code,2026-10-14,https://www.alibabacloud.com/blog/five-vulnerabilities-slipped-past-human-engineers--we-asked-qoder-to-rewrite-the-code-_603636

觉得有用,转给同事

微信扫码

用微信扫一扫,在手机上打开后即可转发。

用 RSS 订阅

提交勘误