mirror of
https://github.com/ipmitool/ipmitool.git
synced 2025-05-10 18:47:22 +00:00
session: Fix buffer overflow in ipmi_get_session_info
Partial fix for CVE-2020-5208, see https://github.com/ipmitool/ipmitool/security/advisories/GHSA-g659-9qxw-p7cp The `ipmi_get_session_info` function does not properly check the response `data_len`, which is used as a copy size, allowing stack buffer overflow.
This commit is contained in:
parent
840fb1cbb4
commit
41d7026946
@ -309,8 +309,10 @@ ipmi_get_session_info(struct ipmi_intf * intf,
|
||||
}
|
||||
else
|
||||
{
|
||||
memcpy(&session_info, rsp->data, rsp->data_len);
|
||||
print_session_info(&session_info, rsp->data_len);
|
||||
memcpy(&session_info, rsp->data,
|
||||
__min(rsp->data_len, sizeof(session_info)));
|
||||
print_session_info(&session_info,
|
||||
__min(rsp->data_len, sizeof(session_info)));
|
||||
}
|
||||
break;
|
||||
|
||||
@ -341,8 +343,10 @@ ipmi_get_session_info(struct ipmi_intf * intf,
|
||||
break;
|
||||
}
|
||||
|
||||
memcpy(&session_info, rsp->data, rsp->data_len);
|
||||
print_session_info(&session_info, rsp->data_len);
|
||||
memcpy(&session_info, rsp->data,
|
||||
__min(rsp->data_len, sizeof(session_info)));
|
||||
print_session_info(&session_info,
|
||||
__min(rsp->data_len, sizeof(session_info)));
|
||||
|
||||
} while (i <= session_info.session_slot_count);
|
||||
break;
|
||||
|
Loading…
x
Reference in New Issue
Block a user