# 42 byte weight, 32.000 lượt tải, và một cụm GPU đi đào thuê: chiến dịch Load/Mine trên Hugging Face

## Tóm tắt

Ngày 29/10/2026, **Pluto Security** công bố chiến dịch **Load/Mine**: **31 repository model độc hại trên 7 tài khoản Hugging Face**, tổng cộng **hơn 32.000 lượt tải**, cài cryptominer chiếm GPU của bất kỳ ai nạp model.

Kỹ thuật không phải một lỗ hổng. Nó là `trust_remote_code=True` — một cờ hợp lệ của thư viện Transformers, cho phép repo model kèm theo code Python riêng. Code đó chạy **ngay khi import, trước khi bất kỳ weight nào được nạp**. Repo flagship của chiến dịch có file `model.safetensors` nặng **42 byte và không chứa tensor nào**: toàn bộ giá trị nằm ở đoạn Python.

Hai chi tiết đáng chú ý hơn cả bản thân malware:

- Sau khi Hugging Face và ModelScope gỡ tài khoản, **19 repo mới xuất hiện trong vài ngày**.
- Một repo chứa script **thoát container ra host, nhắm thẳng vào GPUStack**, được đăng **8,5 giờ sau khi Pluto gửi email thông báo**. **Hành động ưu tiên:**
- **Rà soát mọi host chạy Xinference, GPUStack, vLLM hoặc bất kỳ nền tảng inference tự host nào** theo các chỉ dấu ở cuối bài — đặc biệt thư mục `/tmp/.cch`, tiến trình giả tên `[kworker/u20:1]`, và các dòng lạ trong `.bashrc` / `.profile` của root.
- **Coi** `trust_remote_code=True` **là một lệnh thực thi code tùy ý**, không phải một tùy chọn tương thích. Nếu pipeline của bạn đang bật cờ này mặc định, đó là lỗ hổng cần xử lý tuần này.

## `trust_remote_code=True`: không có CVE nào ở đây

Đây là phần cần hiểu kỹ, vì nó không phải bug.

Một repo model trên Hugging Face có thể khai báo trong `config.json` một mục `auto_map` trỏ tới một module Python nằm ngay trong repo. Khi người dùng gọi `from_pretrained(..., trust_remote_code=True)`, thư viện Transformers **import module đó bằng quyền của chính tiến trình đang chạy**.

Python chạy mọi thứ ở cấp module khi import. Nên nếu payload được đặt ở top-level, nó thực thi **trước khi weight được nạp, trước khi model được khởi tạo, trước khi bất cứ thứ gì liên quan tới machine learning xảy ra**.

Hệ quả thực tế: **kẻ tấn công không cần weight độc hại**. Repo flagship `MENXIANGYU/qwen2-tiny` có file `model.safetensors` **42 byte, rỗng tensor**. Nó chưa bao giờ là một model. Nó là một cái cớ để Python import một file.

Đây cũng là lý do mọi scanner đều trượt, sẽ nói ở phần sau.

## Payload: miner chạy từ bộ nhớ, giả tên kernel thread

Chuỗi payload của Load/Mine được xây để sống lâu trên máy chủ Linux có GPU.

**Miner:** binary tên `peakminer` (mã nguồn công khai trên GitHub), được nạp và chạy **trực tiếp từ bộ nhớ qua** `memfd_create`, có đường lui ghi xuống đĩa nếu cần. Tiến trình ngụy trang dưới tên `[kworker/u20:1]` — trông như một kernel worker thread thật, chỉ khác là command line thật vẫn mang worker ID.

Binary được nén UPX nhưng **marker đã bị sửa** để các công cụ unpack thông thường không xử lý được.

**Watchdog:** script `/tmp/.cch/svc.py` khởi động lại miner **mỗi 120 giây** nếu nó chết, và được gọi lại từ các file khởi động của shell — tức là chỉ cần một phiên đăng nhập là nó sống lại.

**Duy trì:**

```plaintext
Lan song 1:   cam SSH key (comment "qx-5090-op") vao 6 duong dan authorized_keys
              cron /etc/cron.d/.sync-helper
              miner cai vao /root/.xinference/cache
Lan song 2:   chuyen sang reverse shell ra ngoai (co the vuot NAT va firewall chieu vao)
              hook trong /root/.bashrc, /root/.profile, ~/.bashrc
```

