Android security tags, read closely by Lightrion

CVE-2026-58854 AI-generated analysis

platform/frameworks/av, services/tuner (mediatuner daemon, AIDL and HIDL tuner wrappers)

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 (6 corrections). Verify against the commit before relying on it.

Adds isRemote() (and, where missing, nullptr) validation before static_cast downcasts of caller-supplied ITunerFilter/ITunerDemux/ITunerLnb interface pointers in the mediatuner service, across both the AIDL and HIDL backends, rejecting remote binder proxies with Result::INVALID_ARGUMENT.

Root cause

Several mediatuner service methods accept an interface object from the binder caller (shared_ptr<ITunerFilter>, shared_ptr<ITunerDemux>, shared_ptr<ITunerLnb>) and static_cast it to the service-local implementation class (TunerFilter, TunerDemux, TunerLnb, or the TunerHidl* equivalents) to call getHalFilter() or getId(). When the caller passes a remote binder proxy or custom stub, the object is not of the local class, so the cast is invalid and, per the commit message, member reads go out-of-bounds relative to the proxy allocation. Before the fix, TunerDvr::attachFilter/detachFilter, TunerFilter::setDataSource, TunerFrontend::setLnb and their HIDL twins only checked for nullptr; TunerDemux::getAvSyncHwId and TunerDescrambler::setDemuxSource (and HIDL twins) had no check at all; TunerDescrambler::addPid/removePid only handled the nullptr-optional case.

How the fix works

Completeness

Behavior changes

Per major

Unknowns

Back to October 2026 · Findings