Në serverin HTTP muhttpd, i përdorur kryesisht në routera dhe pika qasje, është zbuluar një dobësi (CVE-2022-31793), e cila i lejon një sulmuesi të paautorizuar, duke dërguar një kërkesë HTTP të formuluar veçmas, të ngarkohet skedarë të rastit, në përputhje me të drejtat e aksesit nën të cilat operon serveri HTTP (në shumë pajisje muhttpd ekzekutohet me të drejta root). Për shembull, sulmuesi mund të fitojë qasje në skedarët me fjalëkalime, konfigurimet e qasjes pa tel, parametrat e lidhjes me ofruesin dhe çelësat privatë.
Problemi është shkaktuar nga një gabim gjatë trajtimit të rrugës në kërkesë, që lejon qasjen në skedarët jashtë katalogut rrënjë të serverit web. Sulmi përfshin nënshkrimin e një simboli të shtuar para fillimit të rrugës, i ndryshëm nga pika, barra dhe pyetja. Për shembull, për të ngarkuar skedarin /etc/hosts, mjafton të dërgoni një kërkesë "GET a/etc/hosts" ose "GET a/etc/hosts" (printf "GET b/etc/hosts\n\n" | nc server port).
Arsyeja e këtij sjelljeje është se hapja e skedarit të kërkuar bëhet me komandën "open(&req->filename[1], O_RDONLY)" pas ekzekutimit të funksionit chdir() për të kaluar në rrënjë. server webPërcaktimi &req->filename[1] çon në injorimin e simbolit të parë të rrugës (zhvilluesit supozonin se simboli i parë do të ishte gjithmonë "/"). Prandaj, kur kërkohet "GET /etc/hosts", serveri do të përpiqet të hapë skedarin në rrugën relative "etc/hosts", por nëse përmend një simbol të shtuar atëherë ("GET a/etc/hosts") - rruga e mëpasshme do të trajtohet plotësisht.
Problemi është i pranishëm që nga versioni më i parë i muhttpd dhe është eliminuar në lëshimin 1.1.7. Nga pajisjet që përdorin muhttpd, prania e problemit është e konfirmuar në routerat SaskTel dhe Arris. Potencialisht, problemi gjithashtu mund të shfaqet në pajisjet e prodhuara nga AT&T, Frontier dhe Windstream. Kur qasja në portin HTTP kufizohet vetëm për rrjetin e brendshëm, sulmi mund të kryhet nga rrjeti i jashtëm nëpërmjet teknikës "DNS rebinding", që lejon që, ndërsa përdoruesi hap një faqe specifike në shfletues, të dërgohet një kërkesë HTTP në portin e rrjetit, i paqasshëm për qasje të drejtpërdrejtë përmes internetit.
Burimi: opennet.ru
