FreeBSD:n mukana tulevan ping-apuohjelman etäkäyttöinen juurihaavoittuvuus

FreeBSD:ssä perusjakelun ping-apuohjelmassa on havaittu haavoittuvuus (CVE-2022-23093). Ongelma voi mahdollisesti johtaa koodin etäsuorittamiseen pääkäyttäjän oikeuksin, kun pingaattaan hyökkääjän hallitsemaa ulkoista isäntäkonetta. Korjaus toimitettiin FreeBSD-päivityksiin 13.1-RELEASE-p5, 12.4-RC2-p2 ja 12.3-RELEASE-p10. Ei ole vielä selvää, vaikuttaako tunnistettu haavoittuvuus muihin BSD-järjestelmiin (NetBSD:n, DragonFlyBSD:n ja OpenBSD:n haavoittuvuuksista ei ole vielä raportoitu).

Haavoittuvuuden aiheuttaa puskurin ylivuoto vahvistuspyyntöön saatujen ICMP-sanomien jäsennyskoodissa. Koodi ICMP-sanomien lähettämiseen ja vastaanottamiseen pingissä käyttää raaka-socketteja ja se suoritetaan korotetuilla oikeuksilla (apuohjelman mukana tulee setuid root -lippu). Vastaus käsitellään ping-puolella raaka-socketista vastaanotettujen pakettien IP- ja ICMP-otsikoiden rekonstruoinnin kautta. Valitut IP- ja ICMP-otsikot kopioidaan puskureihin pr_pack()-toiminnolla ottamatta huomioon, että IP-otsikon jälkeen paketissa voi olla muita laajennettuja otsikoita.

Tällaiset otsikot erotetaan paketista ja sisällytetään otsikkolohkoon, mutta niitä ei oteta huomioon puskurin kokoa laskettaessa. Jos isäntä vastauksena lähetettyyn ICMP-pyyntöön palauttaa paketin lisäotsikoineen, niiden sisältö kirjoitetaan alueelle, joka on pinon puskurin rajan ulkopuolella. Tämän seurauksena hyökkääjä voi ylikirjoittaa jopa 40 tavua pinossa olevaa dataa, mikä saattaa mahdollistaa koodinsa suorittamisen. Ongelman vakavuutta lieventää se, että prosessi on virheen ilmetessä järjestelmäpuhelun eristäytymisen tilassa (kykytila), mikä vaikeuttaa pääsyä muuhun järjestelmään haavoittuvuuden hyödyntämisen jälkeen. .

Lähde: opennet.ru

Lisää kommentti