Në utilitarin , i përdorur për organizimin e ekzekutimit të komandave në emër të përdoruesve të tjerë, vulneraibiliteti (), e cila lejon që të rrisni privilegjet tuaja në sistem deri në përdoruesin root. Problemi shfaqet që nga versioni sudo 1.7.1 vetëm kur përdoret në skedarin /etc/sudoers opsioni «pwfeedback», i cili është i çaktivizuar nga e drejta, por aktivizohet në disa distribucione, si Linux Mint dhe Elementary OS. Problemi është zgjidhur në versionin , i publikuar disa orë më parë. Në distribucionet, dobësia ende mbetet e pazgjidhur.
Opsioni «pwfeedback» aktivizon shfaqjen e simbolit «*» pas çdo simboli të futur gjatë hyrjes së fjalëkalimit. Ndërsa për në realizimin e funksionit getln(), të caktuar në skedarin tgetpass.c, një varg i kaluar nga rrjedha standarde e hyrjes (stdin) shumë i madh mund të mos ketë vend në memorie të ndarë dhe të mbishkruajë të dhëna të tjera në stack. Mbishkarkimi ndodh gjatë ekzekutimit të kodit sudo me privilegje root.
Kjo është thelbi i problemit, pasi kur përdoret në procesin e input-it simboli special ^U (pastrimi i rreshtit) dhe ndodhi një dështim i operacionit të shkrimit, kodi i përgjegjshëm për pastrimin e simboleve të shfaqura «*» rikthen të dhënat mbi madhësinë e dispozitivit, por nuk e rikthen në gjendjen e saj të mëparshme treguesin e pozicionit aktual në dispozitiv. Një faktor tjetër që ndihmon në shfrytëzim është mungesa e çaktivizimit automatik të modit «pwfeedback» kur të dhënat vijnë jo nga terminali, por përmes një kanali hyrës (kjo mangësi lejon krijimin e kushteve për ndodhi të dështimit të shkrimit, për shembull, në sistemet me një drejtim gabimi ndodh gjatë përpjekjes për të shkruar jashtë fundi të kanalit për lexim).
Duke qenë se sulmuesi mund të kontrollojë plotësisht përsëritjen e të dhënave në stak, krijimi i një eksploitit që lejon rritjen e privilegjeve në përdoruesin root nuk paraqet vështirësi. Problemi mund të shfrytëzohet nga çdo përdorues, pavarësisht nga të drejtat për përdorimin e sudo dhe prania e konfigurimeve specifike për përdoruesin në sudoers. Për të bllokuar problemin, duhet të siguroheni që në /etc/sudoers nuk ka konfigurim «pwfeedback» dhe, nëse është e nevojshme, ta çaktivizoni atë («Defaults !pwfeedback»). Për të kontrolluar praninë e problemit, mund të ekzekutoni kodin:
$ perl -e âprint((«A» x 100 . «\x{00}») x 50)â | sudo -S id
Password: Gabim segmentimi
Burimi: opennet.ru
