Phân Tích Vụ Tấn Công Chuỗi Cung Ứng NPM Axios ngày 31/03/2026

Phân Tích Vụ Tấn Công Chuỗi Cung Ứng NPM Axios 31/03/2026

Tadu Cloud, chúng tôi luôn theo dõi sát sao những diễn biến về an ninh mạng, đặc biệt là các mối đe dọa trực tiếp đến môi trường phát triển. Vụ việc tấn công chuỗi cung ứng Axios NPM vào ngày 31 tháng 3 năm 2026 là một lời cảnh tỉnh đanh thép về sự mong manh của hạ tầng phần mềm mà chúng ta đang xây dựng. Một thư viện JavaScript HTTP client phổ biến hàng đầu, với hơn 83 triệu lượt tải hàng tuần, đã bị lợi dụng để triển khai một Remote Access Trojan (RAT) tinh vi, đánh cắp thông tin nhạy cảm từ các máy tính của nhà phát triển. Đây không chỉ là một sự cố mà là một bài học xương máu về quản lý dependency và bảo mật.

Vào lúc 00:21 UTC ngày 31 tháng 3 năm 2026, một tác nhân đe dọa đã công bố phiên bản Axios 1.14.1 thông qua một tài khoản maintainer bị chiếm đoạt. Gói này trông hoàn toàn giống với phiên bản hợp lệ, nhưng một thay đổi nhỏ trong package.json đã đưa vào một dependency độc hại có tên plain-crypto-js. Dependency này, thông qua một hook postinstall, đã triển khai một mã độc RAT lên mọi máy tính chạy npm install. Các phiên bản độc hại (1.14.1 và 0.30.4) này tồn tại trên npm khoảng hai đến ba giờ trước khi bị gỡ bỏ. Hai đến ba giờ, với 83 triệu lượt tải hàng tuần, đủ để gây ra thiệt hại nghiêm trọng.

Diễn Biến Của Vụ Tấn Công Chuỗi Cung Ứng Axios

Dòng thời gian chính xác của cuộc tấn công

Tác nhân đã thực hiện chiến dịch này với độ chính xác cao trong một cửa sổ 18 giờ:

  • 30 tháng 3, 05:57 UTC: Một gói mồi nhử sạch plain-crypto-js@4.2.0 được công bố lên npm. Việc phát hành một phiên bản “sạch” trước đó tạo ra lịch sử ngắn cho gói trên registry, khiến nó trông ít đáng ngờ hơn.
  • 30 tháng 3, 23:59 UTC: Phiên bản độc hại plain-crypto-js@4.2.1 được công bố, bổ sung hook postinstall chứa dropper.
  • 31 tháng 3, 00:21 UTC: axios@1.14.1 được phát hành sử dụng tài khoản jasonsaayman đã bị chiếm đoạt.
  • 31 tháng 3, 01:00 UTC: axios@0.30.4 tiếp theo 39 phút sau, nhắm mục tiêu vào các dự án đang sử dụng nhánh 0.x.
  • 31 tháng 3, ~03:15 UTC: npm gỡ bỏ cả hai phiên bản Axios sau khi có báo cáo từ cộng đồng.
  • 31 tháng 3, 04:26 UTC: npm công bố một stub giữ chỗ bảo mật cho plain-crypto-js để ngăn chặn việc tái phát hành.

Tài khoản bị xâm nhập như thế nào?

  • Kẻ tấn công đã chiếm quyền điều khiển tài khoản npm jasonsaayman, maintainer chính của Axios. Chúng đã thay đổi email đăng ký thành ifstap@proton.me. Bằng chứng quan trọng cho thấy:
  • Các bản phát hành Axios hợp lệ sử dụng GitHub Actions với cơ chế OIDC Trusted Publisher của npm. Các phiên bản độc hại hoàn toàn thiếu liên kết OIDC.
  • Không có trường gitHead xuất hiện trong các bản phát hành bị xâm phạm, có nghĩa là không có commit GitHub tương ứng nào tồn tại.
  • Kẻ tấn công đã sử dụng các mã truy cập npm dài hạn bị đánh cắp để publish thủ công thay vì thông qua CI/CD.
  • Sự khác biệt này rất quan trọng. Nếu tổ chức của bạn publish các gói npm, việc thiếu liên kết OIDC và bằng chứng nguồn gốc CI/CD trên một bản phát hành là một dấu hiệu đáng ngờ cần được tự động kiểm tra.

