በOpenBSD IPv6 ቁልል ውስጥ የርቀት ተጋላጭነት

በOpenBSD ውስጥ ለIPv6 አድራሻ ራስ-ማዋቀር (IPv6 Stateless Address Autoconfiguration፣ RFC 4862) ኃላፊነት ባለው የጀርባ ሂደት slaacd፣ ልዩ የተነደፈ የአይፒv6 ራውተር ማስታወቂያ (RA፣ ራውተር ማስታወቂያ) ሲደርስ ወደ ቋት ፍሰት የሚመራ ተጋላጭነት ተለይቷል። .

መጀመሪያ ላይ የIPv6 አድራሻ ራስ-ማዋቀር ተግባር በከርነል ደረጃ ተተግብሯል፣ ነገር ግን ከOpenBSD 6.2 ጀምሮ ወደ ልዩ ልዩ የዝላይድ ሂደት ተወስዷል። ይህ ሂደት የ RS (ራውተር ሶሊሲቴሽን) መልዕክቶችን የመላክ እና የ RA (ራውተር ማስታወቂያ) ምላሾችን ስለ ራውተር እና የአውታረ መረብ ግንኙነት መለኪያዎች መረጃ የመተንተን ሃላፊነት አለበት።

በየካቲት ወር slaacd 7 አገልጋዮች በRDNSS (ሪከርሲቭ ዲ ኤን ኤስ አገልጋይ) ዝርዝር ውስጥ ከተገለጹ እንዲበላሽ ያደረገውን ስህተት አስተካክሏል። ይህ ቁጥጥር በ RA መልእክቶች ውስጥ መስኮችን በሚተነተንበት ጊዜ ለሚከሰቱ ሌሎች ስህተቶች የስላክ ኮድን ለመመርመር የሞከሩ የገለልተኛ ተመራማሪዎችን ትኩረት ስቧል። ትንታኔው በኮዱ ውስጥ ሌላ ችግር እንዳለ አሳይቷል፣ እሱም ራሱን የገለጠው የዲ ኤን ኤስ ኤስ ኤል (ዲ ኤን ኤስ መፈለጊያ ዝርዝር) መስክ፣ የጎራ ስሞች ዝርዝር እና የዲ ኤን ኤስ አስተናጋጅ አብነቶችን ያካትታል።

በዲ ኤን ኤስ ኤል ዝርዝር ውስጥ ያለው እያንዳንዱ ስም ባዶ ገዳቢ እና ጣልቃ ባለ አንድ ባይት መለያዎችን በመጠቀም የተመሰጠረ ሲሆን ይህም የሚከተለውን የውሂብ መጠን የሚወስን ነው። ተጋላጭነቱ የተፈጠረው በዝርዝሩ የመመርመሪያ ኮድ ውስጥ፣ መጠኑ ያለው መስክ በተፈረመ የኢንቲጀር ዓይነት ("len = data[pos]") ወደ ተለዋዋጭ በመገለበጡ ነው። በዚህ መሠረት አንድ እሴት በመስክ ላይ በጣም ጉልህ የሆነ ቢት ስብስብ ከተገለጸ ይህ ዋጋ በሁኔታዊ ኦፕሬተር ውስጥ እንደ አሉታዊ ቁጥር እና የሚፈቀደው ከፍተኛ መጠን ያለው ቼክ (“ከ (len> 63 || len + pos) ሆኖ ይታያል። + 1 > datalen) {“) አይሰራም፣ ይህም ወደ memcpy ለመደወል የሚወስደው የተቀዳው ዳታ መጠን ከቋት መጠን በላይ በሆነ መለኪያ ነው።

በOpenBSD IPv6 ቁልል ውስጥ የርቀት ተጋላጭነት
በOpenBSD IPv6 ቁልል ውስጥ የርቀት ተጋላጭነት


ምንጭ: opennet.ru

አስተያየት ያክሉ