<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://www.iquebrew.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=SciresM</id>
	<title>iQueBrew - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="http://www.iquebrew.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=SciresM"/>
	<link rel="alternate" type="text/html" href="http://www.iquebrew.org/index.php?title=Special:Contributions/SciresM"/>
	<updated>2026-11-12T11:31:53Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.35.2</generator>
	<entry>
		<id>http://www.iquebrew.org/index.php?title=IQue_Player_System_Flaws&amp;diff=692</id>
		<title>IQue Player System Flaws</title>
		<link rel="alternate" type="text/html" href="http://www.iquebrew.org/index.php?title=IQue_Player_System_Flaws&amp;diff=692"/>
		<updated>2018-04-29T08:28:49Z</updated>

		<summary type="html">&lt;p&gt;SciresM: /* Secure Kernel */ memes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:iQue Player System Flaws}}&lt;br /&gt;
==Hardware==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
!  Summary&lt;br /&gt;
!  Description&lt;br /&gt;
!  Timeframe this was discovered&lt;br /&gt;
!  Discovered by&lt;br /&gt;
|-&lt;br /&gt;
| No known hardware exploits &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Secure Kernel==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Summary&lt;br /&gt;
!  Description&lt;br /&gt;
!  Successful exploitation result&lt;br /&gt;
!  Timeframe this was discovered&lt;br /&gt;
!  Discovered by&lt;br /&gt;
|-&lt;br /&gt;
| psychic paper: Secure Kernel could incorrectly consider a self-signed certificate chain as valid&lt;br /&gt;
| The function for verifying certificate chains at &amp;lt;tt&amp;gt;0x9FC028BC&amp;lt;/tt&amp;gt; is passed an array of pointers to certificates.&lt;br /&gt;
For the first 5 elements, it checks to see if the certificate was issued by &amp;lt;tt&amp;gt;Root&amp;lt;/tt&amp;gt;, if so it checks if the certificate was signed by the hardcoded &amp;lt;tt&amp;gt;Root&amp;lt;/tt&amp;gt; public key (and returns immediately with the result).&lt;br /&gt;
&lt;br /&gt;
If the certificate wasn&amp;#039;t signed by &amp;lt;tt&amp;gt;Root&amp;lt;/tt&amp;gt;, it checks if the certificate was signed by the public key of the next certificate in the array.&lt;br /&gt;
&lt;br /&gt;
If all 5 certificates verified correctly, the function will return success.&lt;br /&gt;
| Assuming this function can be called with an attacker-controlled array of certificates, self-signing of certificates (and thus, arbitrary code execution, with full non-Secure Mode privileges)&lt;br /&gt;
(This is not the case for Secure Applications, the code in SK for verifying those sets up a hardcoded array on the stack for the certificate verification function)&lt;br /&gt;
| April 2018&lt;br /&gt;
| [[User:Riley|Riley]]&lt;br /&gt;
|-&lt;br /&gt;
| skcPrepareCMDAndTik and skc04 leave CMD in memory if its signature does not verify&lt;br /&gt;
| The function called by skcPrepareCMDAndTik (and skc04) at &amp;lt;tt&amp;gt;0x9FC00BAC&amp;lt;/tt&amp;gt; verifies ticket and CMD, and decrypts the titlekey.&lt;br /&gt;
After verifying the ticket signature, it copies the CMD to another place in memory, derives the titlekey encryption key, decrypts the titlekey with the titlekek, then verifies the CMD signature.&lt;br /&gt;
&lt;br /&gt;
If the CMD signature does not verify successfully, the function just returns an error, leaving the unsigned CMD in place.&lt;br /&gt;
&lt;br /&gt;
Most of the code that uses a CMD in SK uses the CMD in that place in memory that this function copies the CMD to, and trusts that whatever data is there has been verified already.&lt;br /&gt;
&lt;br /&gt;
The entire CMD is covered by the ticket signature anyway, so this isn&amp;#039;t that useful really, besides potentially making psychic paper easier to exploit.&lt;br /&gt;
| With existing code execution with access to skcPrepareCMDAndTik or skc04 and some other SKC that uses SK&amp;#039;s internal CMD copy (only non-test SAs have this level of access), and the ability to sign a ticket but not a CMD:&lt;br /&gt;
Allowing the use of an unsigned CMD by SK, potentially leading to privilege escalation (by specifying arbitrary allowed hardware access/allowed SKCs).&lt;br /&gt;
| April 26, 2018&lt;br /&gt;
| [[User:Riley|Riley]]&lt;br /&gt;
|-&lt;br /&gt;
| skcStartContent does not check content hash if recrypt flag is set in CMD&lt;br /&gt;
| skcStartContent calculates the SHA1 hash of the content and compares it to the value in the CMD, returning an error if the hash doesn&amp;#039;t match. This entire block of code is jumped over if the recrypt flag is set in the CMD.&lt;br /&gt;
| With plaintext of an application with the recrypt flag set in its CMD, arbitrary code execution (via, for example, implementation of the attack described in pocorgtfo17)&lt;br /&gt;
| Early 2018?&lt;br /&gt;
| Everyone&lt;br /&gt;
|-&lt;br /&gt;
| skcVerifySignature signature pointer not validated&lt;br /&gt;
| skcVerifySignature takes in a u8 pointer to a signature to verify, but does not actually validate this pointer is valid before treating the memory it points to as an RSA/ECC signature.&lt;br /&gt;
| Causing the Secure Kernel to data abort -- possibly usable as an infoleak, depending on the provided cert chain&lt;br /&gt;
| April 29, 2018&lt;br /&gt;
| SciresM&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==System Applications==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Summary&lt;br /&gt;
!  Description&lt;br /&gt;
!  Successful exploitation result&lt;br /&gt;
!  Exploitable System Applications&lt;br /&gt;
!  Timeframe this was discovered&lt;br /&gt;
!  Discovered by&lt;br /&gt;
|-&lt;br /&gt;
|  No known System Application exploits&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>SciresM</name></author>
	</entry>
</feed>