
Zero-day in AppleMediaServices: Bag fetch failure disables Mescal/Absinthe signing. Requests to Apple services proceed unsigned, exposing downgrade, replay, and bypass risk. Includes analysis, log evidence, and PoC attack logic.
Summary
This issue constitutes a live Zero-Day vulnerability and reflects a systemic design flaw in AppleMediaServices.framework, rather than a regression or version-specific bug.
A critical fail-open flaw in Apple’s AppleMediaServices framework allows request signing to be silently disabled if a remote configuration file (the "Bag") fails to load. This affects iOS, macOS, tvOS, and watchOS.
When the Bag cannot be retrieved—due to DNS manipulation, timeouts, or network interference—AppleMediaServices daemons disable Mescal/Absinthe signing and send unsigned requests to Apple servers. These requests lack integrity protections and expose users to downgrade and replay attacks.
Log Evidence:
Discovery
Affected Systems
All Apple platforms that use AppleMediaServices.framework are affected.
Impacted daemons include:
Vulnerability Overview
Apple devices fetch a dynamic configuration Bag from the following endpoint:
https://bag.itunes.apple.com/bag.xml?deviceClass=...&format=json
This configuration includes flags like useAMSMescal, mescalURL, and absintheURL, which determine if outgoing requests must be signed.
If the Bag fails to load, AppleMediaServices logs the failure, disables signing logic, and sends unsigned requests. There is no signature validation, integrity check, or enforced fallback mechanism. The Bag is unauthenticated and unsigned, making the security state vulnerable to network interference.
Proof of Concept
Preconditions:
Exploit Steps:
Block or tamper with access to the Bag endpoint using DNS NXDOMAIN responses, dropped TCP handshakes, or delayed responses.
Observe system logs indicating the Bag failed to load and Mescal/Absinthe signatures are skipped.
Trigger system components (e.g., App Store, Music app) to send requests. Monitor network traffic and confirm the absence of signing headers:
Result:
Unsigned traffic is transmitted to Apple endpoints without verification. This allows manipulation, replay, and other integrity risks.
Threat Models
bag.itunes.apple.comAMSBagManager to override security flagsRecommended Remediation
Signed Configuration Sign the Bag using CMS, JWT, or HMAC and verify signatures client-side.
Fail-Secure Defaults AppleMediaServices should block signing-dependent traffic when the Bag cannot be retrieved or validated.
Server Enforcement Apple’s backend APIs should reject unsigned requests that require Mescal or Absinthe protection.
Validated Caching Bag content should only be cached when it passes integrity checks and falls within defined expiry constraints.
Severity Justification
Apple devices rely on signed requests for trust — from the App Store to media playback. If those signatures vanish whenever a config file can’t load, attackers on a Wi-Fi network can strip away integrity and inject or replay traffic without the user knowing. A single dropped Bag request means Apple’s security guarantees fail open.