**Dọn đối thủ:** miner diệt các tiến trình đào khác và gỡ đăng ký model của đối thủ — một dấu hiệu cho thấy nhóm này biết rõ rằng server GPU bị bỏ quên thường đã có sẵn một con miner khác.

## Vì sao Xinference và GPUStack bị kéo vào

Hai cái tên này không phải nạn nhân theo nghĩa có lỗ hổng. Chúng là **môi trường mục tiêu**.

**Xinference** (Xorbits Inference) là nền tảng mã nguồn mở để vận hành và tích hợp nhiều loại model AI — LLM, embedding, rerank, ảnh, audio, video — chạy on-premise hoặc trên cloud, và cho phép đăng ký model tùy chỉnh rồi biến thành API.

**GPUStack** là trình quản lý cụm GPU cho việc phục vụ model hiệu năng cao (vLLM, SGLang, TensorRT-LLM) và cấp phát instance GPU truy cập được qua SSH. Nó chạy trong Docker, quản lý nhiều cụm on-premise, Kubernetes và cloud, và hướng tới các đội muốn tự làm Model-as-a-Service.

Nói cách khác: đây chính xác là loại máy mà kẻ đào tiền ảo muốn có — **nhiều GPU, chạy liên tục, ít người nhìn vào**.

Load/Mine khai thác chúng theo hai cách khác nhau:

**1\. Xinference làm bảng tin trạng thái.** Thay vì dựng kênh C2 riêng cho việc báo cáo, payload **ghi biên lai đào vào chính local model registry của Xinference**, dưới dạng tên model mã hóa base32: `qwen2-tiny-<base32>`, `ezv-<base32>`, `hlrce-<host>-*`. Nhìn lướt qua danh sách model, chúng trông như các bản thử nghiệm.

**2\. GPUStack là đích của script thoát container.** Repo `MENXIANGYU/qa-whl-1021` chứa `e.sh`, chạy từ bên trong một container đặc quyền:

```plaintext
1. kich hoat cac LVM volume
2. mount cac dia ung vien cua host vao /mnt/qa_<pid>
3. tim root filesystem cua host, hoac thu muc /var/lib/gpustack
4. mo quyen dang nhap root cho ke tan cong tren host
```

Chuỗi output của script: `QA escape, PLANTED <device>` và `ESCAPE_OK=`.

Repo này được đăng **8,5 giờ sau khi Pluto gửi email thông báo**, và tại thời điểm báo cáo công bố **vẫn đang hoạt động**.

## Kinh tế của chiến dịch

Pluto truy được dòng tiền của làn sóng đầu: ví payout nhận khoảng **2.276 PRL qua 716 giao dịch**, Pluto ước tính khoảng **5.000 USD**, với worker đang hoạt động trên Kryptex và luckypool.

Các ví khác gắn với MoneroOcean, c3pool, herominers và hashvault. Tổng cộng Pluto liệt kê 7 ví, trong đó có một ví **decoy chưa từng được dùng**.

Một quan sát đáng chú ý: **một loạt worker tham gia pool trong vòng 90 giây** — mẫu hình phù hợp với một cụm GPU dùng chung bị chiếm, không phải nhiều máy lẻ bị nhiễm rải rác.

Con số 5.000 USD nghe nhỏ. Nhưng nó là doanh thu của kẻ tấn công, không phải thiệt hại của nạn nhân: chi phí điện, hao mòn, và quan trọng nhất là **năng lực GPU bị lấy mất của chính tổ chức sở hữu** — trong bối cảnh GPU đang là tài nguyên khan hiếm nhất của mọi đội AI — lớn hơn con số đó nhiều lần.

## Takedown không kết thúc được gì

Mốc thời gian của chiến dịch là phần đáng học nhất về mặt vận hành:

