FreeBSD-s on avastatud haavu (CVE-2022-23093) ping utiliidis, mis kuulub põhitoote hulka. Probleem võib potentsiaalselt viia koodi kaugteostamiseni root-õigustega, kui kontrollitakse välise hosti kaudu, mida haldab ründaja. Parandus on pakkuda FreeBSD värskendustes 13.1-RELEASE-p5, 12.4-RC2-p2 ja 12.3-RELEASE-p10. Kas teised BSD süsteemid on haavatavad, pole veel selge (raporteid NetBSD, DragonFlyBSD ja OpenBSD haavatavuste kohta pole veel esitatud).
Haavatavus on põhjustatud puhver üleujutusest ICMP-sõnumite analüüsi koodis, mis saabuvad vastuseks kontrollpäringule. ICMP-sõnumite saatmise ja vastuvõtmise kood pingis kasutab raw-sokette ja töötab välja kõrgendatud privileegidega (utiliit on varustatud setuid root lipuga). Vastuse töötlemine toimub pingis, rekonstruerides saadud IP- ja ICMP-pakettide pealkirju, mis saavad raw-soketist. Eraldatud IP- ja ICMP-pealkirjad kopeeritakse funktsiooniga pr_pack() puhvidesse, mitte arvestades, et IP-pealkirja järel võib paketis esineda täiendavaid laiendatud pealkirju.
Sarnased päised eraldatakse paketist ja lisatakse päiste plokki, kuid neid ei arvestata puhversuva suuruse arvutamisel. Kui host vastab saadetud ICMP-päringule paketi lisapäistega, salvestatakse nende sisu puhvri piiridest väljapoole steki. Selle tulemusena saab ründaja kirjutada steki kuni 40 baitiväärt abitoodet, mis potentsiaalselt võimaldab oma koodi käivitada. Probleemi ohtlikkust leevendab see, et vea ilmnemise hetkel on protsess isoleeritud süsteemi kutsungite olekus (capability mode), mis keerustab juurdepääsu ülejäänud süsteemile pärast haavatavuse ärakasutamist.
Allikas: opennet.ru
