Người dùng Gitea được khuyến nghị cập nhật ngay lập tức sau khi một lỗ hổng CVE Gitea nghiêm trọng đã được công bố. Lỗ hổng này cho phép các token truy cập kho lưu trữ chỉ dành cho công khai có thể gián tiếp ghi vào các nhánh yêu cầu kéo (pull request) riêng tư và kích hoạt các quy trình làm việc Gitea Actions riêng tư.
Phân tích Lỗ hổng CVE Gitea và Đánh giá CVSS
Lỗ hổng này được theo dõi dưới mã định danh CVE-2026-58443. Nó ảnh hưởng đến các phiên bản Gitea lên đến v1.26.4 và đã được khắc phục trong phiên bản v1.27.0.
Lỗi tồn tại trong điểm cuối API cập nhật yêu cầu kéo của Gitea:
POST /api/v1/repos/{public-owner}/{public-repo}/pulls/{index}/updateTheo nguyên tắc bảo mật, một token bị hạn chế chỉ truy cập kho lưu trữ công khai, với phạm vi write:repository, không được phép truy cập hoặc sửa đổi kho lưu trữ riêng tư.
Tuy nhiên, những kẻ tấn công có thể khai thác tuyến đường yêu cầu kéo công khai để đẩy các thay đổi từ một kho lưu trữ gốc công khai vào một nhánh đầu yêu cầu kéo riêng tư.
Điều này tạo ra một sự bỏ qua ủy quyền (authorization bypass) vì Gitea xác thực hạn chế của token dựa trên kho lưu trữ gốc công khai được đặt tên trong tuyến API.
Mặc dù ứng dụng sau đó kiểm tra quyền truy cập vào kho lưu trữ đầu riêng tư bằng cách sử dụng các quyền dựa trên vai trò thông thường của tài khoản người dùng, nhưng nó không áp dụng lại hạn chế chỉ công khai của token đang hoạt động.
Do đó, một token không thành công khi cố gắng ghi trực tiếp vào một kho lưu trữ riêng tư vẫn có thể sửa đổi một nhánh riêng tư thông qua chức năng cập nhật yêu cầu kéo.
Mức độ nghiêm trọng của CVE-2026-58443
Theo báo cáo từ GitHub Advisory (GHSA-xxjv-752h-3vp2), lỗ hổng CVE Gitea này được xếp hạng CVE nghiêm trọng với điểm CVSS là 9.6 (CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:N/I:H/A:H).
Điểm số này cho thấy nó có thể bị khai thác từ xa với đặc quyền thấp và không cần tương tác của người dùng, chủ yếu ảnh hưởng đến tính toàn vẹn (Integrity) và tính khả dụng (Availability) của hệ thống.
Chi tiết Khai thác và Tác động Hệ thống
Các nhà nghiên cứu bảo mật đã chứng minh rằng kẻ tấn công có thể tạo nội dung trong một kho lưu trữ gốc công khai.
Sau đó, kẻ tấn công có thể gọi điểm cuối cập nhật dễ bị tổn thương cho một yêu cầu kéo nhắm mục tiêu vào một nhánh đầu riêng tư.
Gitea sẽ hợp nhất (merge) hoặc tái cơ sở (rebase) các commit từ kho lưu trữ công khai vào nhánh riêng tư đó ở phía máy chủ.
Vấn đề trở nên nghiêm trọng hơn khi Gitea Actions được bật trong kho lưu trữ đầu riêng tư bị ảnh hưởng bởi lỗ hổng CVE Gitea này.
Một cú đẩy thành công ở phía máy chủ có thể kích hoạt các quy trình làm việc được cấu hình cho các sự kiện đẩy trong kho lưu trữ riêng tư. Trong bằng chứng khái niệm (proof of concept), commit được tiêm vào đã khởi động một quy trình làm việc riêng tư phù hợp, tạo ra một ActionRun và công việc liên quan.
Điều kiện Tiên quyết cho Tấn công
Kẻ tấn công cần một token công khai hợp lệ với phạm vi ghi kho lưu trữ (repository write scope).
Tài khoản người dùng liên kết với token này cũng phải có quyền ghi thông thường trên nhánh đầu yêu cầu kéo riêng tư.
Ngoài ra, cuộc tấn công yêu cầu một kho lưu trữ gốc công khai và một mối quan hệ yêu cầu kéo hiện có cho phép cập nhật từ nhánh gốc đến nhánh đầu riêng tư.
Điều này có nghĩa là lỗ hổng không cấp quyền truy cập ẩn danh vào các kho lưu trữ riêng tư.
Tuy nhiên, nó làm suy yếu một ranh giới bảo mật token quan trọng. Các tổ chức có thể cấp token chỉ dành cho công khai để hạn chế hậu quả của việc vô tình lộ lọt hoặc lạm dụng trong tự động hóa.
Lỗ hổng CVE Gitea này cho phép một token bị hạn chế như vậy thực hiện thao tác ghi vào kho lưu trữ riêng tư trong các điều kiện yêu cầu kéo cụ thể.
Khuyến nghị Cập nhật Bản vá và Biện pháp Giảm thiểu
Các quản trị viên Gitea nên cập nhật bản vá ngay lập tức lên phiên bản v1.27.0.
Cho đến khi các bản vá được triển khai, hãy xem xét các token chỉ dành cho công khai có quyền ghi kho lưu trữ.
Hạn chế khả năng cập nhật yêu cầu kéo và kiểm toán các mối quan hệ phân nhánh (fork) và yêu cầu kéo từ công khai sang riêng tư.
Các nhóm cũng nên kiểm tra nhật ký Gitea Actions để tìm bất kỳ quy trình làm việc nào được kích hoạt bởi sự kiện đẩy không mong muốn trong các kho lưu trữ riêng tư.
Hãy đặc biệt chú ý đến các quy trình làm việc được khởi tạo sau hoạt động API cập nhật yêu cầu kéo liên quan đến các kho lưu trữ gốc công khai.
Lỗ hổng CVE Gitea này được phân loại là CWE-863: Incorrect Authorization.
Báo cáo ghi nhận nhà nghiên cứu ohxorud-dev đã báo cáo vấn đề này, với bircni đã công bố tư vấn bảo mật.










