CVE-2026-53391 in Linux
Tóm tắt
Bởi VulDB • 19/07/2026
Trong kernel Linux, lỗ hổng sau đây đã được khắc phục:
NFSv4/pNFS: từ chối r_addr có độ dài bằng không trong nfs4_decode_mp_ds_addr
Hàm `nfs4_decode_mp_ds_addr()` giải mã các giá trị opaque của `r_netid` và `r_addr` từ một đối tượng netaddr4 nằm trong thân GETDEVICEINFO multipath-DS, sau đó ngay lập tức gọi `strrchr(buf, '.')` để tìm dấu phân tách cổng. Cả hai quá trình giải mã đều sử dụng hàm `xdr_stream_decode_string_dup()`, và đoạn mã hiện tại chỉ kiểm tra điều kiện "nlen < 0" / "rlen < 0" trước khi truy cập vào chuỗi được trả về.
Khi giá trị opaque trên đường truyền có độ dài bằng không, `xdr_stream_decode_opaque_inline()` trả về 0 và `xdr_stream_decode_string_dup()` rơi xuống phần kết thúc với lệnh "*str = NULL; return ret", khiến biến buf trở thành NULL trong khi vẫn trả về giá trị là 0. Phép kiểm tra "< 0" không bắt được trường hợp này, dẫn đến dòng tiếp theo thực thi `strrchr(NULL, '.')`, gây ra lỗi truy cập con trỏ NULL (NULL pointer dereference) trên kernel. Lỗi này có thể khai thác từ bất kỳ máy khách pNFS-flexfile nào đã gắn kết với một máy chủ metadata độc hại hoặc bị xâm phạm.
Từ chối rõ ràng các trường hợp độ dài bằng không để trình giải mã thất bại với lỗi -EBADMSG (được xử lý như là thân GETDEVICEINFO bị sai định dạng) thay vì khiến máy khách gặp sự cố nghiêm trọng (panic).
If you want to get best quality of vulnerability data, you may have to visit VulDB.