In setClientStateLocked of SurfaceFlinger.cpp, there is a possible out of bounds write due to a use after free. This could lead to local escalation of privilege with no additional execution privileges needed. User interaction is not needed for exploitation.
{ "vanir_signatures": [ { "digest": { "length": 308.0, "function_hash": "148854455244816904141629808056262942731" }, "id": "PUB-A-193034683-070cdc73", "source": "https://android.googlesource.com/platform/frameworks/native/+/a8c7c54eed57e5a4b56905a4fb00e27e25b1b908", "deprecated": false, "signature_version": "v1", "target": { "file": "services/surfaceflinger/Layer.cpp", "function": "extractLayerFromBinder" }, "signature_type": "Function" }, { "digest": { "length": 764.0, "function_hash": "130293978526721095055343248248164931332" }, "id": "PUB-A-193034683-432988f3", "source": "https://android.googlesource.com/platform/frameworks/native/+/a8c7c54eed57e5a4b56905a4fb00e27e25b1b908", "deprecated": false, "signature_version": "v1", "target": { "file": "services/surfaceflinger/Layer.cpp", "function": "Layer::setRelativeLayer" }, "signature_type": "Function" }, { "digest": { "threshold": 0.9, "line_hashes": [ "239402453879805974820221514929899196888", "2249085044513177693025040255682456257", "226345157174825149979105440303441858407", "13268908067441088285336305028466132062", "112091935413235430624711822683675802486", "225029701668452592244386154018306295060", "277572189605657307185401248928118138060", "219669145659572649728034698982296154536", "94441765663594011270865342380946982847", "74323979708334143926068579442598755407", "193788821048580266110294070658778600659", "296647607454635625776428477407160123115", "223936090731318599001442584936302837053" ] }, "id": "PUB-A-193034683-559d2e16", "source": "https://android.googlesource.com/platform/frameworks/native/+/a8c7c54eed57e5a4b56905a4fb00e27e25b1b908", "deprecated": false, "signature_version": "v1", "target": { "file": "services/surfaceflinger/SurfaceFlinger.h" }, "signature_type": "Line" }, { "digest": { "threshold": 0.9, "line_hashes": [ "225306940971149859754997434060906864893", "6962442468913351774715844956380190534", "179625925245624769655467472890004098774", "178712557885458808051994052757116474245", "57500976776301698093940671872786763994", "323481002034659072296792651226652396847", "35566303659113572604595042255255460944", "51864298357820387873168289895513169588", "154607271257312167751874117487651956353", "118326247183166808416632643915302236165", "50214010415513002184250466891761797279", "20727968245318005281300716163778375075", "157662469722496657335228128105167160105", "28303165143886896161884694133395623838", "303087693426676530330470730658327809406", "37538903106455159847944172283949152041", "317915974150158399236841457190156942990" ] }, "id": "PUB-A-193034683-59b9da9e", "source": "https://android.googlesource.com/platform/frameworks/native/+/a8c7c54eed57e5a4b56905a4fb00e27e25b1b908", "deprecated": false, "signature_version": "v1", "target": { "file": "services/surfaceflinger/SurfaceInterceptor.cpp" }, "signature_type": "Line" }, { "digest": { "length": 285.0, "function_hash": "190280804825596418843573860348017150566" }, "id": "PUB-A-193034683-608695c2", "source": "https://android.googlesource.com/platform/frameworks/native/+/a8c7c54eed57e5a4b56905a4fb00e27e25b1b908", "deprecated": false, "signature_version": "v1", "target": { "file": "services/surfaceflinger/Layer.cpp", "function": "Layer::setInputInfo" }, "signature_type": "Function" }, { "digest": { "length": 117.0, "function_hash": "210869673462791584966852221607700206295" }, "id": "PUB-A-193034683-675646a8", "source": "https://android.googlesource.com/platform/frameworks/native/+/a8c7c54eed57e5a4b56905a4fb00e27e25b1b908", "deprecated": false, "signature_version": "v1", "target": { "file": "services/surfaceflinger/SurfaceFlinger.cpp", "function": "SurfaceFlinger::fromHandle" }, "signature_type": "Function" }, { "digest": { "length": 528.0, "function_hash": "272397869756864511585901407042354871271" }, "id": "PUB-A-193034683-6c2bcd89", "source": "https://android.googlesource.com/platform/frameworks/native/+/a8c7c54eed57e5a4b56905a4fb00e27e25b1b908", "deprecated": false, "signature_version": "v1", "target": { "file": "services/surfaceflinger/SurfaceFlinger.cpp", "function": "SurfaceFlinger::onHandleDestroyed" }, "signature_type": "Function" }, { "digest": { "threshold": 0.9, "line_hashes": [ "136006072136364286030451714101063289554", "37885445453371406218133702823075601596", "144902293842621749154798219155681528334", "17167489456463945787529279788598170976", "38438209846733648038135248009325580343", "292004329668566787361512609336689332819", "167634453265103235302795215640246023976", "155472291971490582181828798537918678623", "149820680580176694431406729916008354716", "145940822595336290167236489780161960674", "202724038824256789684451275572112850503", "241467872763009047595648324782019049264", "10091708412893233576477886080475815643", "2766523982644813870630938944756034312", "273061877606499572861151057485873373735", "270708242246297760663083940232702998476", "71393996832272237438156330610627666541", "109112431274242209742538158946042517863", "74275643563225076357676325107272933795", "69152958776646416940753459701778578530", "129683263321805956961470041965054686621", "46524083787953808101646894193511390849", "39896797484673782284311879636348978379", "164452682644643208993642331956545705873", "146546620116686766324279736950402761232", "102751599998869278005733960896790012595", "130599711656616654904211232685050482909", "100496892379360003895295596115922141851", "43214606916536267417661410022357656573", "329352217235652700427298558406364434686", "83919560248309412451529874261934986451", "73648893346148962600065841783807431679", "89778085805477558843696716084211082459", "140979369812248538635045666159972441110", "37813659987758821446922066962026899856", "85043170291534718682850576254465764728", "909835335659200388773556295053511519", "187394542648027054581644542904147451484", "237797113250768572897659021958567736260", "224845452778262664658006672673773083002", "277538684427090502016513850203927738191", "101174805359562870285053871465465366111", "296434369643084843306585402847894692334", "335282290052372085275078867439059538904", "255657060539628187845840042326061412235", "169518170621707652381701704337183352223", "149197169950953529472195273405535736149", "178905101917885354047822277651638030170", "170252744051276544756709934721862888796", "42207463470114370069681183239957908455", "213179858847220692546114735595066497979", "103114633972873767947200851920497983405", "214729183865059137688147169533018483573", "160997270959241678084898697629908322870", "73941123739552011957078085332501843006", "235604830328682315607232431977386138049", "12585500931071506999697251752454483799", "194342658522476755407175476620666292064", "87829346955865209621376591611111344704", "7297744059548570342777310951062656277", "63770852577913088377791142719328341571", "310969560748103874126455025029343021514", "332156213924422119224217121229822195439", "126976632900394201730671429233344242604", "135452257777181003704069165521506552603", "333857430071666233630483665479349949876", "17922504818346392580126872495161541075", "106921782673202069771762251030344068290", "298841092162327648665127528615817493617" ] }, "id": "PUB-A-193034683-6efdfeec", "source": "https://android.googlesource.com/platform/frameworks/native/+/a8c7c54eed57e5a4b56905a4fb00e27e25b1b908", "deprecated": false, "signature_version": "v1", "target": { "file": "services/surfaceflinger/SurfaceFlinger.cpp" }, "signature_type": "Line" }, { "digest": { "length": 252.0, "function_hash": "238514461389302230355808178521023634988" }, "id": "PUB-A-193034683-7bf37204", "source": "https://android.googlesource.com/platform/frameworks/native/+/a8c7c54eed57e5a4b56905a4fb00e27e25b1b908", "deprecated": false, "signature_version": "v1", "target": { "file": "services/surfaceflinger/SurfaceInterceptor.cpp", "function": "SurfaceInterceptor::getLayer" }, "signature_type": "Function" }, { "digest": { "threshold": 0.9, "line_hashes": [ "19324125944673929876317574983437657487", "16900380928425654835962543966915816434", "28860736293614418934226195182894854962", "43405743797557795834132066604651494940", "53110454057224839023518192984000517384", "61147810411074516790205295877503383223", "339666493182311818867657985482013197817", "289988273976525370635197998815477395780", "147447930624726277773736410382501647353", "83515080549718919754867058606010317420", "55986800092397743693966673432436847646", "65174026325499613114215567956773254583", "88887067396733216877118661843837852851", "115381819434878148430744623758650560898", "143816748848899746169392340051465753832", "266184913105125242606668138514865619305", "45313648379568129541186714961092023827", "145713029121759960842183002785636454809", "147068460252592959441033563908951256538", "174118747610928324696979176061129654548", "279260658765857506830230325178678207629", "179485207995446800727656766953970256323", "167784268963113179362930219122312644496", "281817805564705012356313136627439469187", "130647464686857805216855722063703665654", "75323933321313771532081015838036645651", "250131377566475651383186976983704887448", "215853296336233910372431323307679109967", "6619378808088534728825262515365547326", "175929151346973007231099330303207577603", "42423112775543014511243081025675071865", "164649599368892808287888606545152284670", "56703230976113798066592004472291570709", "326378269591042118602134048380147485699", "100471330673333361245188010564633314378", "91330178860709430704607251398660511149" ] }, "id": "PUB-A-193034683-803aaf79", "source": "https://android.googlesource.com/platform/frameworks/native/+/a8c7c54eed57e5a4b56905a4fb00e27e25b1b908", "deprecated": false, "signature_version": "v1", "target": { "file": "services/surfaceflinger/Layer.cpp" }, "signature_type": "Line" }, { "digest": { "length": 669.0, "function_hash": "72180255198095941201819186016615005055" }, "id": "PUB-A-193034683-858e4fa2", "source": "https://android.googlesource.com/platform/frameworks/native/+/a8c7c54eed57e5a4b56905a4fb00e27e25b1b908", "deprecated": false, "signature_version": "v1", "target": { "file": "services/surfaceflinger/Layer.cpp", "function": "Layer::reparent" }, "signature_type": "Function" }, { "digest": { "length": 340.0, "function_hash": "295735437818471318240263290444204326115" }, "id": "PUB-A-193034683-86d47d6e", "source": "https://android.googlesource.com/platform/frameworks/native/+/a8c7c54eed57e5a4b56905a4fb00e27e25b1b908", "deprecated": false, "signature_version": "v1", "target": { "file": "services/surfaceflinger/SurfaceFlinger.cpp", "function": "SurfaceFlinger::fromHandleLocked" }, "signature_type": "Function" }, { "digest": { "threshold": 0.9, "line_hashes": [ "180459281533515573444194746118978517362", "77486947446523004351637212510357807146", "320112465890559239182126150770937284651", "116848848557501671777503124013747448582", "1984503516145367709606882907228341434", "253549876504776358878858375170243429720", "274925040840188667756074887590989013169", "38165628023785295340404217939430881346", "203767377063084735029005355072152820751", "303057317047828389610248161797019837562", "270166416322623123507685998952583874592", "105246265134523999548902035894778709514", "67345504727149345076752764380236214194", "280555717421973170297833378305528097463", "210516112650426618323597342028005221208", "158632482583122815120188403597333694316", "309271713042654231707740391729741500941" ] }, "id": "PUB-A-193034683-a802cff6", "source": "https://android.googlesource.com/platform/frameworks/native/+/a8c7c54eed57e5a4b56905a4fb00e27e25b1b908", "deprecated": false, "signature_version": "v1", "target": { "file": "services/surfaceflinger/Layer.h" }, "signature_type": "Line" }, { "digest": { "threshold": 0.9, "line_hashes": [ "249359015536695073772524735223714475384", "280468340427400704853703422136017137376", "186349254690430549925272512297185371446", "126290562815896788549251162284509452811", "194809315623446784663537516323511447070", "162678448710453754531187414328125944771", "57711654589088292708476087727744893163" ] }, "id": "PUB-A-193034683-a8220ea0", "source": "https://android.googlesource.com/platform/frameworks/native/+/a8c7c54eed57e5a4b56905a4fb00e27e25b1b908", "deprecated": false, "signature_version": "v1", "target": { "file": "services/surfaceflinger/SurfaceInterceptor.h" }, "signature_type": "Line" }, { "digest": { "length": 293.0, "function_hash": "277747683752730879581956337285799393658" }, "id": "PUB-A-193034683-b480d3c2", "source": "https://android.googlesource.com/platform/frameworks/native/+/a8c7c54eed57e5a4b56905a4fb00e27e25b1b908", "deprecated": false, "signature_version": "v1", "target": { "file": "services/surfaceflinger/SurfaceInterceptor.cpp", "function": "SurfaceInterceptor::getLayerIdFromHandle" }, "signature_type": "Function" }, { "digest": { "length": 10777.0, "function_hash": "44791309334450844456675503081552095819" }, "id": "PUB-A-193034683-bf68bfd4", "source": "https://android.googlesource.com/platform/frameworks/native/+/a8c7c54eed57e5a4b56905a4fb00e27e25b1b908", "deprecated": false, "signature_version": "v1", "target": { "file": "services/surfaceflinger/SurfaceFlinger.cpp", "function": "SurfaceFlinger::setClientStateLocked" }, "signature_type": "Function" } ], "fixes": [ "https://android.googlesource.com/platform/frameworks/native/+/a8c7c54eed57e5a4b56905a4fb00e27e25b1b908" ], "spl": "2021-12-01", "severity": "Moderate", "types": [ "EoP" ] }