Editing Vulnerabilities

Jump to navigation Jump to search
Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then publish the changes below to finish undoing the edit.

Latest revision Your text
Line 27: Line 27:


== WebKit exploits ==
== WebKit exploits ==
Contrarly to PS4, on PS5 WebKit exploit usually do not allow arbitrary RW to usermode code sections because of PS5 memory protections (notably XOM). However thanks to leaks of usermode libraries .text section binaries, by other sort of vulnerabilities, and to RW access to WebKit .data section allowed by the WebKit exploit, it is possible to trigger usermode ROP code execution.


=== Modal Browser HTTPS Bypass ===
=== Modal Browser HTTPS Bypass ===
Line 49: Line 47:


Tested and working on PS4 FWs 10.00-11.52 and PS5 FWs 6.00-9.60.
Tested and working on PS4 FWs 10.00-11.52 and PS5 FWs 6.00-9.60.
=== Untested - mmap issue involving pointer address misalignment leading to nothing for now ===
==== Credits ====
* Jasmine, working for Sony, for information through a WebKit commit (2022-10-19)
==== Analysis ====
* https://bugs.webkit.org/show_bug.cgi?id=246763
==== Bug Description ====
There is a mmap issue involving pointer address misalignment because of a failing assert [https://github.com/WebKit/WebKit/blob/main/Source/JavaScriptCore/heap/StructureAlignedMemoryAllocator.cpp#L94 here]. A workaround is to set HAVE_MAP_ALIGNED flag as OFF in OptionsPlayStation.cmake: [https://github.com/WebKit/WebKit/commit/626585db9857b7630cf34d82f9a0555720f15bca]. This workaround can be reverted after the mmap issue is resolved. Currently, the workaround is still enabled: [https://github.com/WebKit/WebKit/blob/ab2fff92b37e52d6c65e215b155e6b92f1646954/Source/cmake/OptionsPlayStation.cmake#L251]
OptionsPlayStation.cmake is present in the PS4 11.00 OSS WebKit source code but does not contain the HAVE_MAP_ALIGNED flag, and according to dates, this might concern only the PS5.
==== Exploit Implementation ====
==== Patched ====
'''Maybe'''
==== Tested ====
Not tested yet on PS4 nor PS5.
----
=== FW ?6.00-9.60? - get_by_id_with_this associated with ProxyObject can leak JSScope objects ===
See also [https://www.psdevwiki.com/ps4/Vulnerabilities#FW_?6.00-11.52?_-_get_by_id_with_this_associated_with_ProxyObject_can_leak_JSScope_objects].
=== FW ?6.00-9.60? - Immediate overflow/underflow in JSC SBFX (CVE-2024-27833) leading to arbitrary code execution ===
See also [https://www.psdevwiki.com/ps4/Vulnerabilities#FW_?10.00-11.52?_-_Immediate_overflow/underflow_in_JSC_SBFX_(CVE-2024-27833)_leading_to_arbitrary_code_execution].
=== FW ?6.00?-9.60 - Unknown heap and string overflow (no CVE) leading to crash ===
See also [https://www.psdevwiki.com/ps4/Vulnerabilities#FW_?10.00?-11.52_-_Unknown_heap_and_string_overflow_(no_CVE)_leading_to_crash].
==== Patched ====
'''Yes''' on PS4 FW 12.00 and PS5 FW 10.00.
==== Tested ====
Tested working on PS4 FWs 10.00-11.52 and PS5 FWs 6.00-9.60.
=== FW ?6.00-8.60? - Integer underflow in JSC genericTypedArrayViewProtoFuncCopyWithin (CVE-2023-38600) ===
See also [https://www.psdevwiki.com/ps4/Vulnerabilities#FW_?6.00-11.52?_-_Integer_underflow_in_JSC_genericTypedArrayViewProtoFuncCopyWithin_(CVE-2023-38600)].
=== FW ?6.00-8.60? - JSC::DFG::clobberize() needs to be more precise with the *ByOffset nodes (CVE-2023-41993) leading to arbitrary RW ===
See also [https://www.psdevwiki.com/ps4/Vulnerabilities#FW_?10.00-11.02?_-_JSC::DFG::clobberize()_needs_to_be_more_precise_with_the_*ByOffset_nodes_(CVE-2023-41993)_leading_to_arbitrary_RW].


=== FW 6.00-8.60 - JSC DFG Abstract Intepreter clobberWorld Type Confusion (no CVE) leading to arbitrary RW ===
=== FW 6.00-8.60 - JSC DFG Abstract Intepreter clobberWorld Type Confusion (no CVE) leading to arbitrary RW ===
Line 125: Line 73:


=== FW 3.00-4.51 - WebCore::CSSFontFaceSet vulnerabilities leading to usermode ROP code execution ===
=== FW 3.00-4.51 - WebCore::CSSFontFaceSet vulnerabilities leading to usermode ROP code execution ===
Contrarly to PS4, on PS5 this exploit does not allow arbitrary usermode memory RW because of PS5 memory protections. However thanks to tricks it is possible to get usermode ROP code execution from this exploit.


See also [https://www.psdevwiki.com/ps4/Vulnerabilities#FW_9.00-9.04_-_WebCore::CSSFontFaceSet_vulnerabilities_leading_to_arbitrary_RW].
See also [https://www.psdevwiki.com/ps4/Vulnerabilities#FW_9.00-9.04_-_WebCore::CSSFontFaceSet_vulnerabilities_leading_to_arbitrary_RW].
Line 130: Line 80:
==== Implementations ====
==== Implementations ====


* [https://github.com/ChendoChap/PS5-Webkit-Execution Implementation for PS5 3.00-4.51 by ChendoChap]
* [https://github.com/ChendoChap/PS5-Webkit-Execution Implementation for PS5 by ChendoChap]
* [https://github.com/Cryptogenic/PS5-IPV6-Kernel-Exploit Implementation with IPV6 kernel exploit for PS5 3.00-4.51 by Specter]


==== Patched ====
==== Patched ====


'''No''' as of PS5 FW 4.51 (need to test on PS5 FWs >=5.00). Not working on PS4 FWs <9.00 and PS5 FWs <2.10.
'''No''' as of PS5 FW 4.51 (need to test on PS5 FWs >=5.00).


==== Tested ====
==== Tested ====


Tested and working on PS4 FWs 9.00-9.04 and PS5 FWs 3.00-4.51. Untested: PS5 FWs 2.10-2.70 and >=5.00.
Tested and working on PS4 FWs 9.00-9.04 and PS5 FWs 3.00-4.51. Untested: PS5 FWs 2.10-2.50 and >=5.00.


== Game savedata exploits ==
== Game savedata exploits ==
Line 176: Line 125:


= Kernel =
= Kernel =
== CR0.WP and XOM bypass ==
See [https://www.psdevwiki.com/ps4/Vulnerabilities#CR0.WP_protection PS4 dev wiki].
=== Credits ===
* sleirsgoevy for proposing it in PS4 kernel exploit since System Software version 6.51.
* Specter for adapting it to PS5 and explaining it.
=== Patched ===
'''Maybe''' in PS5 FW 5.00.
----


== Physical memory readable by kernel (Meme Dumper) ==
== Physical memory readable by kernel (Meme Dumper) ==
Line 298: Line 233:


* See also implementation for FreeBSD 9 or 12 or PS4.
* See also implementation for FreeBSD 9 or 12 or PS4.
* [https://github.com/Cryptogenic/PS5-IPV6-Kernel-Exploit IPV6 kernel exploit implementation with W for PS5 3.00-4.51 by Specter (2022-10-02)]
* [https://github.com/Cryptogenic/PS5-4.03-Kernel-Exploit Kernel exploit implementation for PS5 3.00-4.51 by Specter (2022-10-02)]
* [https://github.com/sleirsgoevy/bd-jb/tree/ps5/root/org/homebrew ]


=== Patched ===
=== Patched ===


'''Yes''' in PS5 FW 5.00. Invulnerable in PS5 FW 2.70 and below.
'''Yes''' in PS5 FW 5.00. Invulnerable in PS5 FW 2.50 and below.
----
----


Line 316: Line 250:
=== Exploit Implementation ===
=== Exploit Implementation ===


Edit: it may now be possible to build a valid PS5 exFAThax payload thanks to PS5 kernel .text segment dumps for System Software versions <= 2.70 thanks to Hypervisor exploits.
Not yet because even though there is ChendoChap's method to execute usermode code in WebKit, there is no PS5 kernel dump to build a kernel ROP chain. Exploiting this kernel vulnerability blind is almost impossible because once the USB device is inserted it corrupts the kernel heap memory and if the offsets in the kernel ROP chain are bad it creates a kernel panic.
 
Not yet because even though there is ChendoChap's method to execute usermode code in WebKit, there is no PS5 kernel .text segment dump to build a kernel ROP chain. Exploiting this kernel vulnerability blind is almost impossible because once the USB device is inserted it corrupts the kernel heap memory and if the offsets in the kernel ROP chain are bad it creates a kernel panic.


=== Patched ===
=== Patched ===
Line 371: Line 303:
Potentially vulnerable on PS5 FWs <= 4.03.
Potentially vulnerable on PS5 FWs <= 4.03.


= Hypervisor =
= Secure Loader =


Without a Hypervisor bypass/compromise, you are essentially limited to "data-only" attacks in kernel and usermode. Since patching the kernel is the most straightforward and direct way to achieve true homebrew on the PlayStation 5, bypassing or compromising the PS5 Hypervisor is necessary. Getting code execution in the PS5 Hypervisor allows one to dump and modify kernel .text segment, and to disable some protections. Moreover, chained with a higher level vulnerability, Hypervisor code can dump AMD PSP memory.
== Symmetric PS5 root keys dump by software exploit by Fail0verflow ==


== <=4.51 - Hypervisor bypass vulnerability ==
See [https://twitter.com/fail0verflow/status/1457526453105569793 Fail0verflow's announcement on Twitter (2021-11-08)]


=== Credits ===
Fail0verflow either has a bootrom execution exploit or an AMD/ARM PSP hack.


* Discovered by anonymous (probably shuffle from fail0verflow or TheFloW). Announced by Flatz (2024-10-05).
''It is speculated that this exploit is a derivative of the ZenBleed [https://nvd.nist.gov/vuln/detail/CVE-2023-20593 CVE-2023-20593] exploit, as the PS5 APU is a custom ZEN 2 Ryzen chip.''


=== Bug description ===
This allows to decrypt on PC most parts of the PS5 System Software files including:
* PUP
* secure loader (?AMD? ARM Platform Security Processor module) of Oberon
And by derivation, mostly like on PS Vita:
* secure modules
* kernel boot loader / BIOS
* non-secure kernel
* usermode system modules


* Not disclosed yet.
Potentially unpatched.


=== Patched ===
= Hypervisor =
 
* Patched since PS5 FW 5.00.
 
== <=?2.70? - APIC pointers in kernel data segment ==


=== Credits ===
== <= ?10.01? - APIC pointers in kernel data segment ==


* Discovered by flatz. Disclosed publicly by flatz (2024-10-09).
* Discovered by flatz. Disclosed publicly by flatz (2024-10-09).
=== Bug description ===


The apic_ops structure is located in the PS5 kernel .data segment which has RW permissions. Using a kernel vulnerability, you can overwrite a function pointer inside the apic_ops structure, like xapic_mode. This allows to launch a ROP chain but one has to bypass the CFI protection. After doing a PS5 suspend/resume cycle, the ROP code will be executed before Hypervisor restarts. The ROP chain can apply patches in kernel .text section.
The apic_ops structure is located in the PS5 kernel .data segment which has RW permissions. Using a kernel vulnerability, you can overwrite a function pointer inside the apic_ops structure, like xapic_mode. This allows to launch a ROP chain but one has to bypass the CFI protection. After doing a PS5 suspend/resume cycle, the ROP code will be executed before Hypervisor restarts. The ROP chain can apply patches in kernel .text section.
Line 401: Line 334:
* [https://twitter.com/flat_z/status/1843966331093438891 flatz explanation on twitter (2024-10-09)]
* [https://twitter.com/flat_z/status/1843966331093438891 flatz explanation on twitter (2024-10-09)]


=== Patched ===
* Maybe unpatched as of PS5 FW 10.01.


* Maybe on PS5 FW 3.00.
== <=4.51 - Hypervisor bypass vulnerability ==


== <=2.70 - System Level debug flag in kernel data segment and not wiped after rest mode (Byepervisor bug #2) ==
* Discovered by anonymous (probably fail0verflow or TheFloW). Announced by Flatz (2024-10-05).


=== Credits ===
* Patched since PS5 FW 5.00.
 
* Discovered by Specter and ChendoChap (2023-07-01, [https://twitter.com/SpecterDev/status/1840303332763512837 Specter's announcement]).
* Disclosed publicly by Specter at Hardwear.io 2024 conference (2024-10-24).
 
=== Bug description ===
 
On PS5 System Software version 2.70 and lower, the System Quality Assurance (QA) flags are shared between the Hypervisor and the guest kernel. When the hypervisor initializes, the init code for constructing nested page tables will check QA flags for the System Level (SL) debugging flag. If this flag is set, the nested Page Table Entries (PTEs) will not have the xotext bit set for kernel .text pages, and further the kernel .text pages will also have the write bit set.
 
These flags are not reinitialized by the Secure Loader upon resume from PS5 sleep mode, though the hypervisor is. By setting the SL flag, then putting the system to sleep and resuming, we can edit the guest kernel's page tables to make kernel .text pages readable and writable, allowing kernel dump and patches.
 
=== Analysis ===
 
* [https://github.com/PS5Dev/Byepervisor/blob/main/Byepervisor_%20Breaking%20PS5%20Hypervisor%20Security.pdf Writeup of Byepervisor by Specter (2024-10-26)]
 
=== Implementation ===
 
* [https://github.com/PS5Dev/Byepervisor Implementation of Byepervisor bug #2 by Specter (2024-10-24)]
* [https://www.youtube.com/watch?v=lkd0qgr-4zk Demonstration video of Byepervisor bug #2 by Specter (2024-10-22)]
 
=== Patched ===
 
'''Yes''' since PS5 FW 3.00.
 
== <=2.70 - Hypervisor virtual tables in kernel data segment (Byepervisor bug #1) ==
 
=== Credits ===
 
* Discovered by Specter and ChendoChap (2023-07-01, [https://twitter.com/SpecterDev/status/1840303332763512837 Specter's announcement]) and Flatz (before 2023-07-27).
* Disclosed publicly by Specter at Hardwear.io 2024 conference (2024-10-24).
 
=== Bug description ===
 
On PS5 System Software version 2.70 and lower, the Hypervisor's [[Hypervisor#Hypercalls]] virtual tables are shared with the guest kernel. It is possible to hijack some entries (for example VMMCALL_HV_SET_CPUID_PS4) in the hypercalls virtual table to jump to a ROP chain. On System Software version 2.70 and lower, this virtual table is stored in the kernel .data segment. By using two ROP chains, one for setting up hypervisor registers and one for executing code in hypervisor. Indeed, the registers used by the Hypervisor are preserved accross Virtual Machine exit boundary. The ROP chain disables Nested Paging (NPT) and Guest Mode Execute Trap (GMET), which allows us to disable eXecute Only Memory (XOM) aka xotext in the kernel Page Table Entries (PTEs) to dump it, as well as enabling write in the PTEs to hook/patch the kernel as well.
 
This method requires a fair number of gadgets and offsets, which is the main reason this exploit is deprecated over the Byepervisor bug #2. This method also currently only breaks the hypervisor on the core the ROP chain runs on. The hypervisor is still active on other cores and would need to be disabled.
 
=== Analysis ===
 
* [https://github.com/PS5Dev/Byepervisor/blob/main/Byepervisor_%20Breaking%20PS5%20Hypervisor%20Security.pdf Writeup of Byepervisor by Specter (2024-10-26)]
 
=== Implementation ===
 
* [https://github.com/PS5Dev/Byepervisor/tree/main/_old_jump_table_exploit Implementation of Byepervisor bug #1 by Specter (2024-10-24)]
 
=== Patched ===
 
'''Yes''' since PS5 FW 3.00.
 
== <=2.70 - Hypervisor integrated as part of the kernel binary ==
 
=== Credits ===
 
* Discovered by shuffle from fail0verflow (in 2020), Specter and ChendoChap (2023-07-01) and Flatz (before 2023-07-27).
 
=== Bug description ===
 
On PS5 System Software version 2.70 and lower, the Hypervisor is integrated as part of the kernel binary. This makes Hypervisor exploitation easier as it can be triggered by usermode directly without the need of a kernel exploit. Later versions have the Hypervisor as a separately loaded component.
 
* See [[Hypervisor#In-Kernel_Hypervisor_.28.3C.3D_2.70.29]] and [https://wololo.net/2023/07/02/ps5-specterdev-shares-details-on-in-kernel-hypervisor-earlier-versions-of-the-ps5-hypervisor-found-in-firmwares/ wololo article (2023-07-02)].
 
=== Patched ===
 
'''Yes''' since PS5 FW 3.00.
 
= Secure Loader (software) - AMD Platform Security Processor (hardware) =
 
* The PS5 [[APU]] is a custom AMD ZEN 2 Ryzen chip that includes the [[AMD Platform Security Processor]] and the AMD SMU.
 
* The AMD Platform Security Processor runs the [[Secure Loader]] that is in charge of loading and executing [[Secure Modules]], like on PS4. The Secure Loader exports some SM management services to kernel through a mailbox.
 
* With a [[Hypervisor]] exploit, it is possible to exploit a vulnerability to dump the AMD Platform Security Processor memory. This dump contains the PS5 [[Secure Loader]]. This leads to PS5 symmetric root keys dump, that can then be used for decryption of most Secure Modules. This allows to decrypt on PC most parts of the PS5 System Software files (see also PS Vita 0xAA key fail impact) including:
* [[Secure Modules]]
* [[PUP]]
* kernel boot loader / [[BIOS]]
* non-secure [[Kernel]]
* usermode system [[Modules|modules]]
 
== <=2.70 - Software vulnerability leading to Secure Loader dump from Hypervisor ==
 
=== Credits ===
 
* Discovered by Shawn Hoffman (shuffle of fail0verflow) before 2021-09-08 and announced on 2021-11-08 ([https://twitter.com/fail0verflow/status/1457526453105569793 Fail0verflow's announcement on Twitter (2021-11-08)])
* Discovered independently and announced on 2023-07-27 by flatz ([https://twitter.com/flat_z/status/1684554194366107650 flatz's announcement on Twitter (2023-07-27)]).
 
=== Bug description ===
 
A software vulnerability triggered from the PS5 Hypervisor leads to [[AMD Platform Security Processor]] memory dump.
 
It must be noted that Shawn Hoffman (fail0verflow, Microsoft Offensive Security Research) reported in 2020, 2021 and 2022 many vulnerabilities affecting AMD Security Processor (ASP), AMD System Management Unit (SMU), AMD Secure Encrypted Virtualization (SEV), and other AMD platform components.
 
From [https://www.amd.com/en/resources/product-security/bulletin/amd-sb-1021.html AMD Server Vulnerabilities – November 2021]:
CVE-2021-26315, CVE-2021-26335, CVE-2021-26336, CVE-2021-26337, CVE-2021-26338, CVE-2021-26351, CVE-2021-26352.
 
The most probable vulnerabilities that could have been used are:
* CVE-2021-26315 6.9 (Medium): A CPU internal ROM improperly implements decryption of signed off-chip firmware. An attacker with physical access or high privileges could potentially exploit this vulnerability leading to the execution of arbitrary code on the PSP, compromising the authenticity of the attestation state. -> Note that flatz stated that he used only software, including Hypervisor code execution, but not hardware for his exploit, so it is the "attacker with high privileges" part that might be concerned.
* CVE-2021-26335 7.5 (High): Improper input and range checking in the AMD Secure Processor (ASP) boot loader image header may allow an attacker to use attacker-controlled values prior to signature validation potentially resulting in arbitrary code execution. -> This reminds of the [https://wiki.henkaku.xyz/vita/Vulnerabilities#First_Loader_SLSK_buffer_overflow CMeP vulnerability] about [https://wiki.henkaku.xyz/vita/SLSK SLSK] header parsing found by Team Molecule for PS Vita.
* Other Shawn Hoffman's CVEs are related to the AMD System Management Unit (SMU) but mainly to trigger Denial of Service and it is not clear how AMD SMU could be used to dump AMD PSP's memory.
 
From [https://www.amd.com/en/resources/product-security/bulletin/amd-sb-1028.html AMD Server Vulnerabilities - May 2022]:
CVE-2021-26347, CVE-2021-26350, CVE-2021-26372, CVE-2021-26373, CVE-2021-26375, CVE-2021-26376, CVE-2021-26378


These CVEs are mostly related to AMD SMU, not AMD PSP, and trigger Denial of Service but not Information Leak nor Code Execution.
== <=2.50 - Hypervisor vulnerability leading to compromise and XOM bypass ==


From [https://www.amd.com/en/resources/product-security/bulletin/amd-sb-1027.html AMD Client Vulnerabilities – May 2022]:
Credits:
CVE-2021-26335, CVE-2021-26336, CVE-2021-26337, CVE-2021-26347, CVE-2021-26350, CVE-2021-26351, CVE-2021-26352, CVE-2021-26372, CVE-2021-26373, CVE-2021-26375, CVE-2021-26376, CVE-2021-26378
* Discovered by Specter (2023-07-01) and Flatz (before 2023-07-27).
* Exploited privately by Specter and ChendoChap (2024-09-29).
* Will be disclosed publicly by Specter at Hardwear.io 2024 conference (2024-10-24).


These AMD Client CVEs are already listed in the 2021 and 2022 AMD Server Security Bulletins.
Analysis:


See also [https://www.psxhax.com/threads/flat_z-confirms-ps5-hypervisor-exploitation-from-ps4-save-game.16063/ flatz's comments].
Bug #1: Unprotected PS5 Hypervisor virtual tables


=== Patched ===
It is possible to hijack VMMCALL_HV_SET_CPUID_PS4's entry in the virtual table to jump to a ROP chain. By using two ROP chains, one for setting up hypervisor registers and one for code execution in hypervisor. Indeed, registers used by the PS5 Hypervisor are preserved accross VM exit boundary.


Maybe since 3.00. Vulnerable on PS5 FWs <= 2.70.
Implementation:
https://github.com/PS5Dev/Byepervisor


== Untested - VZEROUPPER Instruction on AMD Zen 2 can Leak Register File State - ZenBleed vulnerability (CVE-2023-20593) ==
* Patched since PS5 FW 3.00.


For more information see [[PS-Chi]]. It is still untested on PS5.
== <=2.50 - Hypervisor integrated as part of the kernel binary ==


=== Credits ===
* Discovered by Specter (2023-07-01) and Flatz (before 2023-07-27).
* Exploited privately by Specter and ChendoChap (2024-09-29).


* Discovered by Tavis Ormandy of Google Information Security, helped by Eduardo Vela Nava, Alexandra Sandulescu and Josh Eads.
* This makes Hypervisor exploitation easier as it can be triggered by usermode directly without the need of a kernel exploit.
* Reported to AMD by Tavis Ormandy on 2023-05-15.
* AMD publish patches on 2023-07-20. Sony might have fixed the PS5 after this date.
* Publicly disclosed by Tavis Ormandy in 2023-07-24.


=== Bug description ===
* See [[Hypervisor#In-Kernel_Hypervisor_.28.3C.3D_2.50.29]] and [https://wololo.net/2023/07/02/ps5-specterdev-shares-details-on-in-kernel-hypervisor-earlier-versions-of-the-ps5-hypervisor-found-in-firmwares/ wololo article (2023-07-02)].


CVE-2023-20593 works on all AMD Zen 2 class processors, which includes at least the following products:
* This also allows to dump kernel .text segment once one has code execution in hypervisor. See [https://x.com/SpecterDev/status/1840303332763512837 Specter's tweet about PS5 kernel .text dump].


    AMD Ryzen 3000 Series Processors
* Patched since PS5 FW 3.00.
    AMD Ryzen PRO 3000 Series Processors
    AMD Ryzen Threadripper 3000 Series Processors
    AMD Ryzen 4000 Series Processors with Radeon Graphics
    AMD Ryzen PRO 4000 Series Processors
    AMD Ryzen 5000 Series Processors with Radeon Graphics
    AMD Ryzen 7020 Series Processors with Radeon Graphics
    AMD EPYC “Rome” Processors


There is no proof of concept specifically for the PS5, however we do know the PS5 uses a custom AMD Zen 2 chip. This is a hardware bug that can be triggered by software to exploit the system.
= Platform Secure Processor =


* [https://www.amd.com/en/resources/product-security/bulletin/amd-sb-7008.html AMD Security Bulletin for CVE-2023-20593]
== <=2.50 - PSP dump via Hypervisor exploit ==
* https://nvd.nist.gov/vuln/detail/CVE-2023-20593


=== Analysis ===
* Discovered by Fail0verflow before 2023-07-27, discovered independently and announced on 2023-07-27 by flatz ([https://twitter.com/flat_z/status/1684554194366107650 Announcement by flatz (2023-07-27)]).


* [https://www.vu.ls/blog/exploiting-zenbleed-from-chrome/ Writeup of exploiting zenbleed in Google Chrome by Trent Novelly (2023-10-10)]
* Thanks to this software exploit, flatz got access to most PS5 decryption keys.
* [https://lock.cmpxchg8b.com/zenbleed.html Writeup of zenbleed by Tavis Ormandy (2023-07-24)]
* [https://github.com/google/security-research/tree/master/pocs/cpus/zenbleed PoC and analysis of zenbleed by Tavis Ormandy (2023-07-24)]
* [https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/commit/?id=0bc3126c9cfa0b8c761483215c25382f831a7c6f AMD fix commit]


=== Patched ===
* See also [https://www.psxhax.com/threads/flat_z-confirms-ps5-hypervisor-exploitation-from-ps4-save-game.16063/ flatz's comments].


Maybe since PS5 FW around 7.61 as AMD has since patched it by firmware update.
* Vulnerable on PS5 FWs <= 2.50 and potentially patched since 3.00.


= Southbridge =
= Southbridge =
Line 566: Line 389:
== EMC, EFC and EAP vulnerabilities leading to code execution ==
== EMC, EFC and EAP vulnerabilities leading to code execution ==


=== Credits ===
Credits:
 
* Disclosed by Shawn Hoffman (of SYMBRKRS LLC, @shuffle2 of fail0verflow) at the Security Analyst Summit Conference 2024 (2024-10-23).
* Disclosed by Shawn Hoffman (of SYMBRKRS LLC, @shuffle2 of fail0verflow) at the Security Analyst Summit Conference 2024 (2024-10-23).


=== Bug description ===
Bug description:
 
Exploits allowing code execution on EMC, EFC and EAP have been detailed, along with release of a tool which implements the exploits. The process of initial exploration/discovery is also be briefly covered. From a security researcher point of view, the exploits are interesting as they cover a hard-to-spot bug in a firmware state machine, and abusing hardware misconfiguration to bypass memory protection measures. The exploits/tooling allow for further research into the system.
These exploits allow code execution on EMC, EFC and EAP. The exploits are interesting as they cover a hard-to-spot bug in a firmware state machine, and abusing hardware misconfiguration to bypass memory protection measures.


It is required to solder to [[Service Connectors]] to make use of these vulnerabilities.
It is required to solder to [[Service Connectors]] to make use of these vulnerabilities.


=== Analysis ===
Analysis:
* https://symbrkrs.com/presentations/Beyond_Oberon-SAS2024.pdf


* [https://symbrkrs.com/presentations/Beyond_Oberon-SAS2024.pdf Slides of the presentation at SAS24 Conference by shuffle (2024-10-23)]
Implementation:
* https://github.com/symbrkrs/ps5-uart


=== Implementation ===
= Unclassified =
 
* [https://github.com/symbrkrs/ps5-uart Software to be used with a Raspberry Pi Pico to unlock PS5 EMC UART and EMC/EFS/EAP code execution by shuffle (2024-10-23)]


In shuffle's implementation, only the Raspberry Pi Pico is supported with the UF2 firmware.
== TheFloW's neither usermode nor kernel exploit ==


Additionally, only the following PS5 EMC versions are supported for now (see [https://github.com/symbrkrs/ps5-uart/blob/main/uart/emc_shellcode.S shuffle's ps5-uart source code]):
* On 2024-08-29, TheFloW received 10.000$ from Sony for disclosing privately on Sony's HackerOne bug bounty program a vulnerability.
* E1E 0001 0000 0004 13d0
* E1E 0001 0002 0003 1580
* E1E 0001 0004 0002 1752


= Unclassified =
* According to Flatz, this vulnerability affects neither usermode nor kernel, so it might be either about hardware or more likely about Hypervisor.


== <=?9.40? - TheFloW's neither usermode nor kernel vulnerability ==
* This vulnerability probably got patched in PS5 FW 10.00 or in PS5 FW 9.60, or if it is not patchable by software, is patched in new hardware revisions of the PS5.


* On 2024-08-29, TheFloW received 10.000$ from Sony for disclosing privately a vulnerability on Sony's HackerOne bug bounty program.
= Hardware =
 
* According to Flatz, this vulnerability affects neither usermode nor kernel, so it might be about hardware (AMD PSP maybe) or still software but more likely about Hypervisor or Secure Loader or Secure Modules.
 
=== Patched ===


Maybe in PS5 FW 10.00 or in PS5 FW 9.60, or if it is not patchable by software, is patched in new hardware revisions of the PS5.
== Untested: ZenBleed (''[https://nvd.nist.gov/vuln/detail/CVE-2023-20593 CVE-2023-20593]) leak register contents directly from the CPU.'' ==
This is a well documented CPU vulnerability in AMD Processors with the Zen 2 microarchitecture. There is no proof of concept specifically for the PS5, however we do know the PS5 uses a custom Zen 2 chip. This is a hardware bug that uses software to exploit the system. AMD has since patched this with [https://www.amd.com/en/resources/product-security/bulletin/amd-sb-7008.html software], but we are unsure of the status for the latest PS5 firmware (assumed to be patched). For more information see [[PS-Chi]].
Please note that all contributions to PS5 Developer wiki are considered to be released under the GNU Free Documentation License 1.2 (see PS5 Developer wiki:Copyrights for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource. Do not submit copyrighted work without permission!

To protect the wiki against automated edit spam, we kindly ask you to solve the following hCaptcha:

Cancel Editing help (opens in new window)