Kỹ thuật chèn dependency

  • Điểm làm cho cuộc tấn công này tinh vi là ở đây. Kẻ tấn công không sửa đổi mã nguồn Axios. Chúng chỉ thay đổi một dòng trong package.json để thêm plain-crypto-js@^4.2.1 làm dependency runtime. Gói này không bao giờ được import ở bất kỳ đâu trong codebase của Axios. Nó chỉ tồn tại để kích hoạt hook postinstall của nó trong quá trình npm install.
  • Phân tích binary xác nhận độ chính xác cho thấy: chỉ package.json khác biệt giữa bản phát hành sạch 1.14.0 và bản 1.14.1 bị xâm phạm trên tất cả 86 file trong gói.

Mã độc làm gì?

Cơ chế dropper

  • Hook postinstall trong plain-crypto-js đã thực thi một file bị mã hóa 4.2 KB có tên setup.js. Nó sử dụng hai lớp mã hóa:
  • Lớp 1: XOR cipher sử dụng khóa được lấy từ chuỗi “OrDeR_7077”
  • Lớp 2: Base64 encoding với đảo ngược ký tự
  • Sau khi được giải mã, dropper xác định hệ điều hành máy chủ và thực thi các payload dành riêng cho nền tảng.

Đường dẫn tấn công theo nền tảng

  • macOS: Viết AppleScript vào /tmp/6202033, Thực thi qua osascript, Tải payload xuống /Library/Caches/com.apple.act.mond
  • Windows: Sao chép PowerShell vào %PROGRAMDATA%\wt.exe (artefact để duy trì), Thực thi VBScript dropper qua cscript
  • Linux: Tải Python RAT xuống /tmp/ld.py, Thực thi qua nohup python3
  • Cả ba nhánh đều liên hệ với máy chủ điều khiển (command-and-control server) với các POST body dành riêng cho nền tảng:
  • macOS: packages.npm.org/product0
  • Windows: packages.npm.org/product1
  • Linux: packages.npm.org/product2

Khả năng của RAT

  • Remote access trojan được triển khai hỗ trợ:
  • Thực thi lệnh shell tùy ý
  • Liệt kê và trích xuất hệ thống file
  • Liệt kê và inject process
  • Inject binary trong bộ nhớ (thực thi không file)
  • Khoảng thời gian beacon 60 giây đến hạ tầng C2
  • Nói một cách đơn giản: kẻ tấn công có toàn quyền kiểm soát từ xa máy tính của bạn. Chúng có thể đọc các file .env của bạn, đánh cắp API keys, sao chép SSH keys, và thu thập các token của nhà cung cấp cloud.

Phương pháp tinh vi : payload tự làm sạch

  • Sau khi thực thi, dropper đã thực hiện ba bước dọn dẹp:
  • Xóa chính file setup.js
  • Xóa file package.json độc hại
  • Đổi tên một file package.md được chuẩn bị trước (báo cáo phiên bản 4.2.0) thành package.json
  • Điều này tạo ra một lớp đánh lừa, nơi npm list sẽ báo cáo phiên bản 4.2.0 thay vì 4.2.1 đã thực thi payload. Một nhà phát triển kiểm tra các dependency của họ sau sự việc sẽ không thấy điều gì bất thường.

Ai đứng sau cuộc tấn công này?

  • Google Threat Intelligence Group đã quy kết cuộc tấn công Axios cho UNC1069, một tác nhân đe dọa bị nghi ngờ do Triều Tiên bảo trợ. Mã độc macOS thể hiện “sự trùng lặp đáng kể” với WAVESHAPER, một backdoor C++ mà Mandiant đã theo dõi vào tháng 2 năm 2026.
  • Các nhóm được nhà nước Triều Tiên bảo trợ có kinh nghiệm sâu rộng với các cuộc tấn công chuỗi cung ứng. Họ đã sử dụng các công cụ phát triển bị xâm nhập để đánh cắp tiền điện tử trong lịch sử, và hoạt động này tuân theo cùng một kịch bản: xâm nhập một công cụ phát triển được sử dụng rộng rãi để giành quyền truy cập vào thông tin đăng nhập và hạ tầng cloud trên hàng nghìn tổ chức.
  • Mức độ tinh vi là đáng chú ý. Việc chèn dependency hai giai đoạn, triển khai RAT đa nền tảng, và dọn dẹp chống tra vết đều cho thấy một hoạt động được đầu tư kỹ lưỡng. Đây không phải là một “script kiddie” thả một cryptominer. Đây là một hoạt động tình báo nhắm mục tiêu vào các máy trạm của nhà phát triển.

