In getMimeGroup of PackageManagerService.java, there is a possible way to determine whether an app is installed, without query permissions, due to side channel information disclosure. This could lead to local information disclosure with no additional execution privileges needed. User interaction is not needed for exploitation.
{
"types": [
"ID"
],
"severity": "Moderate",
"fixes": [
"https://android.googlesource.com/platform/frameworks/base/+/3d79d7e4e40c779b83a9c8b610e8232226c05c2c"
],
"vanir_signatures": [
{
"signature_type": "Function",
"source": "https://android.googlesource.com/platform/frameworks/base/+/3d79d7e4e40c779b83a9c8b610e8232226c05c2c",
"deprecated": false,
"target": {
"file": "services/core/java/com/android/server/pm/PackageManagerService.java",
"function": "enforceOwnerRights"
},
"id": "PUB-A-184745603-250b3ebb",
"digest": {
"function_hash": "176921896306934069615062367523586273886",
"length": 472.0
},
"signature_version": "v1"
},
{
"signature_type": "Line",
"source": "https://android.googlesource.com/platform/frameworks/base/+/3d79d7e4e40c779b83a9c8b610e8232226c05c2c",
"deprecated": false,
"target": {
"file": "services/core/java/com/android/server/pm/PackageManagerService.java"
},
"id": "PUB-A-184745603-46d66de4",
"digest": {
"threshold": 0.9,
"line_hashes": [
"56690733406156770103558641024776011421",
"50765988801835248604431004618949486510",
"168612600982841018000740806217268744386",
"211390870315450772947803373664276922764",
"262257363236931130244546111038144816400",
"8235105133399694151163489370133499119",
"276342484624574436368480538422176075917",
"7106495456416142877221349011313845131",
"29058257612774792469559714736430289533",
"90010113456944015877831085561067831081",
"155807318559137295414018054200975069660",
"280429238330737788793702719727180417444",
"196682325295961452675839829913992517914",
"310591669657915724847005733591445671326",
"265959774021551676513783564144112177436",
"29906584385586696915634874469217379858",
"146709867825320318322157342616420703735",
"303757265181070451336852511131863662064",
"140715371038663018313008428582863582352",
"211381962111348284439631806052542016057",
"196176731609111560153103609021437582648",
"77240265927187974209292242298819486036",
"213129095339004811630794553552057813710",
"11740028234786729871383605510795462323",
"172978189410694208788984948556600239876",
"13474650814656849543671331730109254414",
"21200261099584008308714144740643365442"
]
},
"signature_version": "v1"
},
{
"signature_type": "Function",
"source": "https://android.googlesource.com/platform/frameworks/base/+/3d79d7e4e40c779b83a9c8b610e8232226c05c2c",
"deprecated": false,
"target": {
"file": "services/core/java/com/android/server/pm/PackageManagerService.java",
"function": "setMimeGroup"
},
"id": "PUB-A-184745603-546920be",
"digest": {
"function_hash": "313152028859633380311040497320361020316",
"length": 180.0
},
"signature_version": "v1"
},
{
"signature_type": "Function",
"source": "https://android.googlesource.com/platform/frameworks/base/+/3d79d7e4e40c779b83a9c8b610e8232226c05c2c",
"deprecated": false,
"target": {
"file": "services/core/java/com/android/server/pm/PackageManagerService.java",
"function": "getMimeGroup"
},
"id": "PUB-A-184745603-f1be9613",
"digest": {
"function_hash": "228856937219168462937424260969375800742",
"length": 109.0
},
"signature_version": "v1"
}
],
"spl": "2021-12-01"
}