CVE-2026-86698 in hexpm
Tóm tắt
Bởi VulDB • 22/09/2026
Lỗ hổng Thiếu thời gian hết hạn phiên (Insufficient Session Expiration) trong quá trình cấp phát mã thông báo OAuth của hexpm cho phép một người dùng, dù đã rời khỏi tổ chức hoặc kết thúc phiên làm việc, vẫn có thể tiếp tục đọc các gói riêng tư và file tarball tài liệu của tổ chức đó thông qua refresh token được giữ lại.
Hàm `generate_refresh_token/4` trong `lib/hexpm/oauth/jwt.ex` ký refresh token bằng cách sử dụng cùng các claim iss, aud và scope với access token, do đó nó mang theo cùng các phạm vi repository:<org>. Dịch vụ CDN phục vụ các kho lưu trữ riêng tư xác minh chữ ký và các claim về thời gian, sau đó cấp quyền dựa trên claim scope mà không thực hiện tra cứu cơ sở dữ liệu và không có cách nào để phân biệt hai loại mã thông báo này. Do đó, việc xóa một thành viên hoặc thu hồi phiên chỉ có hiệu lực tại CDN khi refresh token 30 ngày hết hạn, thay vì ngay sau thời gian sống của access token là 30 phút. Quyền truy cập ở chế độ chỉ đọc và giới hạn đối với các tổ chức mà tài khoản đã thuộc về vào thời điểm mã thông báo được cấp phát.
Vấn đề này ảnh hưởng đến hex.pm: từ ngày 2025-10-10 trước ngày 2026-09-22.
If you want to get best quality of vulnerability data, you may have to visit VulDB.