Kiểm Tra Và Khắc Phục Hệ Thống Bị Ảnh Hưởng

  • Nếu bạn phát hiện bất kỳ dấu hiệu xâm nhập nào, hãy coi hệ thống bị ảnh hưởng là đã bị xâm nhập hoàn toàn. Dưới đây là danh sách ưu tiên hành động:

Bước 1: Kiểm tra phiên bản Axios của bạn

  • Chạy lệnh này trong mọi dự án sử dụng Axios:
npm list axios 2>/dev/null | grep -E "1\.14\.1|0\.30\.4"
  • Nếu lệnh này trả về kết quả, dự án của bạn đã cài đặt một phiên bản bị xâm phạm.

Bước 2: Kiểm tra dependency độc hại

ls node_modules/plain-crypto-js 2>/dev/null && echo "POTENTIALLY AFFECTED"
  • Ngay cả khi dropper đã tự dọn dẹp, sự tồn tại của thư mục này xác nhận payload đã được thực thi.

Bước 3: Kiểm tra các artifact RAT trên hệ thống của bạn

  • macOS: ls -la /Library/Caches/com.apple.act.mond 2>/dev/null
  • Linux: ls -la /tmp/ld.py 2>/dev/null
  • Windows (PowerShell): Test-Path "$env:PROGRAMDATA\wt.exe"

Bước 4: Kiểm tra các chỉ số mạng

  • Chặn và quét các kết nối đến:
  • C2 domain: sfrclak.com
  • C2 IP: 142.11.206.73
  • C2 URL: http://sfrclak.com:8000/6202033

Bước 5: Kiểm tra nhật ký build CI/CD

  • Xem lại bất kỳ lần chạy pipeline CI/CD nào giữa 00:21 UTC và 03:15 UTC ngày 31 tháng 3. Bất kỳ lệnh npm install hoặc npm ci nào chạy trong khoảng thời gian này mà đã resolve Axios đều có thể đã thực thi dropper trong môi trường build của bạn.

Khắc phục ngay lập tức

Hạ cấp Axios ngay lập tức:npm install axios@1.14.0
  1. Hoặc cho nhánh 0.x:
npm install axios@0.30.3
  1. Thêm các bản ghi đè phiên bản vào package.json của bạn: Ngăn chặn việc resolve gián tiếp đến các phiên bản độc hại.
{
  "overrides": {
    "axios": "1.14.0"
  }
}
  1. Đối với Yarn:
{
  "resolutions": {
    "axios": "1.14.0"
  }
}
Xóa gói độc hại:rm -rf node_modules/plain-crypto-js
  1. Xoay vòng tất cả các thông tin đăng nhập: Nếu dropper đã được thực thi trên máy của bạn, hãy giả định rằng các mục sau đã bị xâm phạm: npm tokens, AWS/GCP/Azure credentials, SSH keys, GitHub tokens, API keys trong các file .env, Database credentials, Bất kỳ bí mật nào được lưu trữ trong biến môi trường. Xoay vòng TẤT CẢ. Không có cách nào để biết RAT đã trích xuất những gì trong cửa sổ hoạt động của nó.
  2. Chặn C2 ở cấp độ mạng: Thêm vào file hosts hoặc quy tắc tường lửa của bạn:
echo "0.0.0.0 sfrclak.com" | sudo tee -a /etc/hosts
  1. Nếu tìm thấy artifact, xây dựng lại máy: Một RAT với khả năng thực thi shell và truy cập hệ thống file có thể sửa đổi bất cứ điều gì. Nếu bạn tìm thấy artifact từ Bước 3, đừng tin tưởng hệ thống. Xây dựng lại từ một trạng thái tốt đã biết.

