Free5GC UPF страдает от отсутствия границ проверки SEID при обработке запросов на удаление сеансов PFCP. Неаутентированный удаленный злоумы…
Free5GC UPF страдает от отсутствия границ проверки SEID при обработке запросов на удаление сеансов PFCP. Неаутентированный удаленный злоумышленник может отправить запрос с очень большим SEID (например, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF), который вызывает преобразование целых чисел/подтека в LocalNode.DeleteSess() / LocalNode.Sess(), когда uint64 SEID преобразуется в int и используется в индексной арифметике. Это приводит к отрицательному индексу в n.sess и панике на время выполнения Go, что приводит к отказу в обслуживании (крах UPF). Проблема была воспроизведена на free5GC v4.1.0 с аварийами, наблюдаемыми в пути поиска/устранения сеанса в in in inter/pfcp/node.go; могут также быть затронуты другие версии. Аутентификация не требуется.
Продукт использует недоверенные входные данные при вычислении или использовании индекса массива, однако не проверяет или некорректно проверяет индекс, чтобы убедиться в том, что он ссылается на допустимую позицию в массиве.
https://cwe.mitre.org/data/definitions/129.html →Открыть в коллекции CWE →Атаки типа «Переполнение буфера» направлены против некорректной или отсутствующей проверки границ при операциях с буфером, которые, как правило, инициируются входными данными, внедрёнными злоумышленником. В результате злоумышленник получает возможность записывать данные за границами выделенных областей буфера в памяти, что приводит к аварийному завершению программы или, в зависимости от выбора злоумышленника, к перенаправлению потока исполнения.
https://capec.mitre.org/data/definitions/100.html →Открыть в коллекции CAPEC →