Files
openharmony_ci 470347d005 !3385 merge fix-session-element-spoof-lyc into master
修复AVSession伪造ElementName导致任意指向WantAgent的安全问题

Created-by: devil_red
Commit-by: 红袍小恶魔
Merged-by: openharmony_ci
Description: ## 问题

三方应用可通过 NDK 接口(OH_AVSession_Create,bundleName/abilityName 为直接字符串参数)或裸 IPC,向 AVSessionServiceStub::HandleCreateSessionInner 传入指向其他应用的 ElementName,入口及 IsParamInvalid 均无归属校验。SA 据此创建指向受害应用的 WantAgent(PendingWant),触发时以 SA 系统身份执行,形成身份冒用/跳转劫持。

详见 #2779

## 修复内容(按 TMG 评审意见:创建时纠正 elementName,划入兼容范畴,仅影响恶意应用)

**AVSessionService::CreateSessionInner** 新增 CorrectElementForThirdPartyCaller:

1. 系统应用/SA 调用方(thirdPartyApp=false)不处理
2. SA 进程内直调(如投播镜像会话)token 为 native,跳过——保护 cast 镜像等合法场景
3. 三方应用(hap)调用方:用调用方 uid 经 BMS 反查真实包名,与传入 elementName 比对;不一致则将 descriptor 的 bundleName 纠正为真实包名、abilityName 纠正为默认入口 ability(GetLaunchWantForBundle);反查失败保留原值(fail-open)
4. **BundleStatusAdapter** 新增 GetDefaultAbilityName,封装 BMS 默认入口 ability 解析

descriptor 在创建时即被纠正,下游展示/跳转/遥测归因全部基于真实身份,无需逐出口修补。

## UT

新增 CreateSessionInnerCorrectElement001/002:覆盖系统调用方不纠正、非 hap 调用方不纠正两条路径。

## 兼容性

- 合法应用 element 本就等于真实包名,纠正为 no-op,零行为变化
- anco/投播/系统组件场景不受影响
- 唯一行为变化:传入他人包名的异常/恶意调用,其会话归属被纠正为真实身份(TMG 评审已裁定划入兼容范畴)

Close #2779

See merge request: openharmony/multimedia_av_session!3385
2026-08-22 15:56:31 +08:00
..
2026-08-19 16:49:04 +08:00
2026-08-07 10:26:23 +08:00
2026-07-22 22:23:56 +08:00
2026-07-22 22:23:56 +08:00
2026-07-24 16:35:32 +08:00
dfx
2026-04-24 16:44:58 +08:00
2024-09-03 16:27:11 +08:00
2026-08-14 20:00:54 +08:00
2026-08-14 20:00:54 +08:00
2026-08-08 15:14:14 +08:00
2024-07-19 15:59:32 +08:00
2026-07-23 21:44:24 +08:00
2026-08-14 19:43:08 +08:00
2026-08-14 19:43:08 +08:00
2026-08-14 19:01:34 +08:00
2025-03-09 22:00:23 +08:00
2026-07-21 19:00:46 +08:00
2026-07-24 17:02:12 +08:00
2026-08-17 20:44:48 +08:00
2024-11-28 21:11:48 +08:00
2026-07-24 17:02:12 +08:00