Skip to content

从v0.41.2版本开始会报毒 #1070

Open

Description

@hsdbql
Avira TR/Hijacker.Gen
F-Prot W32/Felix:EX:007!Eldorado
GDATA Win32:Evo-gen
Rising Stealer.Agent!8.C2 (CLOUD)
Kaspersky Trojan-Spy.Win32.Stealer.fvxz

建议检查下最近的提交,看看是不是有人投毒了?
如果是误报,如果能够消除当然更好🥳

Activity

  1. xintaofei commented on Oct 31, 2026

    @xintaofei
    Collaborator

    @hsdbql 你好!感谢反馈,也谢谢你提醒我们检查有没有被投毒 🙏

    我们把 v0.41.2 从源码、构建过程到发布出来的安装包都查了一遍。先说结论:没有发现被篡改的迹象,这次也没有改代码。GitHub Releases 上的 v0.41.2 安装包,就是 CI 用打了 tag 的源码构建、加上自动更新签名后上传的那一份。你看到的检出我们也没能复现。从目前的证据看更像是杀毒软件的误报,但在知道你扫描的是哪个文件、在哪里扫、什么时候扫的之前,我们还没法确认。

    概要

    • §1 源码和依赖:v0.41.1 到 v0.41.2 之间没有发现可疑改动。
    • §2 构建和发布:两次构建用的 Action、Rust 和 NSIS 版本一致,安装包的自动更新签名有效。
    • §3 公开扫描记录:安装包发布后几小时内就有人扫过,结果都是 0/13,其中包括卡巴斯基和 G DATA。
    • §4 可能被误报的原因。
    • §5 麻烦补充的信息。

    1. 源码和依赖

    • v0.41.1 到 v0.41.2 共 14 个提交(对比),都由维护者提交。后端(Rust)部分只更新了 CodeBuddy、Kimi Code、ZCode、Command Code 四个 agent 的推荐版本号,并修了两个问题:Kimi Code 计划模式下第一次调用工具就中断,以及 CodeBuddy 点停止后紧接着发出的消息会丢。其余主要是聊天界面的改动,另有测试、构建配置里的注释和版本号更新。
    • Rust 依赖锁文件(Cargo.lock)只改了 codeg 自己的版本号;前端依赖锁文件(pnpm-lock.yaml)和 CI 工作流都没有改。

    2. 构建和发布

    • v0.41.1 和 v0.41.2 的发布构建(v0.41.1、v0.41.2)里,各个 GitHub Action 解析到的是同一批提交,Rust 都是 1.99.1,NSIS 打包工具和它的插件也是同一版本。不同之处是 x64 构建用的 GitHub 构建机镜像换成了例行更新后的版本。Windows 的几个构建都没有命中缓存,是从头构建的,前端依赖用 --frozen-lockfile 严格按锁文件安装。
    • Windows 安装包是 GitHub Actions 在构建过程中直接上传到 Release 的,附件的上传记录与 CI 构建日志一致。
    • 每个安装包旁边都有一个自动更新用的签名文件(.sig),它和 Windows 的 Authenticode 代码签名是两回事。我们用 codeg 内置的公钥验证了 v0.41.1、v0.41.2、v0.41.3 的 x64 和 arm64 安装包,签名都有效,签名时间也都落在对应构建的运行时间内。通过应用内更新安装时,codeg 也会先用这把公钥校验签名,校验不过就不会安装。
    • 我们还解包对比了 v0.41.1 和 v0.41.2 的 x64 安装包:各个 exe 导入的系统函数完全一样,安装器的插件 DLL 逐字节相同。

    3. 公开扫描记录

    在 Jotti 这个公开的多引擎扫描服务上,v0.39.0、v0.40.0、v0.41.1、v0.41.2、v0.41.3 的 x64 安装包,以及 v0.41.1 到 v0.41.3 的 arm64 安装包,都在发布后几小时内被扫描过,结果都是 0/13。这 13 个引擎里有卡巴斯基和 G DATA,比如:

    • v0.41.2 x64 安装包:扫描结果(10 月 29 日扫描,卡巴斯基和 G DATA 用的都是当天的特征库)
    • v0.41.3 x64 安装包:扫描结果(10 月 30 日扫描,比这个 issue 早约 16 小时)

    需要说明几点:

    • 你列出的 Avira、F-Prot、Rising 不在这 13 个引擎里,这三家我们查不到。
    • 这些都是发布当时的结果。杀毒软件的特征库每天都在更新,之后有没有变化,要看你那边的扫描结果。
    • Jotti 用的是这些厂商的 Linux 版产品,它的说明里也提到,结果偶尔会和其他平台上的同一款杀毒软件不一样。

    4. 可能被误报的原因

    • codeg 的 Windows 安装包和程序目前都没有 Authenticode 代码签名。没有签名、刚发布不久、下载量还少的文件,在一些杀毒软件的云端信誉系统里更容易被判为可疑。
    • codeg 桌面版有 computer use(截取并操作你共享给 agent 的窗口)、把文件复制到剪贴板、把 GitHub 等账号的令牌存进 Windows 凭据管理器这类功能,所以程序里会用到截屏、模拟键盘鼠标输入、剪贴板,以及读取 codeg 自己保存的令牌这些系统接口。这类组合有可能被启发式引擎当成窃密或间谍软件的特征,不过目前没有证据能确定是哪一项触发了检出。你列出的检出名里,.Gen、Evo-gen、!Eldorado、(CLOUD) 这类写法通常表示通用规则、启发式或云端判定,但单看检出名判断不了是不是误报。
    • 这些功能在 v0.41.1 里就已经有了,两版各个 exe 导入的系统函数也相同,所以「从 v0.41.2 开始」并不是因为新增了这类功能。不过每次发布的程序内容都会变化,启发式或云端信誉的结果也可能随之不同,这一点只看导入表排除不了。
    • 另外,从导入的系统函数看,v0.41.3 的 codeg.exe 比 v0.41.2 多了两个,用于粘贴文件时读取剪贴板里的文件列表;其他几个 exe 的导入没有变化。

    5. 麻烦补充的信息

    如果方便,请回复下面几项,我们好继续查:

    1. 被报毒的是哪个文件,最好给完整路径(路径里的用户名等个人信息可以打码,保留文件名和目录结构就行):是安装包本身、安装目录里的某个 exe,还是别的位置的文件?

      如果文件在 npm 的全局包目录里,那多半是第三方 agent 或你自己用 npm 装的包,而不是 codeg 本身。codeg 安装 CodeBuddy、Kimi Code、ZCode(装的是它的 ACP 适配器)、Command Code 这类 agent 时用的是 npm install -g,会装到当前 npm 配置的全局目录:Windows 上默认一般是 %APPDATA%\npm,包本身在其下的 node_modules 里,可以用 npm.cmd prefix -g 和 npm.cmd root -g 查看;如果安装时 npm 报了权限错误(EACCES),codeg 会改装到 %USERPROFILE%\.codeg\npm-global。v0.41.2 正好更新了这四个 agent 的推荐版本,如果你在 v0.41.2 里安装或升级过它们,新版本就装在这些位置。

    2. 这个文件的 SHA-256。可以在 PowerShell 里运行:

      Get-FileHash -LiteralPath 'C:\完整路径\文件名.exe' -Algorithm SHA256

      再和下面表里同一版本、同一文件的值对照:安装目录里的 exe 要和第二张表比,不能和安装包的值比;服务器版 zip 里的程序和桌面版也不是同一份文件。GitHub Release 页面里上传的各个附件也标有 sha256,那是附件本身的值,不是安装包里各个 exe 的值。如果仍然对不上,请把文件名、哈希和下载来源发给我们核对;也可以从对应版本的 Release 重新下载同一个文件再比较。

    3. 扫描结果的页面链接和扫描时间。如果是本机的杀毒软件拦截的,请告诉我们是哪款软件、什么版本,以及提示里的检出名。

    官方文件的 SHA-256

    安装包:

    文件 SHA-256
    codeg_0.41.2_x64-setup.exe eb89e2ec536468c54dd24b03e7ad9080e12521c0cb97681f8fe6f22e7b927802
    codeg_0.41.2_arm64-setup.exe 4710ad479b300afacf5b6e754de6b4eeac3170570ab23b00190339f10d087f03
    codeg_0.41.3_x64-setup.exe 1ce469a7cb3f786559a34c0d6898e298c3e39351a143b422fb56e1875374934e
    codeg_0.41.3_arm64-setup.exe c1a4fa8d968be627c53a0d5e099f7481ebfaadf3c7fcb55dfad3d8f58a46d62e

    x64 安装包装到安装目录里的程序(arm64 版和服务器版的文件,可以把哈希发给我们核对):

    版本 文件 SHA-256
    0.41.2 codeg.exe 6b9f6bd93ba98e3298139d5ea1ab6d3cc28b5d37fc3c08a1a06eee275bbf5520
    0.41.2 codeg-cli.exe 6705a371fb7220e5a49eec5a8f675686710e8590c9ae835b63ec2c2dda63992e
    0.41.2 codeg-mcp.exe 63214646211ffdd0368bd17dfd9361e9b080f379996088f9af149f48874cd9c2
    0.41.2 codeg-computer-helper.exe 278baeadf346321d478aa6c88a2babfff5b31af2aac83e038c8d6fada6a6cbcc
    0.41.3 codeg.exe 39b9a4c94746bd178613022b23094f5e6cfbbcb2ca76465af9b2b99e0dc71ef8
    0.41.3 codeg-cli.exe 116ace9617914d8f39e13845b0018523d218f7f1c02df6c983fa00283c5c6c36
    0.41.3 codeg-mcp.exe d49d45a9a279865a181d86091280338e1b6773d4a8a8d9aa7c6c09d5036eb82d
    0.41.3 codeg-computer-helper.exe e5f127835aa9db3310c987acbebcbaa6f0ce071c9b0170b93045065b11448310

    如果你那边的情况和上面对不上,欢迎直接指出,我们接着查 🙂

  2. hsdbql commented on Oct 31, 2026

    @hsdbql
    Author

    https://www.virscan.org/report/1ce469a7cb3f786559a34c0d6898e298c3e39351a143b422fb56e1875374934e
    https://www.virustotal.com/gui/file/1ce469a7cb3f786559a34c0d6898e298c3e39351a143b422fb56e1875374934e

    名称: codeg_0.41.3_x64-setup.exe
    大小: 67308461 字节 : 64 MiB
    SHA256: 1ce469a7cb3f786559a34c0d6898e298c3e39351a143b422fb56e1875374934e

    我使用的是Avira小红伞,安装文件是从releases下载的。
    codeg_0.41.3_x64-setup.exe才刚下载完就会被直接删掉。0.41.2版本是安装完成后codeg.exe被删。

    不过报毒的比例确实不高,误判的可能性不小。如果能设法做到免杀,那就更好了🌹

  3. AmberKod commented on Nov 2, 2026

    @AmberKod

    我这也发现这个报毒了,还强行删除了我已安装的codeg。

    Image 希望关注下
  4. YY-KK-YY commented on Nov 3, 2026

    @YY-KK-YY

    卡巴斯基报特洛伊木马

  5. fevathtw commented on Nov 5, 2026

    @fevathtw

    卡巴斯基报毒,从0.41.2开始,文件是 codeg.exe。用的是 codeg 自己的升级渠道下载的文件。
    事件: 检测到恶意对象
    用户类型: 发起者
    组件: 恶意软件扫描
    结果: 检测到
    结果说明: 检测到
    类型: 木马
    名称: Trojan-Spy.Win32.Stealer.fwdj
    精确度: 确切
    威胁级别: 高
    对象类型: 文件
    对象名称: codeg.exe
    对象路径: C:\Users\XXXX\AppData\Local\Temp\codeg-0.42.0-updater-jn1FuS\codeg-0.42.0-installer
    对象的 SHA256: F5725D7EF462150C47F29CE61C765A4AA1D1C36B968C392F1787D183200CA3A6
    对象的 MD5: 964BD3118B5038CB7470B54AAB069FE2
    原因: 自动分析
    数据库发布日期: 今天,2026/11/5 上午4:51:00

  6. fevathtw commented on Nov 5, 2026

    @fevathtw

    微步的云沙箱也会检测出来。

    Image
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions