Cisco անվտանգության հետազոտողներ
Խոցելիությունը կարող է օգտագործվել կոդը գործարկելու համար այն իրավիճակում, երբ հարձակվողը կարող է կազմակերպել փոփոխականի բացասական արժեքի ձևավորումը, որի միջոցով փոխանցվում է պատճենված տվյալների չափը (օրինակ, այն բացասական կլինի 2 ԳԲ-ից ավելի փոխանցման ժամանակ: տվյալները, սակայն հարձակման ժամանակ բուֆերային սահմաններից դուրս գալու համար անհրաժեշտ է փոխանցել առնվազն 4 ԳԲ): Memcpy() ֆունկցիան լայնորեն օգտագործվում է հավելվածներում, և ARMv7 պրոցեսորները տարածված են ավտոմոբիլային համակարգերում, շարժական, արդյունաբերական, սպառողական, կապի և ներկառուցված սարքերում, որոնք պոտենցիալ ենթարկվում են հարձակումների՝ օգտագործելով Bluetooth, HD Radio/DAB, USB, CAN ավտոբուս, Wi-Fi Fi-ը և տվյալների այլ արտաքին աղբյուրները (օրինակ, ցանցի միջոցով հասանելի ծառայություններն ու հավելվածները, որոնք ընդունում են մուտքային տվյալներ առանց չափի սահմանափակումների, կարող են հարձակման ենթարկվել):
Օրինակ՝ աշխատանքային շահագործման ստեղծումը՝ ավտոմեքենայի տեղեկատվական համակարգերում ներկառուցված HTTP սերվերի վրա հարձակվելու համար, որը հասանելի է ավտոմոբիլային Wi-Fi ցանցի միջոցով: Արտաքին հարձակվողը կարող է օգտագործել memcpy-ի խոցելիությունը այս սերվերում՝ ուղարկելով շատ մեծ GET հարցում և ստանալ արմատային մուտք դեպի համակարգ:
32-բիթանոց x86 համակարգերում խնդիրը չի երևում, քանի որ memcpy-ի ներդրումն այս ճարտարապետության համար ճիշտ է մեկնաբանում չափի փոփոխականը որպես size_t տեսակի անստորագիր ամբողջ արժեք (ասամբլեային լեզվով):
Ուղղումը հանգում է նրան, որ հավաքման հրահանգների օգտագործումը, որոնք գործում են ստորագրված օպերանդներով (bge և blt) անստորագիր գործընկերներով (blo և bhs) փոխարինելով:
Խնդիրը դեռ չի լուծվել
Source: opennet.ru