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 === |