3DS System Flaws: Difference between revisions

No edit summary
No edit summary
Line 41: Line 41:
!  Description
!  Description
!  Successful exploitation result
!  Successful exploitation result
!  Fixed in system version
!  Fixed in [[FIRM]] system version
!  Last FIRM version this flaw was checked for
!  Last [[FIRM]] system version this flaw was checked for
!  Timeframe this was discovered
!  Timeframe this was discovered
!  Discovered by
|-
|-
|  
|  
Line 50: Line 51:
| None
| None
| [[9.3.0-21|9.3.0-X]]
| [[9.3.0-21|9.3.0-X]]
| 2012
| 2012  
| [[User:Yellows8|Yellows8]]
|-
|-
| [[Process_Services_PXI|ps:VerifyRsaSha256]] buffer overflow
| [[Process_Services_PXI|PS RSA]] commands buffer overflows
| Unchecked copy to a buffer in Process9's .bss. The buffer is located before the pxi cmdhandler threads' stacks.
| pxips9 cmd1(not accessible via ps:ps) and VerifyRsaSha256: unchecked copy to a buffer in Process9's .bss, from the input FCRAM buffer. The buffer is located before the pxi cmdhandler threads' stacks. SignRsaSha256 also has a buf overflow, but this isn't exploitable.
The buffer for this is the buffer for the signature data. With v5.0, the signature buffer was moved to stack, with a check for the signature data size. When the signature data size is too large, Process9 uses [[SVC|svcBreak]].
| ARM9 code execution
| ARM9 code execution
| [[5.0.0-11]]
| [[5.0.0-11|5.0.0-X]]
|  
|  
| 2012
| 2012
| [[User:Yellows8|Yellows8]]
|}
|}


Line 66: Line 70:
!  Description
!  Description
!  Successful exploitation result
!  Successful exploitation result
!  Fixed in system version
!  Fixed in [[FIRM]] system version
!  Last FIRM version this flaw was checked for
!  Last [[FIRM]] system version this flaw was checked for
!  Timeframe this was discovered
!  Timeframe this was discovered
!  Discovered by
|-
|-
|  [[SVC]] table too small
|  [[SVC]] table too small
Line 78: Line 83:
| [[9.3.0-21|9.3.0-21]]
| [[9.3.0-21|9.3.0-21]]
| 2012
| 2012
|
|-
|-
|  [[SVC|svcBackdoor (0x7B)]]
|  [[SVC|svcBackdoor (0x7B)]]
Line 85: Line 91:
| [[9.3.0-21|9.3.0-21]]
| [[9.3.0-21|9.3.0-21]]
|
|
|
|-
|-
| [[Memory_layout#ARM11_Detailed_virtual_memory_map|0xEFF00000]] / 0xDFF00000 ARM11 kernel virtual-memory
| [[Memory_layout#ARM11_Detailed_virtual_memory_map|0xEFF00000]] / 0xDFF00000 ARM11 kernel virtual-memory
Line 91: Line 98:
| None
| None
| [[9.3.0-21|9.3.0-21]]
| [[9.3.0-21|9.3.0-21]]
|
|  
|  
|-
|-
Line 99: Line 107:
|  
|  
| February 2014
| February 2014
| [[User:Yellows8|Yellows8]]
|-
|-
| PXI [[RPC_Command_Structure|Command]] input/output buffer permissions
| PXI [[RPC_Command_Structure|Command]] input/output buffer permissions
Line 106: Line 115:
|  
|  
| 2012
| 2012
| [[User:Yellows8|Yellows8]]
|-
|-
| [[SVC|svcStartInterProcessDma]]
| [[SVC|svcStartInterProcessDma]]
Line 119: Line 129:
|  
|  
| DmaConfig issue: unknown. The rest: 2014
| DmaConfig issue: unknown. The rest: 2014
|
|-
|-
| [[SVC|svcControlMemory]] Parameter checks
| [[SVC|svcControlMemory]] Parameter checks
Line 131: Line 142:
|  
|  
|
|
|
|-
|-
| [[RPC_Command_Structure|Command]] request/response buffer overflow
| [[RPC_Command_Structure|Command]] request/response buffer overflow
Line 140: Line 152:
|  
|  
| v4.1 FIRM -> v5.0 code diff
| v4.1 FIRM -> v5.0 code diff
|
|-
|-
| [[SVC|SVC stack allocation overflows]]
| [[SVC|SVC stack allocation overflows]]
Line 153: Line 166:
|  
|  
| v4.1 FIRM -> v5.0 code diff
| v4.1 FIRM -> v5.0 code diff
|
|-
|-
| [[SVC|svcControlMemory]] MemoryOperation MAP memory-permissions
| [[SVC|svcControlMemory]] MemoryOperation MAP memory-permissions
Line 160: Line 174:
|  
|  
| 2012
| 2012
| [[User:Yellows8|Yellows8]]
|-
|-
| [[RPC_Command_Structure|Command]] input/output buffer permissions
| [[RPC_Command_Structure|Command]] input/output buffer permissions
Line 167: Line 182:
|  
|  
| 2012
| 2012
| [[User:Yellows8|Yellows8]]
|-
|-
| [[SVC|svcReadProcessMemory/svcWriteProcessMemory memory]] permissions
| [[SVC|svcReadProcessMemory/svcWriteProcessMemory memory]] permissions
Line 174: Line 190:
|  
|  
| 2012?
| 2012?
| [[User:Yellows8|Yellows8]]
|}
|}


Line 181: Line 198:
!  Summary
!  Summary
!  Description
!  Description
!  Fixed in system version
!  Successful exploitation result
!  Fixed in [[FIRM]] system version
!  Last [[FIRM]] system version this flaw was checked for
!  Timeframe this was discovered
!  Discovered by
|-
|-
| [[Services|"srv:pm"]] process registration
| [[Services|"srv:pm"]] process registration
Line 189: Line 210:


This flaw was needed for exploiting the <=v4.x Process9 PXI vulnerabilities from ARM11 userland ROP, since most applications don't have access to those service(s).
This flaw was needed for exploiting the <=v4.x Process9 PXI vulnerabilities from ARM11 userland ROP, since most applications don't have access to those service(s).
| Access to arbitrary services
| [[7.0.0-13]]
| [[7.0.0-13]]
|
| 2012
| [[User:Yellows8|Yellows8]]
|}
|}


Line 201: Line 226:
!  Last system version this flaw was checked for
!  Last system version this flaw was checked for
!  Timeframe this was discovered
!  Timeframe this was discovered
!  Discovered by
|-
|-
| gspwn
| gspwn
Line 207: Line 233:
| None
| None
| [[9.4.0-21]]
| [[9.4.0-21]]
|
|  
|  
|-
|-
Line 216: Line 243:
| [[9.3.0-21]]
| [[9.3.0-21]]
| [[9.4.0-21]]
| [[9.4.0-21]]
|
|  
|  
|}
|}
Line 228: Line 256:
!  Last system version this flaw was checked for
!  Last system version this flaw was checked for
!  Timeframe this was discovered
!  Timeframe this was discovered
!  Discovered by
|-
|-
| 3DS [[System Settings]] DS profile string stack-smash
| 3DS [[System Settings]] DS profile string stack-smash
Line 235: Line 264:
| [[7.0.0-13]]
| [[7.0.0-13]]
| 2012
| 2012
| Whoever originally added the vuln info for this to 3dbrew.
|}
|}