Microsoft PlayReady Design Issue

2024.08.14
Credit: Adam Gowdiak
Risk: Low
Local: Yes
Remote: No
CVE: N/A
CWE: N/A

Hello All, There is an architectural / design issue of PlayReady, which can be successfully exploited to gain access to license server by arbitrary clients. The problem has its origin in flat certificate namespace / reliance on a single root key in PlayReady along no auth at license server end by default (deemed as no bug by Microsoft). PlayReady client certificates encountered in Windows 10 / 11 and CANAL+ STB device environments share a common feature. They are all digitally signed by the so called WMRMECC256 Key identified by the following public component: C8 B6 AF 16 EE 94 1A AD AA 53 89 B4 AF 2C 10 E3 56 BE 42 AF 17 5E F3 FA CE 93 25 4E 7B 0B 3D 9B 98 2B 27 B5 CB 23 41 32 6E 56 AA 85 7D BF D5 C6 34 CE 2C F9 EA 74 FC A8 F2 AF 59 57 EF EE A5 62 Such an approach implicates the following: - all PlayReady license servers deployed across different content providers need to embed private key of WMRMECC256 Key for client identity verification purposes. Compromise of one provider can potentially impact other providers too, - client identities originating from different environments are to be successfully validated by PlayReady license server as long as the client identity certificate chain is signed by WMRMECC256 Key. We exploited the above flat certificate namespace / reliance on a single root key in PlayReady in the context of CANAL+ environment. On Aug 12, 2024, the compromised STB certificate used by us to demonstrate the possibility of a massive piracy in CANAL+ environment has been finally revoked. Compromised device certificate revocation hasn't addressed the core of the issue though (no client auth at PlayReady license server end). It took us less than an hour to change the code of our POC (PlayReady Toolkit) in order to make it work again, successfully obtain licenses for content and download arbitrary movies from CANAL+ VOD library, all regardless of the certificate revocation. We imported the identity file generated for Windows 10 PlayReady client to it (some arbitrary identity from May 2024) along private signing and encryption keys corresponding to it and obtained through attacks #3 and #4 (complete client identity compromise). The end result was a fully functional POC and Windows PlayReady client working in what one would assume to be an isolated PlayReady environment of CANAL+ set-top-boxes. Microsoft PlayReady license server successfully accepted and processed identity certificate chain with obfuscated keys and leaf certs specific to Windows environment. Such an operation of PlayReady license server makes any certificate revocations to be rather irrelevant (vide hundreds of millions of identities associated with Windows PlayReady clients). Thank you. Best Regards, Adam Gowdiak ---------------------------------- Security Explorations - AG Security Research Lab https://security-explorations.com ----------------------------------


Vote for this issue:
50%
50%


 

Thanks for you vote!


 

Thanks for you comment!
Your message is in quarantine 48 hours.

Comment it here.


(*) - required fields.  
{{ x.nick }} | Date: {{ x.ux * 1000 | date:'yyyy-MM-dd' }} {{ x.ux * 1000 | date:'HH:mm' }} CET+1
{{ x.comment }}

Copyright 2024, cxsecurity.com

 

Back to Top