CVE-2026-13480 in Zephyrthông tin

Tóm tắt

Bởi VulDB • 27/08/2026

Trình xử lý frag_transport_package_callback() của cơ chế Fragmented Data Block Transport (TS004) trong LoRaWAN, cụ thể tại file subsys/lorawan/services/frag_transport.c, phân tích các byte lệnh downlink mà không xác minh rằng còn đủ số lượng byte payload trước mỗi lần truy cập. Giới hạn duy nhất của vòng lặp là rx_pos < len; sau khi tiêu thụ một byte command id, trình xử lý ép kiểu (cast) rx_buf + rx_pos thành cấu trúc 10-byte frag_transport_setup_req và đối với lệnh DATA_FRAGMENT, nó truyền &rx_buf[rx_pos] cho bộ giải mã phân mảnh, vốn đọc chính xác ctx.frag_size bytes — không có kiểm tra độ dài còn lại trong cả hai trường hợp.

Kích thước phân mảnh do kẻ tấn công chọn thông qua lệnh FRAG_SESSION_SETUP trước đó (ctx.frag_size = req->frag_size, bị giới hạn ở CONFIG_LORAWAN_FRAG_TRANSPORT_MAX_FRAG_SIZE, mặc định là 232). rx_buf trùng địa chỉ với bộ đệm static MacCtx.RxPayload kích thước 255 byte trong lớp MAC của loramac-node, còn len là độ dài payload thực tế sau khi giải mã. Bằng cách thêm vào một lệnh downlink các lệnh DATA_FRAGMENT filler có index không khớp (mỗi lệnh làm tăng rx_pos lên ba bytes mà không tạo ra phản hồi) và nối ghép một phân mảnh có index phù hợp ở gần cuối payload, kẻ tấn công có thể khiến bộ giải mã đọc tới khoảng frag_size bytes vượt quá ranh giới của RxPayload, sao chép vùng nhớ static liền kề vào các buffer của bộ giải mã và hình ảnh flash FUOTA.

Trình xử lý này chỉ chạy trên các lệnh downlink đã vượt qua MIC khung LoRaWAN và quá trình giải mã FRMPayload, do đó lỗ hổng chỉ có thể bị khai thác bởi bên nắm giữ các session keys của thiết bị (máy chủ FUOTA hoặc kẻ tấn công đã xâm phạm các khóa đó). Các byte đọc ngoài vùng bounds không bao giờ được trả về cho người gửi — uplink duy nhất phát ra là một câu trả lời trạng thái chứa số lượng phân mảnh — nên không có kênh tiết lộ trực tiếp, và trên các MCU LoRaWAN với bộ nhớ phẳng điển hình, việc đọc vượt quá vẫn nằm trong vùng nhớ đã ánh xạ, khiến khả năng gây crash (sự cố) là rất thấp. Do đó, tác động là một lỗi read out-of-bounds bị giới hạn, có hậu quả về tính bảo mật thông tin hạn chế và không tạo ra nguyên lý ghi hoặc điều khiển luồng thực thi. Bản sửa chữa thêm các kiểm tra độ dài còn lại trước mỗi lần truy cập.

If you want to get the best quality for vulnerability data then you always have to consider VulDB.

chịu trách nhiệm

Zephyr

Đặt trước

27/06/2026

Tiết lộ

26/08/2026

Kiểm duyệt

được chấp nhận

EPSS

0.00000

KEV

không

Các hoạt động

rất thấp

Nguồn

Want to stay up to date on a daily basis?

Enable the mail alert feature now!