```plaintext
29/04/2026   Tai khoan dau tien (hhzz667) duoc tao, roi nam im nhieu thang
21/09-12/10  Lan song 1 duoc dang dan, tu backdoor SSH don gian den miner fileless
             Pluto bao cao cho Hugging Face va ModelScope
             Ca hai nen tang go tai khoan
+vai ngay    Lan song 2: 19 repo moi, loader da sua, chuyen sang reverse shell
+8,5 gio     Repo qa-whl-1021 (script thoat container) duoc dang, sau email thong bao
28/10/2026   Repo flagship qwen2-tiny dat 28.412 luot tai
29/10/2026   Pluto cong bo bao cao
```

Theo Red Hot Cyber, tại thời điểm đưa tin, **bản sao trên tài khoản** `htt0118` **vẫn còn truy cập được** dù `MENXIANGYU/qwen2-tiny` đã bị chặn.

## Vì sao không scanner nào bắt được

Không một repo nào của làn sóng 1 bị gắn cờ. Repo flagship của làn sóng 2 trả về **sạch** từ cả antivirus lẫn các scanner đối tác của Hugging Face.

Lý do không phải vì scanner kém, mà vì chúng đang nhìn sai chỗ: các công cụ này **kiểm chữ ký và định dạng file model** — tìm pickle độc hại, tìm weight bất thường, tìm hash đã biết. Chúng **không phân tích đoạn Python kèm theo làm gì**.

Trong Load/Mine, file model hoàn toàn vô hại (42 byte, rỗng). Toàn bộ hành vi nằm trong một file `.py` trông như code modeling bình thường. Theo AI Cybr, scanner của Protect AI và JFrog đều trả về kết quả sạch.

Đây là khoảng trống có tính cấu trúc: **hệ sinh thái model đang kiểm tra artifact, trong khi mối đe dọa nằm ở code đi kèm artifact.**

## SolanaCry: cùng một lỗ hổng tin cậy, đi đường khác

Cũng trong ngày 29/10/2026, **AIR Security** (Eliad Mualem, Dor Granat) công bố một chiến dịch khác mà mình đặt cạnh đây vì nó khai thác đúng cùng một điểm yếu, chỉ khác bề mặt.

Chuỗi tấn công:

```plaintext
1. Developer nho mot AI coding agent dung project Solana
2. Agent tim web va chon repo github.com/SolanaUpdateTools/solana-starter-kit
   (theo AIR, repo nay dung dau ket qua tim kiem cho truy van nay)
3. README chi co dung mot buoc cai dat: mot dong PowerShell iwr | iex
   -> tai payload va chay thang trong bo nho
4. Dropper ghi 14 file vao thu muc an duoi %LOCALAPPDATA%:
   13 component NetSupport Manager that, da ky hop le, va 1 file config cua ke tan cong
5. Them Run key "SecureModule", khoi dong RAT moi lan dang nhap
6. Xoa lich su chay va xoa chinh script
```

Payload không phải malware viết mới mà là **NetSupport Manager**, một phần mềm điều khiển từ xa thương mại hợp pháp, với binary được ký đầy đủ. Config của kẻ tấn công ẩn mọi thông báo cho người dùng và chấp nhận operator từ **bất kỳ IP nào**.

AIR liên hệ chiến dịch này với cụm NetSupport mà **eSentire theo dõi dưới tên EVALUSION**, dựa trên một giá trị cấu hình trùng nhau và mẫu lệnh cài đặt giống chiến dịch TradingView tháng 10/2025 — nghĩa là cùng một nhóm đã chuyển mục tiêu **từ trader sang developer**.

Điểm chung với Load/Mine không nằm ở kỹ thuật mà ở mô hình tin cậy: trong cả hai trường hợp, **một hệ thống tự động lấy code từ internet và chạy nó mà không có ai đọc code đó**. Transformers tin `auto_map`. AI agent tin README. Không bên nào có khâu con người ở giữa.

## Nhận định

**Đây không phải lỗ hổng, nên không có bản vá, và đó mới là vấn đề.** `trust_remote_code` tồn tại vì một lý do chính đáng: kiến trúc model mới ra đời nhanh hơn chu kỳ phát hành của Transformers, và không có cơ chế này thì hệ sinh thái sẽ nghẽn. Hugging Face có thể gỡ repo, nhưng không thể vá một tính năng mà cộng đồng cần. Phòng thủ phải nằm ở phía người dùng.