Phòng Thủ Dài Hạn Cho Các Nhóm Phát Triển API

  • Vụ tấn công này là một lời nhắc nhở rằng mọi dependency trong node_modules của bạn đều là một quyết định tin cậy. Dưới đây là những biện pháp mà Tadu Cloud khuyến nghị để tăng cường bảo mật cho các dự án API của bạn:
  • Sử dụng lockfiles và ghim các phiên bản chính xác: Cuộc tấn công Axios đã khai thác các phạm vi semver ^. Nếu package.json của bạn ghi "axios": "^1.14.0", npm sẽ resolve phiên bản tương thích mới nhất, đó là 1.14.1 trong cửa sổ tấn công. Hãy ghim các phiên bản chính xác. Luôn commit package-lock.json hoặc yarn.lock của bạn. Chạy npm ci thay vì npm install trong CI/CD để thực thi việc giải quyết lockfile.
  • Vô hiệu hóa các script postinstall trong CI/CD: Toàn bộ cuộc tấn công phụ thuộc vào việc các hook postinstall được thực thi trong quá trình npm install. Bạn có thể vô hiệu hóa điều này bằng cách thêm --ignore-scripts. Tuy nhiên, điều này có thể làm hỏng một số gói cần biên dịch native. Hãy kiểm tra các bản build của bạn trước, sau đó chọn lọc cho phép các script cho các gói cần chúng bằng cách sử dụng .npmrc: ignore-scripts=true.
  • Kiểm tra dependency thường xuyên: Chạy npm audit hoặc npx socket-security/cli audit. Thực hiện các lệnh này trong CI/CD như một gate. Bất kỳ lỗ hổng nghiêm trọng hoặc cao nào cũng nên chặn bản build.
  • Giảm bề mặt tấn công dependency HTTP client của bạn: Đây là câu hỏi sâu hơn mà cuộc tấn công này đặt ra: tại sao quy trình kiểm thử API của bạn lại phụ thuộc vào một thư viện HTTP bên thứ ba có thể bị xâm phạm? Các nền tảng cơ bản khác cung cấp một HTTP client tích hợp sẵn để kiểm thử, debug và tài liệu hóa API. Bạn không cần Axios, node-fetch, hoặc got trong stack kiểm thử của mình. HTTP client là một phần của nền tảng, không có dependency bên thứ ba nào để bị xâm phạm. Đối với kiểm thử API nói riêng, việc di chuyển các yêu cầu HTTP của bạn vào một nền tảng tích hợp giúp loại bỏ toàn bộ bề mặt tấn công này.
  • Xác minh nguồn gốc gói (Package Provenance): npm hiện hỗ trợ nguồn gốc gói thông qua Sigstore. Kiểm tra xem các gói bạn phụ thuộc có sử dụng tính năng này không: npm audit signatures. Các phiên bản Axios độc hại thiếu bằng chứng nguồn gốc OIDC. Các bản phát hành hợp lệ từ các pipeline CI/CD bao gồm chứng thực mã hóa về nguồn gốc build của chúng. Nếu một phiên bản mới xuất hiện mà không có bằng chứng nguồn gốc, hãy coi đó là đáng ngờ.

Ý nghĩa đối với hệ sinh thái JavaScript

  • Mô hình tin cậy đã bị phá vỡ. Mô hình tin cậy của npm phụ thuộc vào bảo mật tài khoản maintainer. Một thông tin đăng nhập bị xâm phạm duy nhất đã cho phép kẻ tấn công kiểm soát một gói mà 83 triệu dự án cài đặt hàng tuần. Xác thực hai yếu tố (2FA) có ích, nhưng các mã truy cập dài hạn vẫn có thể bị đánh cắp từ các môi trường phát triển bị xâm phạm.
  • Cộng đồng đang thảo luận về một số thay đổi cấu trúc:
  • Bắt buộc publish bằng OIDC: Yêu cầu tất cả các gói trên một ngưỡng tải xuống phải sử dụng việc publish dựa trên CI/CD với OIDC tokens thay vì các thông tin đăng nhập dài hạn.
  • Phê duyệt phát hành bởi hai người: Yêu cầu một maintainer thứ hai phê duyệt các bản phát hành cho các gói quan trọng.
  • Giới hạn quyền truy cập runtime (Runtime permission scoping): Giới hạn những gì các script postinstall có thể truy cập, tương tự như mô hình quyền của Deno.
  • Các cuộc tấn công chuỗi cung ứng không chậm lại. Cuộc tấn công này xảy ra chỉ vài ngày sau sự cố RubyGems fracture và các lo ngại về dependency PyPI đang diễn ra. Các registry gói trên mọi hệ sinh thái ngôn ngữ đang bị tấn công liên tục. Các nhà phát triển API cần xem xét cây dependency của họ như một bề mặt tấn công, không phải là một sự tiện lợi.
  • Thảo luận trên Reddit đã tóm gọn tâm lý này khá rõ: “NPM là điểm yếu lớn nhất của internet ngày nay và nó sẽ vẫn gây ra một thảm họa khổng lồ.” Dù bạn có đồng ý với sự cường điệu này hay không, cuộc tấn công Axios chứng minh rằng phạm vi ảnh hưởng là có thật.

