In verifyDefaults of CardEmulationManager.java, there is a possible way to set a third party app as the default contactless payment app without user consent due to a missing permission check. This could lead to local escalation of privilege with no additional execution privileges needed. User interaction is not needed for exploitation.
{
"fixes": [
"https://android.googlesource.com/platform/packages/apps/Nfc/+/47d46119729be8e461cf61de51da3c8a259941a3"
],
"types": [
"EoP"
],
"severity": "High",
"vanir_signatures": [
{
"deprecated": false,
"signature_version": "v1",
"digest": {
"length": 1541.0,
"function_hash": "114555253436938247442654722844860424902"
},
"id": "ASB-A-212610736-12b2d733",
"signature_type": "Function",
"source": "https://android.googlesource.com/platform/packages/apps/Nfc/+/47d46119729be8e461cf61de51da3c8a259941a3",
"target": {
"file": "src/com/android/nfc/cardemulation/CardEmulationManager.java",
"function": "verifyDefaults"
}
},
{
"deprecated": false,
"signature_version": "v1",
"digest": {
"threshold": 0.9,
"line_hashes": [
"295226570849169871908183095233029651519",
"112541039568483635236602289802364385895",
"315852062032627358066014619176170590841",
"249128550112373829776150518890059810162",
"281669263796947544548992269806752348521",
"260653643456319798916093378723387081601",
"267170763367918631264413204148772080392",
"55585520962156346804601262619264182273",
"99332722928603672887433464135966973869",
"218587883112346944518312278284554342765",
"215211100333251195161568310147972866731",
"143594581367930046090564332823308720287",
"18077831500770260774758371278474319423",
"149607452231559639793439985874377337804"
]
},
"id": "ASB-A-212610736-98a74f8e",
"signature_type": "Line",
"source": "https://android.googlesource.com/platform/packages/apps/Nfc/+/47d46119729be8e461cf61de51da3c8a259941a3",
"target": {
"file": "src/com/android/nfc/cardemulation/CardEmulationManager.java"
}
}
],
"spl": "2025-09-01"
}