Android security tags, read closely by Lightrion

CVE-2025-26453 AI-generated analysis

platform/packages/modules/Bluetooth, OPP (Object Push Profile) send path, android/app/src/com/android/bluetooth/opp/BluetoothOppSendFileInfo.java

AI-generated: written from the bulletin and the fixing diffs by claude-fable-5-1, then checked against the code by claude-opus-5-5 (5 corrections). Verify against the commit before relying on it.

Changes BluetoothOppSendFileInfo.isContentUriForOtherUser to derive the user id from the decoded Uri authority (text before the last '@') instead of Uri.getUserInfo(), so Bluetooth OPP's cross-user content URI check agrees with how ContentProvider resolves the target user.

Root cause

isContentUriForOtherUser() in BluetoothOppSendFileInfo.java got the user id from uri.getUserInfo(). The new Javadoc in the diff explains that ContentProvider APIs instead pass the decoded Uri.getAuthority() to ContentProvider#getUserIdFromAuthority. ContentProvider therefore treats an encoded '@' ('%40') in the authority as the separator between userInfo and host, but Uri.getUserInfo() does not treat it as a separator. A content URI that put another user's id in front of an encoded '@' could pass the OPP check while being resolved by ContentProvider as another user's URI. This is consistent with the bulletin type ID (information disclosure).

How the fix works

Completeness

Behavior changes

Per major

Unknowns

Back to June 2025 · Findings