Когда Open5GS UPF получает запрос на установление сеанса PFCP, он сохраняет связанные значения для создания ответа на установление сеанса P…
Когда Open5GS UPF получает запрос на установление сеанса PFCP, он сохраняет связанные значения для создания ответа на установление сеанса PFCP. После того как UPF получает запрос, он получает f_teid_len из входящего сообщения, а затем использует его для копирования данных из входящего сообщения в struct f_teid без проверки максимальной длины. Если pdi.local_f_teid.len превышает максимальную длину struct f_teid, memcpy() перезаписывает поля (например, f_teid_len) после f_teid в структуре pdr. После анализа запроса UPF начинает строить ответ. F_teid_len с его перезаписанным значением используется в качестве длины для memcpy(). Происходит ошибка сегментации в результате memcpy(), если это перезаписанное значение достаточно велико.
Программный продукт вызывает потенциально опасную функцию, которая может привести к возникновению уязвимости при некорректном использовании, хотя функция допускает и безопасное применение.
https://cwe.mitre.org/data/definitions/676.html →Открыть в коллекции CWE →