> For AI agents: the site index is available at https://www.juniortree.com/llms.txt; this page is available as Markdown at https://www.juniortree.com/blog/alist.md.
> Alist文档被投毒，供应链攻击隐患曝光

## Page metadata

- **Published:** 2025-06-11
- **Updated:** 2025-06-11
- **Tags:** 特殊
- **Source URL:** https://www.juniortree.com/blog/alist

# Alist供应链攻击的发现

## 发现

在今天晚上的时候，看到 NS 上发了这样的一个帖子，原帖子在这里：[刚看到alist文档被投毒了](https://www.nodeseek.com/post-360819-1)

![](https://s3.juniortree.com/pic/2025/06/2a82b0aa3af5c9caa20e79d6c2d2ec4c.webp)

大概就是被发现了文件的分发链接变了，按道理来说，这种开源软件的二进制文件不应该由不信任的第三方进行二次分发，因为这样不安全，有可能存在篡改的风险

然后我就去看了下文档的 commit 记录：[Commits · AlistGo/docs · GitHub](https://github.com/AlistGo/docs/commits/main/)

可以看到都是这样无实际意义的提交记录，而且大多都是 [alist666 · GitHub](https://github.com/alist666) 和 [JoaHuang · GitHub](https://github.com/JoaHuang) 这两位的 commit

![](https://s3.juniortree.com/pic/2025/06/0c8fcb6f451af7e5d4a5ad4fe8e7e649.webp)

而且很奇怪的是，这两位的创建时间都非常早，基本上都只有几个月，而且仓库中没有别的任何 repo

![](https://s3.juniortree.com/pic/2025/06/cea4b8ef230447066a217803a6dd9454.webp)

![](https://s3.juniortree.com/pic/2025/06/b4919b489c23adeefe24b046a8ae7962.webp)

而且他们在 repo 的提交也非常大胆，直接在 commit 上注明了是广告，提交也不是通过 pr，是直接 commit，应该是有人给了他们直接的权限

其中的有几条 commit 记录很耐人寻味

## 分发文件的修改

### 对 docker 镜像的修改

[fix: 修改 docker路径 · AlistGo/docs@0685402 · GitHub](https://github.com/AlistGo/docs/commit/0685402ba0334041706abf2b96173c1f9f748b12)

![](https://s3.juniortree.com/pic/2025/06/32b68f2788b8db630743e2ee973e06ab.webp)

这里将原作者 `xhofe` 的 docker hub 仓库切换成了 `alist666` 的，我们不妨直接去看看这两个仓库的镜像有何区别

首先是原作者的：[xhofe/alist - Docker Image \| Docker Hub](https://hub.docker.com/r/xhofe/alist/)

之后是 Alist666 的：[hub.docker.com/r/alist666/alist/](https://hub.docker.com/r/alist666/alist/)

篡改者的仓库中只有一个镜像，而且还是 arm 的

![](https://s3.juniortree.com/pic/2025/06/3b96527de4e30f85a7350e7aac0bec86.webp)

我尝试将它下载到本地，它的 Layer 和原作者的镜像是一样的，还没来得及做进一步的逆向分析

![](https://s3.juniortree.com/pic/2025/06/e191ac125a4b98e97cd594f619824b2c.webp)

甚至在两周前，就有人提出过这样的问题，但是没有得到开发者的解决：[中文文档Docker镜像存在问题 · AlistGo/docs · Discussion #438 · GitHub](https://github.com/AlistGo/docs/discussions/438)

![](https://s3.juniortree.com/pic/2025/06/9d596227348510eb83b9cdf0d619e90f.webp)

### Desktop 版本的分发替换

[Update Desktop download Url · AlistGo/docs@ae7a77d · GitHub](https://github.com/AlistGo/docs/commit/ae7a77dd64e46b071e6abfc8618463b96853b3fc)

目前这个 oss 已经被删掉了，我也没办法通过校验 sha 来判断是否被修改，不过依然存在这种可能性，而且可能性很大

![image.png](https://s3.juniortree.com/pic/2025/06/5617432b6fb289c9b9831ddc0b54a0df.webp)

### 广告图链的域名发现

[Update Image · AlistGo/docs@27679c8 · GitHub](https://github.com/AlistGo/docs/commit/27679c85b2a5e116f01174ac7375caec1d287acb)

![](https://s3.juniortree.com/pic/2025/06/1422414c1f18a0dde17634383b2f2b22.webp)

使用的是 `hutool.cn` 这个域名，打开后台是一个 minio 的界面

![](https://s3.juniortree.com/pic/2025/06/d8f09e84d6094d5daca5aaeef3e17fb4.webp)

`hutool` 这个写 Java 的应该不陌生

![](https://s3.juniortree.com/pic/2025/06/779a2217269eaeba4916436a5d60c010.webp)

尝试将域名托管到 Cloudflare 可以看到其他的记录

![](https://s3.juniortree.com/pic/2025/06/cfcbda1c58c4267ce9965fceed693cae.webp)

解析到的 IP 都是国内的腾讯云，并且使用 whois 查询，也可以看到这个域名的所属是个人，出于隐私保护的原因，这里不贴出来了

## 总结与反思

感动啊，居然还做了中英文的不同适配

![](https://s3.juniortree.com/pic/2025/06/6421056d9119f5d40db08dc0ad4a8063.webp)

![](https://s3.juniortree.com/pic/2025/06/89335275764b6767f039040ab275f3d1.webp)

目前作者处在跑路状态，开发者集体静音，没有任何响应

值得思考的是，JoaHuang 和 alist666 对开源仓库的破坏，在很早就进行了，为什么直到现在才被发现？甚至于 docker 和 desktop 的修改，社区的响应也非常缓慢

![](https://s3.juniortree.com/pic/2025/06/d2ddbb74422f28f82ae217b52eea4d6f.webp)