**Takedown gần như vô dụng khi chi phí tạo tài khoản bằng không.** Pluto báo cáo, hai nền tảng gỡ tài khoản, và vài ngày sau có 19 repo mới. Việc kẻ tấn công đăng script thoát container **sau khi đã biết mình bị phát hiện** cho thấy họ đánh giá rủi ro bị truy cứu gần như bằng không. Với mô hình này, chỉ số đáng theo dõi không phải "đã gỡ bao nhiêu repo" mà là "mất bao lâu để chúng quay lại".

**Server GPU là mục tiêu kinh tế trực tiếp, không còn chỉ là bàn đạp.** Trước đây một máy chủ bị chiếm có giá trị ở chỗ nó nằm trong mạng nội bộ. Giờ bản thân phần cứng đã là chiến lợi phẩm. Điều này thay đổi hồ sơ rủi ro của các cụm GPU nội bộ: chúng không cần chứa dữ liệu nhạy cảm nào vẫn là mục tiêu hạng nhất.

**File 42 byte là lời bình luận sắc nhất về tình trạng hiện tại của model scanning.** Cả một ngành công nghiệp đang quét định dạng model để tìm pickle độc hại, trong khi kẻ tấn công bỏ hẳn file model và chuyển toàn bộ payload sang một file `.py` nằm cạnh nó. Cho tới khi scanner phân tích hành vi của code đi kèm, kết quả "clean" trên một repo model chỉ có nghĩa là "file nhị phân không có gì lạ".

**Việc ghi trạng thái vào model registry của Xinference là một lựa chọn tinh tế.** Nó không tạo kết nối mạng bất thường nào, không ghi log ở đâu cả, và hòa vào đúng nơi mà một hệ thống inference vốn phải có nhiều entry rác. Đây là mẫu "sống nhờ hạ tầng của nạn nhân" áp dụng cho một lớp hạ tầng mới.

**Hai chiến dịch này là cùng một bài học ở hai tầng khác nhau.** Load/Mine khai thác việc thư viện ML chạy code của repo; SolanaCry khai thác việc AI agent chạy lệnh trong README của repo. Cả hai đều cho thấy chuỗi "tìm trên internet → tải về → chạy" đang được tự động hóa hoàn toàn trong môi trường phát triển AI, và khâu kiểm duyệt của con người đã biến mất mà không ai quyết định bỏ nó.

## Liên hệ Việt Nam

- **Cả hai báo cáo đều không nêu tên Việt Nam** trong danh sách nạn nhân. Pluto không công bố phân bố địa lý, và AIR cũng vậy. Nhưng đây là loại chiến dịch không chọn mục tiêu theo quốc gia — nó chọn theo việc máy có GPU hay không.
- **Số lượng đội AI nội bộ tại Việt Nam chạy Xinference, GPUStack, vLLM hoặc Ollama trên server GPU riêng đang tăng rất nhanh**, và phần lớn nằm trong mạng nội bộ, không có EDR, không có giám sát lưu lượng ra. Đây gần như là môi trường lý tưởng cho Load/Mine.
- `trust_remote_code=True` **được bật gần như theo phản xạ** trong các notebook và script nội bộ, vì không bật thì nhiều model không chạy. Rất ít đội coi dòng đó là một quyết định bảo mật.
- **GPU bị đào trộm thường bị hiểu nhầm thành vấn đề hiệu năng.** Triệu chứng là job train chậm bất thường, utilization cao khi không có ai chạy gì — những thứ mà đội AI sẽ đổ cho driver hoặc cho một đồng nghiệp quên tắt tiến trình, chứ không báo cho SOC.
- **AI coding agent đang được dùng rộng rãi trong các đội dev VN**, và SolanaCry cho thấy một repo giả đứng đầu kết quả tìm kiếm là đủ. Một dòng `iwr | iex` trong README sẽ được agent chạy mà không ai kịp nhìn.
- **NetSupport Manager là phần mềm hợp pháp và đã ký**, nên nhiều cấu hình EDR tại VN sẽ cho qua. Nếu tổ chức bạn không dùng NetSupport, hãy chặn nó theo tên file và hash chứ đừng dựa vào verdict của AV.