So sánh: Các phương pháp dependency HTTP client

Phương pháp Rủi ro chuỗi cung ứng Gánh nặng bảo trì Khả năng kiểm thử Axios + custom scripts Cao (dependency bên thứ ba) Cao (quản lý phiên bản) Yêu cầu thiết lập thủ công Node.js native fetch Thấp (tích hợp vào runtime) Thấp Tính năng kiểm thử hạn chế Apidog built-in client Không (không có dependency npm) Không (nền tảng quản lý) Kiểm thử, mocking, docs đầy đủ curl/httpie scripts Thấp (công cụ cấp hệ thống) Trung bình Tự động hóa hạn chế Câu hỏi thường gặp

  • Axios có an toàn để sử dụng bây giờ không? Có. Các phiên bản 1.14.0 và 0.30.3 là sạch. Các phiên bản bị xâm phạm (1.14.1 và 0.30.4) đã bị gỡ bỏ trong khoảng ba giờ. Xác minh phiên bản đã cài đặt của bạn bằng npm list axios và kiểm tra lockfile của bạn để xác nhận bạn đang ở phiên bản an toàn.
  • Làm thế nào để tôi biết RAT có chạy trên máy của tôi không? Kiểm tra các artifact dành riêng cho nền tảng: /Library/Caches/com.apple.act.mond trên macOS, /tmp/ld.py trên Linux, hoặc %PROGRAMDATA%\wt.exe trên Windows. Cũng kiểm tra xem node_modules/plain-crypto-js có tồn tại trong bất kỳ dự án nào của bạn không. Dropper tự dọn dẹp sau khi thực thi, vì vậy việc không có artifact không đảm bảo bạn an toàn nếu bạn đã cài đặt phiên bản bị xâm phạm.
  • Tôi có nên ngừng sử dụng Axios hoàn toàn không? Không nhất thiết. Axios vẫn là một thư viện được duy trì tốt với một lịch sử hoạt động mạnh mẽ. Nhưng cuộc tấn công này nên thúc đẩy bạn đánh giá xem bạn có cần một HTTP client bên thứ ba hay không. Node.js 18+ bao gồm native fetch. Đối với kiểm thử API, các nền tảng như Apidog cung cấp các HTTP client tích hợp sẵn giúp loại bỏ dependency này.
  • Làm thế nào để tôi ngăn chặn các cuộc tấn công chuỗi cung ứng trong dự án của mình? Ghim các phiên bản dependency chính xác, commit lockfiles, chạy npm ci --ignore-scripts trong CI/CD, kiểm tra dependency thường xuyên, xác minh nguồn gốc gói bằng npm audit signatures, và giảm thiểu cây dependency của bạn. Xem xét việc di chuyển các quy trình kiểm thử API vào các nền tảng tích hợp không dựa vào các gói npm để giao tiếp HTTP.
  • Ai đứng sau cuộc tấn công Axios? Google Threat Intelligence Group đã quy kết cuộc tấn công cho UNC1069, một tác nhân đe dọa bị nghi ngờ do Triều Tiên bảo trợ. Mã độc macOS chia sẻ sự trùng lặp đáng kể với WAVESHAPER, một backdoor được Mandiant theo dõi. Các nhóm Triều Tiên có kinh nghiệm sâu rộng với các cuộc tấn công chuỗi cung ứng, thường nhắm mục tiêu vào thông tin đăng nhập của nhà phát triển và hạ tầng tiền điện tử.
  • Có bao nhiêu nhà phát triển bị ảnh hưởng? Các phiên bản độc hại tồn tại trong khoảng hai đến ba giờ. Với 83 triệu lượt tải hàng tuần, khả năng bị phơi nhiễm là đáng kể. npm chưa công bố số liệu tác động chính thức. Hệ thống phát hiện runtime của StepSecurity đã xác nhận dropper liên hệ C2 trong vòng 1.1 giây kể từ khi npm install bắt đầu, trước khi quá trình giải quyết dependency hoàn tất.
  • Apidog có thể giúp ngăn chặn các cuộc tấn công chuỗi cung ứng không? Apidog loại bỏ một vector tấn công lớn bằng cách cung cấp một HTTP client tích hợp sẵn để kiểm thử, debug và tài liệu hóa API. Bạn không cần cài đặt Axios, node-fetch, hoặc các thư viện HTTP khác trong quy trình kiểm thử của mình. Điều này giúp giảm bề mặt dependency npm của bạn và loại bỏ rủi ro các gói HTTP client bị xâm phạm ảnh hưởng đến quy trình phát triển API của bạn.

