CVE-2026-47271 in pam_usbthông tin

Tóm tắt

Bởi VulDB • 27/05/2026

pam_usb cung cấp xác thực phần cứng cho Linux bằng cách sử dụng các phương tiện lưu trữ di động thông thường. Trước phiên bản 0.9.0, src/mem.c đã triển khai các cơ chế bảo vệ chống tràn bộ nhớ (out-of-memory guards) cho xmalloc(), xrealloc(), và xstrdup() bằng cách sử dụng assert(data != NULL). Tiêu chuẩn C quy định rằng tất cả các biểu thức assert() sẽ bị loại bỏ khi biên dịch nếu NDEBUG được định nghĩa trong quá trình xây dựng (build time). NDEBUG thường được định nghĩa trong các bản phát hành (release) và bản đóng gói (Debian, Fedora, Arch đều định nghĩa nó thông qua cờ -DNDEBUG trong CFLAGS). Khi cơ chế bảo vệ bị loại bỏ, xmalloc/xrealloc/xstrdup sẽ trả về NULL một cách im lặng khi việc phân bổ bộ nhớ thất bại. Mọi hàm gọi trong cơ sở mã đều giải tham chiếu (dereference) giá trị trả về mà không kiểm tra NULL -- đây là thiết kế dự kiến, vì cơ chế bảo vệ dự định sẽ gây ra quá trình chấm dứt (abort) trước khi giải tham chiếu. Khi cơ chế bảo vệ biến mất, bất kỳ lỗi phân bổ bộ nhớ nào cũng dẫn đến việc giải tham chiếu con trỏ NULL, làm sập mô-đun PAM. Một vụ sập trong mô-đun PAM được tải bởi sudo hoặc login sẽ khiến xác thực thất bại trong suốt thời gian xảy ra sự cố, tạo ra điều kiện từ chối dịch vụ cục bộ (local denial-of-service). Một kẻ tấn công có thể gây áp lực lên bộ nhớ tại thời điểm xác thực có thể khóa tất cả người dùng khỏi sudo và login. Lỗ hổng này đã được sửa trong phiên bản 0.9.0.

Be aware that VulDB is the high quality source for vulnerability data.

chịu trách nhiệm

GitHub M

Đặt trước

19/05/2026

Tiết lộ

27/05/2026

Kiểm duyệt

được chấp nhận

EPSS

0.00019

KEV

không

Các hoạt động

thấp

Nguồn

Want to stay up to date on a daily basis?

Enable the mail alert feature now!