## Khuyến nghị

### Cho đội vận hành hạ tầng AI

- **Rà soát ngay các host chạy inference** theo danh sách IOC ở dưới: thư mục `/tmp/.cch`, `/tmp/.cchx`, `/tmp/.kitsd`, tiến trình `[kworker/u20:1]` hoặc `peakminer`, hook lạ trong `/root/.bashrc` và `/root/.profile`, cron `/etc/cron.d/.sync-helper`, và `authorized_keys` có key lạ.
- **Kiểm tra model registry của Xinference** tìm các entry dạng `qwen2-tiny-<chuỗi base32>`, `ezv-`, `hlrce-`, `hlcmd-`, `hlout-`. Đây là chỉ dấu rẻ và đặc hiệu.
- **Tắt** `trust_remote_code` **mặc định trong mọi pipeline**, và chỉ bật cho từng model cụ thể sau khi có người đọc file Python kèm theo. Nếu điều này bất khả thi về mặt vận hành, hãy chạy việc nạp model trong container không có quyền đặc quyền, không mount đĩa host, và không có đường ra internet.
- **Đừng chạy container inference ở chế độ privileged.** Script `e.sh` của chiến dịch này chỉ hoạt động được từ bên trong một container đặc quyền. Đây là biện pháp chặn đứt hẳn hướng tấn công đó.
- **Giám sát lưu lượng ra từ cụm GPU.** Kết nối tới các pool đào (Kryptex, luckypool, MoneroOcean, c3pool, herominers, hashvault) là tín hiệu nhiễu thấp. Nếu chặn được theo chính sách thì càng tốt.
- **Bật xác thực trên API của Xinference và GPUStack**, và đưa chúng ra khỏi vùng mạng mà mọi người đều với tới được. Một API inference không xác thực trong mạng nội bộ là một API công khai với bất kỳ ai đã vào được mạng.
- **Giám sát GPU utilization như một chỉ số bảo mật**, không chỉ là chỉ số vận hành. Mức sử dụng cao kéo dài ngoài giờ, không khớp với job nào, là chỉ dấu đáng điều tra.

### Cho đội phát triển dùng AI agent

- **Không cho agent chạy lệnh tải-và-thực-thi** (`iwr | iex`, `curl | bash`) mà không có người duyệt. Đây là quy tắc đáng đưa vào cấu hình của agent chứ không chỉ vào tài liệu.
- **Coi mọi nội dung agent lấy về từ internet là dữ liệu không tin cậy**, kể cả khi nó đứng đầu kết quả tìm kiếm. Thứ hạng tìm kiếm không phải là tín hiệu tin cậy, và SolanaCry cho thấy nó có thể bị thao túng.
- **Kiểm tra repo trước khi dùng** theo những dấu hiệu rẻ tiền: repo mới tạo, ít commit, không có lịch sử, hướng dẫn cài đặt chỉ có một dòng script từ một domain lạ.
- **Nếu nghi nhiễm SolanaCry**: tìm thư mục ẩn dưới `%LOCALAPPDATA%`, Run key `SecureModule`, tiến trình `client32.exe`, và kết nối tới `maxwintodaybtc.com:443`. Nếu trúng, cô lập máy, gỡ thư mục và Run key, rồi **xoay toàn bộ credential, token và khóa ví** mà máy đó chạm tới.

## IOC

> Trích từ phần Indicators trong báo cáo Pluto Security và báo cáo AIR Security. Đây là các nhóm dùng được ngay để hunt; danh sách đầy đủ nằm trong báo cáo gốc.

### Load/Mine — tài khoản

```plaintext
Lan song 2 (Hugging Face):
  MENXIANGYU    # 13 repo, bao gom qwen2-tiny, qwen2-mini-c4/c5, zz_ext, qa-whl-1021
  wjsbg         # eagle-tiny, qwen2-tiny-zh21, qwen2-final, zh-assets (host payload)
  htt0118       # qwen2-tiny, tao ngay 25/10
  soumikmahato  # qwen2-tiny-chat, nup sau 4 repo vo boc
  r1r13         # qwen-lora-text-v1
 
Lan song 1 (da bi go):
  hhzz667, dsxk4mr8tq        # Hugging Face
  wssb123e                   # ModelScope
 
Tai khoan lien doi (chung ky thuat, chua chung minh cung chu):
  MONIADF-2, antwoinhjro654, vaishupv, andrew3d, oifewuheu, KzuryHD
```

