Khóa CA của eMudhra bị xâm phạm, buộc các trình duyệt và runtime phải sửa chữa khẩn cấp
Mozilla và Google xác nhận việc tám khóa riêng tư của cơ quan chứng thực trung gian (intermediate CA) eMudhra bị xâm phạm vào ngày 20 tháng 10, dẫn đến các hành động thu hồi khẩn cấp trên các trình duyệt lớn và phần mềm runtime.
Bài được dịch tự động từ bản gốc tiếng Anh.
Vào ngày 20 tháng 10, Mozilla và Chương trình Root của Chrome thuộc Google đã xác nhận rằng các khóa riêng tư cho tám chứng chỉ cơ quan chứng thực trung gian (intermediate certificate authority - intermediate CA) của eMudhra đã bị xâm phạm. Sự cố bảo mật nghiêm trọng này đã thúc đẩy các bản vá khẩn cấp ngay lập tức trên các trình duyệt web và phần mềm runtime chính để ngăn chặn các cuộc tấn công man-in-the-middle tiềm năng. Vụ xâm phạm được một nhà nghiên cứu báo cáo vào ngày 17 tháng 10, dẫn đến các hành động chặn nhanh chóng từ Chrome và Firefox trong vòng vài giờ sau khi xác minh.
Chuyện gì đã xảy ra
Cốt lõi của sự cố này liên quan đến việc đánh cắp hoặc truy cập trái phép các khóa riêng tư thuộc về eMudhra, một cơ quan chứng thực (CA) của Ấn Độ phát hành chứng chỉ kỹ thuật số dưới thương hiệu emSign. Các khóa cụ thể này thuộc về các chứng chỉ trung gian, được sử dụng để ký các chứng chỉ thực thể cuối (end-entity certificates) cho các trang web và phần mềm. Việc sở hữu các khóa riêng tư này cho phép kẻ tấn công phát hành các chứng chỉ TLS hợp lệ cho bất kỳ tên miền nào, mà các trình duyệt sẽ thường tin tưởng như là hợp pháp. Vụ xâm phạm ảnh hưởng đến sáu chứng chỉ trung gian dùng cho mã hóa TLS và hai chứng chỉ dùng cho ký mã (code signing), trải dài các loại chứng chỉ domain validated, organization validated và extended validation.
Một nhà nghiên cứu bảo mật, chỉ được xác định là Wayne, đã báo cáo vấn đề này cho các nhà vận hành chương trình root vào tối ngày 17 tháng 10. Wayne đã chứng minh quyền sở hữu các khóa bằng cách ký một thông điệp với mỗi trong tám khóa riêng tư bị xâm phạm. Chrome đã xác minh các phát hiện và triển khai một lệnh chặn thông qua cơ chế CRLSet trước 19:45 UTC ngày 17 tháng 10. Mozilla cũng làm tương tự, đẩy một khối OneCRL tới các cài đặt Firefox trước 22:59 UTC cùng ngày. Các cơ chế này cho phép trình duyệt thu hồi lòng tin đối với các chứng chỉ cụ thể mà không cần cập nhật toàn bộ phần mềm hoặc khởi động lại. Apple đã chặn các chứng chỉ vào ngày 19 tháng 10, và Microsoft tiếp theo vào ngày 20 tháng 10.
Điều quan trọng là, không có chứng chỉ TLS nào chuỗi tới sáu chứng chỉ trung gian web bị ảnh hưởng đã được ghi vào nhật sách Certificate Transparency trước khi Chrome triển khai lệnh chặn. Điều này gợi ý rằng mặc dù các khóa đã bị xâm phạm, chúng có thể chưa được sử dụng để phát hành các chứng chỉ gian lận vốn hiển thị công khai và được mặc định tin cậy bởi Chrome. Tuy nhiên, vẫn chưa rõ các khóa đã bị đánh cắp như thế nào, vụ rò rỉ xảy ra khi nào, hoặc liệu có các tác nhân khác ngoài nhà nghiên cứu báo cáo nắm giữ chúng hay không. Go, ngôn ngữ lập trình, cũng đã phát hành các bản cập nhật bảo mật khẩn cấp vào ngày 20 tháng 10 để từ chối các chuỗi chứa những khóa này, xử lý vấn đề với mức độ nghiêm trọng tối đa do mối đe dọa tiềm tàng đối với tính toàn vẹn của hệ sinh thái.
Chi tiết chính
- Tám khóa riêng tư của CA trung gian eMudhra đã bị xâm phạm, ảnh hưởng đến cả chứng chỉ TLS và chứng chỉ ký mã.
- Chrome và Firefox đã chặn các chứng chỉ trong vòng vài giờ sau khi báo cáo vào ngày 17 tháng 10, lần lượt sử dụng CRLSet và OneCRL.
- Không tìm thấy chứng chỉ TLS gian lận nào chuỗi tới các chứng chỉ trung gian bị ảnh hưởng trong nhật sách Certificate Transparency trước khi lệnh chặn được áp dụng.
- Go đã phát hành các phiên bản 1.27.3 và 1.26.10 vào ngày 20 tháng 10 để từ chối cứng nhắc các khóa này, yêu cầu các nhà phát triển xây dựng lại ứng dụng của họ.
- Mozilla đã xóa emSign ECC Root CA - G3 khỏi kho lưu trữ tin cậy NSS của mình, điều này có thể gây ra các vấn đề kết nối cho các máy chủ vẫn đang sử dụng root này.
- Gói certifi của Python và webpki-roots của Rust đã được cập nhật để loại bỏ root bị ảnh hưởng, yêu cầu cập nhật gói cho các dịch vụ backend.
Bối cảnh
Để hiểu mức độ nghiêm trọng, cần phân biệt giữa chứng chỉ gốc (root certificate) và chứng chỉ trung gian (intermediate certificate). Chứng chỉ gốc là neo tin cậy tối thượng trong trình duyệt hoặc hệ điều hành. Các chứng chỉ trung gian hoạt động như những cây cầu, được ký bởi chứng chỉ gốc, sau đó ký các chứng chỉ thực tế được sử dụng bởi các trang web. Hệ thống phân cấp này cho phép các CA giữ các khóa gốc cực kỳ nhạy cảm của họ ngoại tuyến và an toàn. Khi một khóa trung gian bị xâm phạm, như trong trường hợp này, thiệt hại dễ dàng được kiểm soát hơn so với việc xâm phạm khóa gốc, nhưng nó vẫn cho phép kẻ tấn công giả mạo bất kỳ trang web nào được tin cậy bởi chứng chỉ trung gian đó.
Certificate Transparency (CT) là một hệ thống sổ cái công khai ghi lại tất cả các chứng chỉ TLS đã phát hành. Nó đóng vai trò như một dấu vết kiểm toán, cho phép chủ sở hữu tên miền và trình duyệt phát hiện các chứng chỉ bị phát hành sai. Thực tế là không có nhật sách CT nào tồn tại cho các chứng chỉ trung gian eMudhra bị xâm phạm trước lệnh chặn là một tín hiệu tích cực, cho thấy việc lạm dụng quy mô lớn có thể đã được ngăn chặn hoặc không bị phát hiện bởi giám sát công khai. Tuy nhiên, nhiều hệ thống backend và khách hàng cũ không thực thi nghiêm ngặt việc ghi nhật ký CT hoặc kiểm tra danh sách thu hồi như CRLSet, khiến chúng dễ bị tổn thương cho đến khi kho lưu trữ tin cậy của chúng được cập nhật rõ ràng.
Tại sao điều này quan trọng
Đối với các nhóm chạy phần mềm tự host (self-hosted), sự cố này nhấn mạnh sự mong manh của lòng tin ngầm định đối với các cơ quan chứng thực của bên thứ ba. Trong khi các trình duyệt web nhận được các bản cập nhật thu hồi tự động, nhiều ứng dụng phía máy chủ, công cụ nội bộ và microservices dựa vào các bó tin cậy tĩnh hoặc kho lưu trữ chứng chỉ cấp hệ thống không tự động cập nhật. Ví dụ, các ứng dụng Python sử dụng gói certifi hoặc các binary Go được biên dịch với các phiên bản cũ hơn sẽ tiếp tục tin tưởng các khóa bị xâm phạm cho đến khi các thư viện cơ bản được cập nhật và ứng dụng được triển khai lại. Điều này tạo ra một cửa sổ dễ bị tổn thương cho các API nội bộ và giao tiếp giữa các dịch vụ dựa trên xác thực lẫn nhau TLS (TLS mutual authentication).
Hơn nữa, việc xóa emSign ECC Root CA - G3 khỏi các kho lưu trữ tin cậy như NSS của Mozilla và certifi của Python có nghĩa là bất kỳ dịch vụ hợp pháp nào vẫn sử dụng các chứng chỉ chuỗi tới root này sẽ đột ngột trở nên không thể truy cập. Đây không chỉ là một bản sửa lỗi bảo mật mà còn là một sự cố khả dụng tiềm năng. Các kỹ sư DevOps phải xác minh xem bất kỳ phụ thuộc bên ngoài hoặc tích hợp đối tác nào của họ có sử dụng chứng chỉ eMudhra hay không. Nếu có, các kết nối đó sẽ thất bại cho đến khi bên từ xa tái phát hành chứng chỉ của họ dưới một root khác, đáng tin cậy. Điều này nhấn mạnh nhu cầu giám sát chủ động tính hợp lệ của chứng chỉ và thay đổi nhà phát hành, thay vì giả định độ tin cậy kiểu "cài đặt rồi quên".
Bạn có thể làm gì
- Cập nhật tất cả các cài đặt Go lên phiên bản 1.27.3 hoặc 1.26.10 ngay lập tức và xây dựng lại bất kỳ binary nào bị ảnh hưởng để đảm bảo logic từ chối mới được kích hoạt.
- Kiểm tra môi trường Python của bạn và cập nhật gói certifi lên phiên bản 2026.10.19 hoặc mới hơn để xóa root không đáng tin cậy khỏi bó của bạn.
- Kiểm toán nhật ký máy chủ của bạn cho bất kỳ kết nối nào tới các dịch vụ sử dụng chứng chỉ eMudhra, vì những kết nối này bây giờ có thể thất bại do việc xóa root trong các kho lưu trữ tin cậy đã cập nhật.
- Xác minh rằng các hệ thống giám sát nội bộ của bạn đang kiểm tra các thay đổi nhà phát hành chứng chỉ, không chỉ ngày hết hạn, để phát hiện sớm các quá trình di chuyển hoặc xâm phạm tương tự.
- Đảm bảo các cài đặt Firefox của bạn được cập nhật lên phiên bản 158.0.1, ESR 115.43.1 hoặc ESR 153.5.1 nếu chúng không thể nhận các bản cập nhật Remote Settings tự động.
- Xem xét quản lý phụ thuộc của bạn cho các dự án Rust và Node.js, theo dõi các bản cập nhật đang chờ xử lý cho webpki-roots và chính Node.js để giải quyết vụ xâm phạm này.



