Tiêu đề gốc: "GETH phát hành phiên bản sửa chữa mới nhất"
Nguồn gốc: Trang web Ethereum Trung Quốc
Các phiên bản geth được xây dựng bằng Go<1.15.5 hoặc <1.14.12 có thể bị ảnh hưởng bởi lỗ hổng bảo mật nghiêm trọng (DoS). Nhóm Golang đã đăng ký lỗ hổng này là “CVE-2020-28362”.
Chúng tôi khuyên tất cả người dùng nên sử dụng Go 1.15.5 hoặc 1.14.12 để xây dựng lại máy khách (tốt nhất là phiên bản v1.9.24) để tránh sự cố nút. Ngoài ra, nếu bạn đang chạy chương trình chính thức, chúng tôi đã phát hành Geth v1.9.24 dựa trên Go 1.15.5. (Bản phát hành: https://github.com/ethereum/go-ethereum/releases/tag /v1.9.24)
Hình ảnh Docker rất có thể đã lỗi thời do thiếu hình ảnh cơ sở, bạn có thể kiểm tra tại đây để biết hướng dẫn tạm thời xây dựng hình ảnh bằng Go1.15.5. Vui lòng chạy phiên bản geth để xác minh xem chương trình của bạn đang sử dụng phiên bản Go nào.
Đầu tháng 10, go-ethereum đã gia nhập Dự án OSS-Fuzz. Chúng tôi đã thực hiện thử nghiệm fuzz trên cơ sở đặc biệt và thử nghiệm trên một số nền tảng khác nhau.
Vào ngày 24 tháng 10, một sự cố đã được phát hiện ở một trong những công cụ kiểm tra.
Sau khi điều tra, người ta phát hiện ra rằng nguyên nhân cốt lõi của vấn đề là do lỗ hổng trong thư viện chuẩn Go và vấn đề đã được báo cáo.
Trong quá trình xử lý khối, việc khai thác lỗ hổng DoS có thể làm hỏng tất cả các nút Geth, hậu quả sau đó là hậu quả là hầu hết các nút trong mạng Ethereum đều ngoại tuyến.
Ngoài Go-Ethereum, vấn đề này có thể ảnh hưởng đến tất cả các fork của Geth (chẳng hạn như TurboGeth hoặc core-geth được ETC sử dụng). Để mở rộng phạm vi điều tra, chúng tôi sẽ tiếp tục truy tìm lại mã và nhóm Go cũng đã mở một cuộc điều tra về những người dùng có khả năng bị ảnh hưởng.
24-10-2020: Nhận báo cáo sự cố từ OSS-fuzz  ;
2020-10-25: Sau khi điều tra, xác định nguyên nhân là do lỗ hổng trong ngôn ngữ Go. Báo cáo chi tiết đã được gửi tới security@golang.org
2020-10-26: Đã nhận được phản hồi xác nhận, cuộc điều tra vẫn tiếp tục  ;
2020-10-26 – 2020-11-06: Thảo luận về các bản sửa lỗi có thể có và tiếp tục điều tra hồi cứu những người dùng có khả năng bị ảnh hưởng
2020-11-06: Go Dự kiến phát hành các bản sửa lỗi bảo mật trên 2020-11-12
2020-11-09: Sử dụng các bản vá bảo mật được công bố trước: https://groups.google.com/g/golang-announce/c/kMa3eup0qhU/m/O5RSMHO_CAAJ
2020-11-11 : Qua trang chính thức của Geth twitter, Discord và Redditthông báo cho người dùng
2020-11-12 : Phát hành phiên bản Go mới , và các vấn đề khác với phiên bản mới của geth
PR này gửi một vấn đề bảo mật khác khiến chúng tôi chú ý, trong đó có bản sửa lỗi cho thuật toán ethash.
Lỗ hổng khai thác này có thể khiến thợ mỏ tính toán sai bằng chứng công việc trong các giai đoạn tương lai. Sự cố này đã xảy ra trong chuỗi ETC vào ngày 2020-11-06. Dự kiến, điều này có thể có tác động đến mạng chính ETH vào đầu tháng 1 năm 2021 ở độ cao khối 11550000/epoch 385.
Vấn đề này cũng đã được khắc phục trong phiên bản 1.9.24, lỗ hổng này chỉ liên quan đến các nút khai thác, còn các nút không phải khai thác sẽ không bị ảnh hưởng.
Các phiên bản bị ảnh hưởng: 1.9.7 – 1.9.16
Đã sửa: 1.9.17
Loại: Lỗ hổng đồng thuận
2020 7 Vào ngày 15 tháng 3 , John Youngseok Yang (Phòng thí nghiệm nền tảng phần mềm) đã báo cáo lỗ hổng đồng thuận trong Geth.
Hợp đồng dataCopy (0x00 ... 04) được biên dịch trước của Geth tạo một bản sao nông khi được gọi, trong khi Parity tạo một bản sao sâu. Kẻ tấn công có thể triển khai hợp đồng như vậy:
Viết X
Sử dụng R làm tham số để gọi 0x00..04  ;
Sử dụng R để ghi đè Y
Cuối cùng gọi RETURNDATACOPY
Khi opcode gọi hợp đồng, Parity sẽ đẩy X vào ngăn xếp EVM và Geth sẽ push Y
Điều này xảy ra trong khu vực mạng chính Ethereum Chiều cao khối Giao dịch tại 11234873 0x57f7f9 , khiến nút không hoạt động và khoảng 30 khối bị mất trong chuỗi bên. Điều này cũng khiến Infura chuyển sang chế độ ngoại tuyến, từ đó ảnh hưởng đến người dùng và nhà cung cấp dịch vụ sử dụng Infura.
Để biết thêm chi tiết, hãy xem Geth và Báo cáo sự cố của Infura và Chuỗi tweet.
Các phiên bản bị ảnh hưởng : v1 .9.16,v1.9.17
Đã sửa: v1.9.18
Loại: Lỗ hổng DoS trong quá trình xử lý khối
Chúng tôi đã phát hiện ra lỗ hổng DoS và sửa nó trong v1.9.18. Chúng tôi đã quyết định không tiết lộ chi tiết vào thời điểm này.
Trước mắt, chúng tôi khuyên tất cả người dùng nên nâng cấp Geth lên v1. Phiên bản 9.24 ngay lập tức (Go 1.15.5), đây là Bản phát hành chính thức: https:/ /github .com/ethereum/go-ethereum/releases/tag/v1.9.24
Nếu bạn đang sử dụng Geth thông qua Docker, có thể có một số vấn đề thắc mắc. Nếu đó là ethereum/client-go, có hai điều cần lưu ý:
Hình ảnh mới trong Docker hub có thể bị trì hoãn
If Go's If base hình ảnh không được tạo nhanh như vậy, rất có thể nó dựa trên phiên bản dễ bị tấn công của Go
Nếu bạn dự định tự tạo hình ảnh docker (thông qua kho lưu trữ gốc docker build .), bạn cũng có thể gặp phải vấn đề thứ hai.
Vì vậy, hãy đảm bảo hình ảnh cơ sở đang sử dụng Go 1.15.5.
Về lâu dài, chúng tôi khuyến nghị người dùng và thợ mỏ nên sử dụng các ứng dụng khách thay thế. Chúng tôi nhận thức rõ ràng rằng để mạng Ethereum duy trì khả năng phục hồi, nó không thể dựa vào việc triển khai một khách hàng duy nhất. Các tùy chọn khách hàng khác bao gồm Besu, Nethermind, OpenEthereum TurboGeth V.v.
Bạn có thể truy cập https://bounty.ethereum.org p> a>, bounty@ethereum.org or security@ethereum. org Báo cáo lỗ hổng bảo mật.
Chào mừng bạn tham gia cộng đồng chính thức của BlockBeats:
Nhóm Telegram đăng ký: https://t.me/theblockbeats
Nhóm Telegram thảo luận: https://t.me/BlockBeats_App
Tài khoản Twitter chính thức: https://twitter.com/BlockBeatsAsia