Bỏ qua xác minh tile của transparency log trong Go toolchain cmd/go và golang.org/x/mod

Lưu ý: Dữ liệu này chỉ có tính chất tham khảo, phục vụ nghiên cứu an ninh mạng.CyStack khuyến nghị người dùng không sử dụng các thông tin này nhằm các mục đích bất hợp pháp

Lỗ hổng CVE-2026-56865 là gì?

Lỗ hổng CVE-2026-56865 là lỗ hổng Improper Verification of Cryptographic Signature ảnh hưởng tới cmd/go (phiên bản bị ảnh hưởng: < 1.25.13, 1.26.0-0 – < 1.26.6 và các phiên bản bị ảnh hưởng khác) và golang.org/x/mod/sumdb/tlog (phiên bản bị ảnh hưởng: < 0.40.0). Lỗ hổng này được xếp hạng ở mức Cao, với điểm CVSS 8.4. Các nguồn hiện có chưa ghi nhận lỗ hổng này bị khai thác.

Giới thiệu chung

Dữ liệu gốc

Một GOPROXY độc hại trước đây có khả năng giả mạo tối đa hai sumdb tile, cho phép module được yêu cầu vượt qua kiểm tra GOSUMDB và lưu nội dung module do kẻ tấn công kiểm soát vào Go module cache cục bộ. Cuộc tấn công này cho phép một GOPROXY độc hại cung cấp nội dung module độc hại mà không thể bị phát hiện khi đánh giá transparency log. Hiện tất cả các tile đều được xác minh đúng với các tile cha. Để xác định bạn có bị ảnh hưởng hay không: rm -r go.sum go.work.sum vendor/ && go mod tidy

Sản phẩm và phạm vi ảnh hưởng

  • Go toolchain cmd/go: bị ảnh hưởng ở các phiên bản trước 1.25.13; từ 1.26.0-0 đến trước 1.26.6; và từ 1.27.0-0 đến trước 1.27.0-rc.3.
  • golang.org/x/mod/sumdb/tlog: bị ảnh hưởng ở các phiên bản trước v0.40.0.
  • Báo cáo Go xác định symbol nội bộ bị ảnh hưởng là tileHashReader.ReadHashes.
  • Bản ghi đặt trạng thái mặc định là unaffected ngoài các phạm vi trên, nhưng không liệt kê độc lập mọi nhánh song song. Không nên suy ra trạng thái của nhánh không được nêu chỉ từ việc một nhánh khác đã có bản sửa.

Chi tiết kỹ thuật

Thành phần bị ảnh hưởng là golang.org/x/mod/sumdb/tlog, bao gồm symbol nội bộ tileHashReader.ReadHashes, cùng với đường dẫn tích hợp trong cmd/go. Khi client lấy module thông qua GOPROXY, phản hồi do kẻ tấn công kiểm soát có thể giả mạo tối đa hai sumdb tile. Trước khi được sửa, các tile không phải lúc nào cũng được xác minh với tile cha, tạo điều kiện để module được yêu cầu vượt qua kiểm tra GOSUMDB và được lưu vào Go module cache cục bộ. Đây là lỗi xác minh không đúng chữ ký mật mã, được phân loại là CWE-347. Điều kiện khai thác là client thực hiện việc phân giải module thông qua một GOPROXY độc hại hoặc đã bị xâm phạm; đánh giá được cung cấp phân loại khả năng tiếp cận là local, thay vì truy cập mạng trực tiếp vào một dịch vụ tùy ý. Tài liệu công khai không mô tả thêm cách tạo tile giả mạo hoặc cấu trúc chính xác của artifact trong cache, vì vậy không nên tự suy đoán các chi tiết đó.

Khả năng khai thác

  • Khả năng tiếp cận: Đánh giá được cung cấp phân loại là local; mức phơi nhiễm phụ thuộc vào việc client phân giải module qua một GOPROXY độc hại hoặc đã bị xâm phạm.
  • Xác thực và tương tác: Đánh giá ghi nhận không cần quyền đặc biệt và không cần user interaction đối với hoạt động khai thác.
  • Độ phức tạp: Được đánh giá là thấp sau khi client sử dụng đường dẫn proxy bị ảnh hưởng.
  • Trạng thái khai thác: Bản ghi không ghi nhận public exploit và không nêu một chiến dịch đã khai thác cụ thể. Điều này phản ánh thông tin hiện có, không chứng minh rằng chưa từng có khai thác trong bất kỳ môi trường nào.