Những điểm chính rút ra từ Tadu Cloud

  • Vụ tấn công chuỗi cung ứng Axios đã xâm phạm hơn 83 triệu lượt tải hàng tuần thông qua một tài khoản maintainer bị đánh cắp. Mã độc RAT nhắm mục tiêu vào tất cả các nền tảng (macOS, Windows, Linux) và đánh cắp thông tin đăng nhập, SSH keys, và cloud tokens. Hãy kiểm tra hệ thống của bạn ngay lập tức bằng cách sử dụng các bước phát hiện ở trên. Ghim các phiên bản dependency chính xác và vô hiệu hóa các script postinstall trong CI/CD. Giảm bề mặt tấn công dependency HTTP client của bạn bằng cách sử dụng các công cụ tích hợp sẵn như Apidog để kiểm thử API. Bảo mật registry gói là một vấn đề hệ thống ảnh hưởng đến npm, PyPI, và RubyGems.
  • Cuộc tấn công Axios là một lời cảnh tỉnh. Mọi dependency trong node_modules của bạn là một quyết định tin cậy. Hãy đảm bảo bạn đưa ra những quyết định đó một cách có chủ đích, không phải theo mặc định.
Sử dụng HTTP Cookies nhằm đạt được khả năng thực thi mã từ xa
Sử dụng HTTP Cookies nhằm đạt được khả năng thực thi mã từ xa

Tóm tắt nội dung1 Cơ chế hoạt động và tính ẩn danh2 Khả năng duy [...]

Phân Tích Vụ Tấn Công Chuỗi Cung Ứng NPM Axios 31/03/2026
Phân Tích Vụ Tấn Công Chuỗi Cung Ứng NPM Axios ngày 31/03/2026

Tóm tắt nội dung1 Diễn Biến Của Vụ Tấn Công Chuỗi Cung Ứng Axios1.1 Dòng [...]

Tadu Cloud nhận định về EmDash: Kỷ nguyên mới cho CMS

Tadu Cloud nhận định về EmDash, một CMS thế hệ mới tái định nghĩa web [...]

Axios bị hack rồi, nguy cơ dự án của bạn có thể bị dính R.A.T cao
Axios bị hack rồi, nguy cơ dự án của bạn có thể bị dính R.A.T cao

Anh em developer à, dừng tay code lại một chút đi. Có một cảnh báo [...]

thành trì số
Tadu Cloud – Kiến tạo thành trì số, hỗ trợ chiến lược mới 2026

Lời đầu tiên, Tadu xin cảm ơn quý khách đã đồng hành cùng công ty [...]

NemoClaw và OpenClaw: mối quan hệ và sức mạnh tổng hợp cho Marketer
NemoClaw và OpenClaw: mối quan hệ và sức mạnh tổng hợp cho Marketer

Tóm tắt nội dung1 Một mối quan hệ bổ trợ rất chặt chẽ2 Và sức [...]

Thông báo Tadu
Quyết định điều chỉnh giá các gói dịch vụ và bảng giá chiết khấu đại lý 2026

Xin chào quý khách. Lời đầu tiên, Tadu xin cám ơn quý khách đã đồng [...]

Ubuntu 26.04: Đột Phá Với Phản Hồi Mật Khẩu Sudo
Ubuntu 26.04: Đột Phá Với Phản Hồi Mật Khẩu Sudo

Ubuntu 26.04 LTS đã chấm dứt truyền thống hơn 40 năm của sudo bằng cách [...]