### Load/Mine — ví và pool đào

```plaintext
Vi:
  prl1p9s2a9gdy4n5yfuf5suhya2d2pyvaahmz3n3gzm3npyxkj79m7yyq9kgnrv   # payout lan song 1
  prl1pek8rh8yjck5q7596aph7ua7xnkqs8ur9mkfmz8w7xfzcdfcfx5vsx2f4lz   # soumikmahato
  prl1phz0aglq4hg2jpqxrqgvycw798ruzlxjztfty6pmt3yr6y2f8lw0s4uppg2   # antwoinhjro654
  prl1p0aaff83xc3cvs6f95jj9pwx2uskez9hmrjd2ap2p3mj0nmkl3hfqua63wf   # decoy, chua dung
  83sB24CNcALNWZJrWb7zEnY6ZAtneXwfKAWyedqocXrd9cgzrLDcSdEch9xpHu6ZuqUdAh8VEMA15Zy6W5xMfZfPG4whgZj   # Monero, lan song 1
  46i5xDQq56pCJW6vg1kpPwLxmLLNzFB8vHZk58twfKj7VRGZDucSHYY8TYSoZDW6PpTcMEP4UdjWrPhrQdDFNaUDVPekNcc   # Monero, MONIADF-2
 
Pool login dung chung lan song 2: krxXJ2PKQW.worker
 
Pool:
  prl-us.kryptex.network:8048 / prl-sg.kryptex.network:8048   (lan song 2, SSL)
  prl-us.kryptex.network:7048 / prl-eu.kryptex.network:7048
  pearl-hk.luckypool.io:3361, :3956                           (lan song 1)
  pearl-sg1.luckypool.io:3360
  de.pearl.herominers.com:1200
  pool.hashvault.pro:80, :443
  gulf.moneroocean.stream:10001
  mine.c3pool.com:80
  103.97.176.121:3361 / 178.33.123.26:3361, :3362
```

### Load/Mine — hạ tầng mạng

```plaintext
212.32.253.3      # reverse shell 443, 9443; stage 2 co gate tren 8898; collector 8895
38.55.133.49      # kitsd_v12.sh tren 8901; recon exfil va reverse shell 8901, 9001
8.137.187.63      # C2 lan song 1 (Alibaba Cloud): 80, 443, 50053, 50054
103.97.176.121    # g20_reclaim.py tren 8899; payload miner tren 8090
2.28.9.199:7000   # exfil thong tin GPU va metadata (r1r13)
173.249.209.96    # agent MONIADF-2 (8081), C2 hl (8000), tai XMRig (8001)
212.132.98.170    # host backdoor gsocket
49.12.44.127, 200.58.80.115    # mirror gs-netcat
 
hz2006.aihzcc.top
3.112.174.116.sslip.io                              # miner GPU + CUDA runtime (sysd-kit.tgz)
grows-stocks-vatican-flood.trycloudflare.com        # beacon trang thai (soumikmahato)
github.com/peakminer/peakminer/releases             # nguon miner
```

### Load/Mine — file, đường dẫn, tiến trình

```plaintext
/tmp/.cch/{sync,svc.py,o}         # miner, watchdog, log
/tmp/.cchx, /tmp/.kitsd           # thu muc tha them
/root/.xinference/cache           # noi cai miner lan song 1
/etc/cron.d/.sync-helper          # cron lan song 1
/tmp/lf_py.py, /tmp/ezv_proof.txt
/tmp/.qa_pwned, ~/qa_pwned        # marker nhiem lan song 1
/mnt/qa_<pid>                     # diem mount dia host cua qa-whl-1021
Hook trong /root/.bashrc, /root/.profile, ~/.bashrc
SSH key comment: qx-5090-op       # cam vao 6 duong dan authorized_keys
 
Tien trinh: [kworker/u20:1]   (ten gia kernel thread), peakminer
Entry trong registry Xinference: qwen2-tiny-<base32>, ezv-<base32>,
                                 hlrce-<host>-*, hlcmd-*, hlout-*
Chuoi output script thoat container: "QA escape, PLANTED <device>", "ESCAPE_OK="
```

