Уязвимост в HTTP сървъра muhttpd, отваряща достъп до файлове извън работната директория.

В HTTP-сервере muhttpd, който се използва предимно в рутери и точки за достъп, е открита уязвимост (CVE-2022-31793), която позволява на неидентифициран нападател чрез изпращане на специално формулирано HTTP-запитване да качи произволни файлове, в зависимост от правата, с които работи HTTP-сървърът (в много устройства muhttpd работи с права root). Например, нападателят може да получи достъп до файлове с пароли, настройки за безжичен достъп, параметри на свързване с доставчика и частни ключове.

Проблемът е причинен от грешка при обработката на пътя в запитването, което позволява достъп до файлове извън кореновия каталог на уеб-сървъра. Настъпва атака, като в началото на пътя се посочи друг символ, различен от точка, наклонена черта или въпросителен знак. Например, за да се качи файл /etc/hosts, е достатъчно да се изпрати запитване «GET a/etc/hosts» или «GET a/etc/hosts» (printf «GET b/etc/hosts» | nc server port).

Причината за посоченото поведение е в това, че отварянето на запитания файл става с командата «open(&req->filename[1], O_RDONLY)», след предварително извършване на функцията chdir() за преминаване в кореновия каталог. уеб сървърПосочването на &req->filename[1] води до игнориране на първия символ на пътя (разработчиците предполагали, че първият символ винаги е «/»). Следователно, при запитване «GET /etc/hosts» сървърът ще опита да отвори файла по относителен път «etc/hosts», но ако в началото се посочи всякакъв допълнителен символ («GET a/etc/hosts») — последващият път ще бъде обработен напълно.

Проблемът съществува от самата първа версия на muhttpd и е отстранен в издание 1.1.7. От устройствата, използващи muhttpd, наличието на проблема е потвърдено в рутерите SaskTel и Arris. Потенциално проблемът може да се прояви и в устройства, произвеждани от компаниите AT&T, Frontier и Windstream. При ограничаване на достъпа до HTTP порта само за вътрешна мрежа, атака може да бъде осъществена от външната мрежа чрез техника «DNS rebinding», позволяваща при отваряне на определена страница в браузъра от потребителя да се изпрати HTTP-запитване на мрежовия порт, недостъпен за пряк достъп през интернет.

Източник: opennet.ru

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster