Fjernudnyttelig root-sårbarhed i ping-værktøjet inkluderet med FreeBSD

I FreeBSD er en sårbarhed (CVE-2022-23093) blevet identificeret i ping-værktøjet inkluderet i den grundlæggende distribution. Problemet kan potentielt føre til fjernudførelse af kode med root-rettigheder ved ping af en ekstern vært styret af en angriber. En rettelse blev leveret i FreeBSD-opdateringer 13.1-RELEASE-p5, 12.4-RC2-p2 og 12.3-RELEASE-p10. Det er endnu ikke klart, om andre BSD-systemer er påvirket af den identificerede sårbarhed (der er endnu ingen rapporter om sårbarheder i NetBSD, DragonFlyBSD og OpenBSD).

Sårbarheden er forårsaget af et bufferoverløb i parsingkoden for ICMP-meddelelser modtaget som svar på en bekræftelsesanmodning. Koden til at sende og modtage ICMP-meddelelser i ping bruger rå sockets og udføres med forhøjede privilegier (værktøjet kommer med setuid-rodflaget). Svaret behandles på ping-siden gennem rekonstruktionen af ​​IP- og ICMP-headerne for de pakker, der modtages fra den rå socket. De valgte IP- og ICMP-headere kopieres til buffere af pr_pack(), uden at tage højde for, at yderligere udvidede headere kan være til stede i pakken efter IP-headeren.

Sådanne headere udtrækkes fra pakken og inkluderes i headerblokken, men tages ikke i betragtning ved beregning af bufferstørrelsen. Hvis værten, som svar på en sendt ICMP-anmodning, returnerer en pakke med yderligere overskrifter, vil deres indhold blive skrevet til et område uden for buffergrænsen på stakken. Som et resultat kan en angriber overskrive op til 40 bytes data på stakken, hvilket potentielt giver deres kode mulighed for at køre. Alvoren af ​​problemet afbødes af det faktum, at processen på det tidspunkt, hvor fejlen opstår, er i en tilstand af systemopkaldsisolering (kapacitetstilstand), hvilket gør det vanskeligt at få adgang til resten af ​​systemet efter at have udnyttet sårbarheden .

Kilde: opennet.ru

Tilføj en kommentar