3DS System Flaws: Difference between revisions

Mtgxyz (talk | contribs)
boot9: Removed nedwill because nedwill didn't discover any of the two. Also fixed a huge factual mistake I still think is true?
Mtgxyz (talk | contribs)
Undoing because of lack of details.
Line 88: Line 88:


== ARM9 software ==
== ARM9 software ==
=== boot9 ===
{| class="wikitable" border="1"
!  Summary
!  Description
!  Fixed with hardware model/revision
!  Newest hardware model/revision this flaw was checked for
!  Timeframe this was discovered
!  Discovered by
|-
| Incorrect padding check
| The signature has a flag byte that determines whether the padding should be checked. This makes you able to bruteforce the padding very easily, as only the flag byte has to be zero.
| N/A
| New3DS
| Summer 2015
| derrek
|-
| No bound checks inside of ASN.1 parser
| The hash inside of the signature is stored in an ASN.1 structure. However the length fields are not bounds-checked, allowing one to point the header hash to the hash the 3DS calculated before verification. This and because of the aforementioned bug, you can brute-force a signature that will always work easily, as essentially only a few bytes need to be valid.
| N/A
| New3DS
| Summer 2015
| derrek
|}


=== arm9loader ===
=== arm9loader ===