SECURITY PoC — NO AUTH
This movie's CDN stream is playing without login or subscription
Lost 88 — Episodes (37 of 119)
EP 83Lost 83
EP 84Lost 84
EP 85Lost 85
EP 86Lost 86
EP 87Lost 87
EP 88Lost 88
EP 89Lost 89
EP 90Lost 90
EP 91Lost 91
EP 92Lost 92
EP 93Lost 93
EP 94Lost 94
EP 95Lost 95
EP 96Lost 96
EP 97Lost 97
EP 98Lost 98
EP 99Lost 99
EP 100Lost 100
EP 101Lost 101
EP 102Lost 102
EP 103Lost 103
EP 104Lost 104
EP 105Lost 105
EP 106Lost 106
EP 107Lost 107
EP 108Lost 108
EP 109Lost 109
EP 110Lost 110
EP 111Lost 111
EP 112Lost 112
EP 113Lost 113
EP 114Lost 114
EP 115Lost 115
EP 116Lost 116
EP 117Lost 117
EP 118Lost 118
EP 120Lost 119-120
Per-movie CDN bypass proof
The API returned
playingUrl for Lost 88
with issubscriber: false, user_access: deny, and paid_for: true.
The video_name + serverhost from the API response are used to construct
the CDN URL above, confirming that the file for this specific movie is
publicly accessible with no authentication.
Security research evidence Inspect entitlement results, CDN URLs, and the raw API response Access control failed
API response evidence
Endpoint called
GET /api/preview/v2/22757/0
User ID used
0 (no user / not logged in)
JWT used
Expired Feb 2024 (extracted from APK)
issubscriber
false
user_access
deny
paid_for
YES (premium content)
substatus
EXPIRED
serverhost
34
video_name
Lost.S05E02.mp4
playingUrl returned
YES — URL in response
API playingUrl value
https://munowatch.co/clips/ELI.mp4
CDN stream
https://munotek.b-cdn.net/tyr85/fda2/Lost.S05E02.mp4
Finding: The server sets user_access=deny and
issubscriber=false but still returns playingUrl in the
same response. Subscription is enforced client-side only — any caller with
the expired APK JWT can obtain stream URLs without a subscription.
Munowatch CDN (b-cdn.net) serves content with no auth required
(direct HTTP Range requests succeed with HTTP 206).