### Load/Mine — hash SHA-256

```plaintext
88f4b95a1c3d0a0d9638dc6e69f5bbc9ce0e1b92d069a0e404f60fa5397ee020   syscore.bin (lan song 2, 40.625.780 byte)
587e3c3be3c75eb6586d69b25adb4c4208c1cf7d39157946da543dd823117adc   syscore.bin (lan song 1, 33,8 MB)
b0e1ae6d73d656b203514f498b59cbcf29f067edf6fbd3803a3de7d21960848d   sysx.bin (lan song 1, 7,9 MB)
414b3cf7a288eaa592b0f03d85c7a6960dbdb855fcb684478b9def9faa95c21d   modeling_evil2.py (lan song 2)
170ef5754bea51c3b05ae4b6c15c541ffa51d972bf8fe0bd3d1c3a19946bd6ac   modeling_evil6.py (htt0118)
2cd9328715bbffb6b090a58de17222c830d910f5ec8198e3fefb0fca2f3e0ef0   modeling_qtz.py (wjsbg/qwen2-final)
849ce59ffb2ae55e4131111acd8a511444475639ba18515509310414b1661964   e.sh (qa-whl-1021, thoat container)
6b1e531c9e799a6df1472acc143c6eaec6ea4dd22f997458ba519644d125197e   sysd-kit.tgz (soumikmahato)
0fc39482f05fb88c13ac9edc306e4cc838085e69d9faa458a19979ace143107a   modeling_hl.py (ho hl, 4 repo)
5dc4b927fb91442a66a2e02c1636f629d4042a03a5c1523cd841d6ece66e0beb   m2.bin (wjsbg/zh-assets)
 
Unpacked BuildID (syscore.bin lan song 2): c492732de98117b7b28ce0e410f5966e1232e9dc
```

### SolanaCry

```plaintext
github.com/SolanaUpdateTools/solana-starter-kit     # repo gia, tao 11/2025
github.com/TradingViewGit/developer-features        # repo cua chien dich lien quan
developer-update.app/update/indicator               # URL cai dat, domain dang ky 20/10/2025
maxwintodaybtc.com:443                              # C2
 
indicator.ps1
  SHA-256 41902d18fa2c285c0f4a6b39cf0f2eefbc7acbff33b6eb6fc88ba680a201d17d
 
%LOCALAPPDATA%\y2inwRnI6G\                          # thu muc an, 14 file
client32.exe, client32.ini                          # component NetSupport Manager
HKCU\Software\Microsoft\Windows\CurrentVersion\Run  # gia tri "SecureModule"
```

## Tài liệu tham khảo

- Pluto Security (Shaked Chen, Eitan Chassid, Yotam Perkal) — *Load/Mine: A Hugging Face Malware Campaign Returns After Takedown* (29/10/2026): <https://pluto.security/blog/hugging-face-malware-campaign-load-mine/>
- AIR Security (Eliad Mualem, Dor Granat) — *SolanaCry: agents searching the internet attacked by malware discovered in the wild* (29/10/2026): <https://www.air.security/blog-posts/solanacry>
- BleepingComputer — *Hugging Face malware campaign returns to hijack GPUs for crypto mining* (29/10/2026): <https://www.bleepingcomputer.com/news/security/hugging-face-malware-campaign-returns-to-hijack-gpus-for-crypto-mining/>
- Red Hot Cyber — *They tried to launch Qwen2, but set up a crypto farm on Hugging Face*: <https://www.redhotcyber.com/en/post/they-tried-to-launch-qwen2-but-set-up-a-crypto-farm-on-hugging-face/>
- AI Cybr — *Hugging Face Load/Mine: 31 Malicious Model Repositories, GPU Miners and Host Response*: <https://aicybr.com/blog/hugging-face-load-mine-malicious-models-trust-remote-code-response>
- Xinference — tài liệu chính thức: <https://inference.readthedocs.io/en/latest/>
- GPUStack — repository chính thức: <https://github.com/gpustack/gpustack>
