Рањивост у мрежним библиотекама Руст и Го језика која вам омогућава да заобиђете верификацију ИП адресе

У стандардним библиотекама Руст и Го језика идентификоване су рањивости у вези са нетачном обрадом ИП адреса са окталним цифрама у функцијама рашчлањивања адреса. Рањивости омогућавају да се заобиђу провере валидних адреса у апликацијама, на пример, да се организује приступ адресама интерфејса повратне петље (127.ккк) или интранет подмрежама приликом извођења ССРФ (Фалсификовање захтева на страни сервера) напада. Рањивости настављају циклус проблема који су претходно идентификовани у библиотекама ноде-нетмаск (ЈаваСцрипт, ЦВЕ-2021-28918, ЦВЕ-2021-29418), привате-ип (ЈаваСцрипт, ЦВЕ-2020-28360), ипаддресс (Питхон, ЦВЕ- 2021-29921 ), Дата::Валидате::ИП (Перл, ЦВЕ-2021-29662) и Нет::Нетмаск (Перл, ЦВЕ-2021-29424).

Према спецификацији, вредности низа ИП адресе које почињу са нулом треба да се тумаче као октални бројеви, али многе библиотеке то не узимају у обзир и једноставно одбацују нулу, третирајући вредност као децимални број. На пример, број 0177 у окталном облику једнак је 127 у децималу. Нападач може захтевати ресурс тако што ће навести вредност „0177.0.0.1“, која у децималном запису одговара „127.0.0.1“. Ако се користи проблематична библиотека, апликација неће открити да се адреса 0177.0.0.1 налази у подмрежи 127.0.0.1/8, али у ствари, приликом слања захтева, може приступити адреси „0177.0.0.1“, коју мрежне функције ће обрадити као 127.0.0.1. На сличан начин можете преварити проверу приступа интранет адресама тако што ћете навести вредности попут „012.0.0.1“ (еквивалентно „10.0.0.1“).

У Русту, стандардна библиотека „стд::нет“ је била погођена проблемом (ЦВЕ-2021-29922). Парсер ИП адресе ове библиотеке је одбацио нулу испред вредности у адреси, али само ако није наведено више од три цифре, на пример, „0177.0.0.1“ би се схватило као неважећа вредност и нетачан резултат ће бити враћен као одговор на 010.8.8.8 и 127.0.026.1. Апликације које користе стд::нет::ИпАддр приликом рашчлањивања кориснички специфицираних адреса су потенцијално подложне ССРФ (фалсификовање захтева на страни сервера), РФИ (укључивање удаљених датотека) и ЛФИ (локално укључивање датотека) нападима. Рањивост је исправљена у грани Руст 1.53.0.

Рањивост у мрежним библиотекама Руст и Го језика која вам омогућава да заобиђете верификацију ИП адресе

У Го, стандардна библиотека „нет“ је погођена (ЦВЕ-2021-29923). Уграђена функција нет.ПарсеЦИДР прескаче водеће нуле пре окталних бројева уместо да их обрађује. На пример, нападач може да проследи вредност 00000177.0.0.1, која ће, када се провери у функцији нет.ПарсеЦИДР(00000177.0.0.1/24), бити рашчлањена као 177.0.0.1/24, а не 127.0.0.1/24. Проблем се такође манифестује у Кубернетес платформи. Рањивост је исправљена у Го издању 1.16.3 и бета 1.17.

Рањивост у мрежним библиотекама Руст и Го језика која вам омогућава да заобиђете верификацију ИП адресе


Извор: опеннет.ру

Додај коментар