
Առանց սեղմման աղավաղված WAP Push SMS-ը խափանում է Android-ի հեռախոսակապը
Աղավաղված WAP Push SMS-ը կարող է հեռակա կերպով խափանել com.android.phone-ը Android-ում, ընդհատելով ընթացիկ զանգերը, այդ թվում արտակարգ իրավիճակների զանգերը, առանց օգտատիրոջ մասնակցության, ըստ հետազոտողի, որը նշում է, որ Google-ը այն դասակարգել է որպես ոչ անվտանգության խնդիր։
Աղավաղված WAP Push SMS-ը կարող է հեռակա կերպով խափանել com.android.phone-ը Android-ում առանց օգտատիրոջ մասնակցության, ըստ անկախ հետազոտող Mark Blaszczyk-ի զեկույցի։ Խափանումը կարող է ընդհատել ընթացիկ զանգերը, այդ թվում արտակարգ իրավիճակների զանգերը, իսկ կրկնվող ուղարկումը կարող է վնասել SMS պահեստը և սարքը դարձնել մշտապես անօգտագործելի։ Google-ը վերանայումից հետո խնդիրը դասակարգել է որպես ոչ անվտանգության խնդիր։
Տեխնիկական պատճառը
Երբ Android-ը ստանում է WAP Push հաղորդագրություն, WapPushOverSms.decodeWapPdu()-ը WSP վերնագրի երկարությունը կարդում է որպես uintvar։ Արժեքը վերադառնում է որպես long, առանց միջակայքի ստուգման վերածվում է int-ի և օգտագործվում է նոր բայթային զանգվածի չափ սահմանելու համար։ 88 80 80 80 00 հինգ բայթանոց uintvar-ը վերծանվում է որպես 0x80000000, որը դառնում է -2147483648 որպես նշանային 32-բիթանոց int։ new byte[-2147483648] բաշխումը հեռախոսակապի հիմնական շղթայում առաջացնում է չբռնված NegativeArraySizeException, որը սպանում է com.android.phone-ը։ Հաղորդագրությունը հասնում է որպես տվյալների SMS և օգտատիրոջը չի ցուցադրվում։
Ազդեցությունը և վերականգնումը
Հաղորդագրությունը առանց սեղմման է և լուռ։ Messages-ում ոչինչ չի հայտնվում, և ուղարկողի համարը չի ցուցադրվում։ Զանգերը ընդհատվում են, այդ թվում արտակարգ իրավիճակների զանգերը, ընթացիկ ձայնային զանգերը ավարտվում են պրոցեսի վերագործարկման հետ։ Յուրաքանչյուր հաղորդագրության համար հեռախոսակապը անհասանելի է մոտ 1-ից 2 վայրկյան, մինչ com.android.phone-ը վերագործարկվում է։ Օպերատորի կրկնակի ուղարկումը կարող է կրկնել խափանումը. փորձարկման ընթացքում մեկ հաղորդագրությունը մինչև մեկ շաբաթ պարբերաբար ընդհատումներ է առաջացրել, իսկ մոտ 20 հաղորդագրությունը սարքը երկար ժամանակ անօգտագործելի է դարձրել։ Արագ կրկնվող ուղարկումը կարող է վնասել SMS պահեստի հետևում գտնվող SQLite տվյալների բազան, ինչը հանգեցնում է com.android.phone-ի խափանման յուրաքանչյուր բեռնման ժամանակ։ Վերականգնման համար պահանջվել է ֆիզիկական SIM-ը հանել ու տեղադրել ոչ Android սարքի մեջ, որպեսզի կրկնված հաղորդագրությունները հաստատվեն, ապա մաքրել SMS գրառումները ADB-ով։ eSIM-ի դեպքում վերականգնումը զգալիորեն ավելի դժվար կլիներ։
Զեկույցը նշում է, որ այս հարձակման տակ գտնվող սարքը չի կարող հուսալիորեն զանգահարել 000։ Այն վկայակոչում է ավստրալական օպերատորների պարտավորությունները Telecommunications (Emergency Call Service) Determination-ի ներքո, որը կառավարում է ACMA-ն, և նշում է, որ Telstra-ն ասում է, թե պարտավոր է արգելափակել հեռախոսները, որոնք այլևս չեն կարող զանգահարել 000, հաճախորդին ծանուցելով և սարքը արգելափակելով, եթե 28 օրվա ընթացքում ոչինչ չի արվում։
Բացահայտումը և կարգավիճակը
Mark Blaszczyk-ը զեկույցը ներկայացրել է 2026 թվականի մայիսի 5-ին Android and Google Devices VRP-ի միջոցով և երկու անգամ վերաներկայացրել է որպես սխալ տրիաժի բողոք։ Google-ը այն ընդունել է, 2026 թվականի հունիսի 20-ին փակել է որպես Won't Fix (Infeasible), վերաներկայացումը փակել է որպես Won't Fix (Not Reproducible) երեք րոպեի ընթացքում, իսկ 2026 թվականի հոկտեմբերի 29-ին կայացրել է վերջնական Won't Fix որոշում՝ մեջբերելով, որ այն չի հասնում լրջության շեմին և համարվում է Non-Security Issue (NSI)։ Բացահայտումը նշում է, որ այն պահվել է VRP-ի 90-օրյա պատուհանից դուրս։
Առաջարկվող ուղղումը WapPushOverSms.java-ում վերածումից առաջ միջակայքի ստուգումն է. արժեքը կարդալ որպես long, մերժել 0-ից փոքր կամ pdu.length-ից մեծ արժեքները, վերադարձնել սխալի արդյունք, ապա վերածել int-ի։ Փորձնական օրինակը և սկզբնական կոդը հրապարակված են GitHub-ում. զգուշացումը նշում է, որ այն նախատեսված է միայն լիազորված փորձարկման համար։
Աղբյուրներ: smsofdeath.com
SiTech — AI-ով հզորացված վեբ մշակում
Ստեղծում ենք արագ ու ժամանակակից կայքեր և AI-ը ներդնում իրական բիզնես գործընթացներում։ Ունե՞ք նախագիծ կամ հարց։ Ուրախ կլինենք օգնել։