Tác động kỹ thuật

  • Lỗi làm suy yếu cơ chế xác minh tính toàn vẹn của module dựa trên GOSUMDB và transparency log.
  • Trong điều kiện bị khai thác, module độc hại có thể tồn tại trong local cache và được các quy trình build hoặc công cụ khác sử dụng như dependency hợp lệ.
  • Hậu quả kỹ thuật có thể bao gồm thay đổi mã được biên dịch, thực thi code không đáng tin cậy trong ngữ cảnh của developer hoặc build process, và ảnh hưởng đến tính bảo mật, toàn vẹn hoặc khả dụng của hệ thống downstream.
  • Phạm vi tác động chủ yếu nằm ở client và môi trường build sử dụng đường dẫn lấy module bị ảnh hưởng; bằng chứng hiện có không xác nhận việc leo thang quyền, truy cập trực tiếp vào dịch vụ tùy ý hoặc một vụ xâm phạm cụ thể.

Tác động đến tổ chức

  • Nội dung module do kẻ tấn công kiểm soát có thể được đưa vào local Go module cache trong khi việc đánh giá transparency log không phát hiện được sự thay thế.
  • Nếu nội dung đó được các build, test, packaging hoặc công cụ phát triển sử dụng về sau, nó có thể làm suy giảm tính toàn vẹn của phần mềm và tạo đường dẫn cho supply-chain compromise.
  • Các hậu quả có thể xảy ra gồm thay đổi output build, thực thi code không đáng tin cậy, lộ secret mà tiến trình build được phép truy cập hoặc gián đoạn dịch vụ. Bản ghi không xác nhận các hậu quả này đã xảy ra trong một môi trường cụ thể.
  • Mối quan tâm chính đối với tổ chức là độ tin cậy của quy trình lấy dependency và khả năng tái lập build, đặc biệt trên CI runner và máy lập trình dùng chung cấu hình GOPROXY.

Cách khắc phục

  1. Nâng cấp Go toolchain cmd/go theo đúng nhánh bị ảnh hưởng: dùng 1.25.13 cho dòng 1.25, 1.26.6 cho dòng 1.26, và 1.27.0-rc.3 cho nhánh pre-release 1.27 được liệt kê. Không coi bản sửa của một nhánh là bằng chứng rằng mọi nhánh không được nêu đều an toàn.
  2. Nếu sử dụng golang.org/x/mod trực tiếp, cập nhật golang.org/x/mod/sumdb/tlog lên v0.40.0.
  3. Với workspace có khả năng đã bị ảnh hưởng, thực hiện lệnh kiểm tra và tái tạo dependency được Go hướng dẫn:
rm -r go.sum go.work.sum vendor/ && go mod tidy
  1. Rà soát các thay đổi dependency sau thao tác trên trước khi đưa chúng trở lại build hoặc release pipeline. Nếu phát hiện nội dung bất thường, tạm coi cache và artifact phát sinh từ dependency đó là không đáng tin cậy cho đến khi được xác minh lại.
  2. Nguồn hiện có không cung cấp thêm hướng dẫn forensic cho cache hoặc danh sách IOC cụ thể; không nên tự tạo các tiêu chí phát hiện chưa được xác nhận.

Cách phát hiện

  1. Kiểm kê phiên bản Go trên máy lập trình, build agent và CI runner, đồng thời kiểm tra dependency golang.org/x/mod và các bản vendored có liên quan.
  2. Kiểm tra cấu hình GOPROXY và nhật ký truy cập proxy để xác định hệ thống có từng sử dụng proxy không thuộc quyền kiểm soát hoặc có khả năng đã bị xâm phạm hay không. Đây là kiểm tra bối cảnh, không phải IOC đã được xác nhận.
  3. Với workspace có khả năng bị ảnh hưởng, thực hiện quy trình kiểm tra do Go cung cấp:
rm -r go.sum go.work.sum vendor/ && go mod tidy
  1. Rà soát các thay đổi dependency sau khi tái tạo trạng thái module và điều tra những module hoặc nội dung bất thường trong cache, lockfile và artifact build.
  2. Không có log signature hoặc IOC cụ thể nào được nêu trong bằng chứng hiện có; việc không thấy log bất thường không chứng minh cache an toàn.
Nguồn (21)
Tìm hiểu thêm

Kiểm tra chuyên sâu cùng giải pháp quản lý rủi ro Web toàn diện

Giải pháp CyStack VulnScan liên tục phát hiện tài sản, xác minh lỗ hổng và giúp đội ngũ bảo mật ưu tiên khắc phục cho toàn bộ doanh nghiệp.