Editing Vulnerabilities
Jump to navigation
Jump to search
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 3: | Line 3: | ||
== BD-J exploits == | == BD-J exploits == | ||
=== FW <= 7.61 - BD-JB2 - Path traversal sandbox escape by TheFloW === | === FW <=7.61 - BD-JB2 - Path traversal sandbox escape by TheFloW === | ||
==== Credits ==== | |||
* CTurt for the idea based on FreeDVDBoot for PS2 | |||
* TheFloW for the exploits finding, ethical disclose to SCE (2023-09-22) and public disclosure (2023-10-25) | |||
* psxdev, sleirsgoevy and John Törnblom for the public implementations | |||
==== Bug Description ==== | |||
Basing on BD-JB1 exploit files, in /bdmv/bdjo.xml changing bdjo/applicationManagementTable/baseDirectory to a path of the form `file:///app0/cdc/lib/../../../disc/BDMV/JAR/00000.jar` allows loading a JAR Java executable file. | |||
==== Implementations ==== | |||
* [https://twitter.com/theflow0/status/1717088032031982066 PoC by TheFloW (2023-10-25)] | |||
==== Patched ==== | ==== Patched ==== | ||
Line 11: | Line 23: | ||
'''Yes''' on PS5 FW 8.00. | '''Yes''' on PS5 FW 8.00. | ||
=== FW <= 4.51 - BD-JB - Five vulnerabilities chained by TheFloW === | === FW <=4.51 - BD-JB - Five vulnerabilities chained by TheFloW === | ||
See [https:// | ==== Credits ==== | ||
* CTurt for the idea based on FreeDVDBoot for PS2 | |||
* TheFlow for the exploits finding and public disclosure. See [https://twitter.com/theflow0/status/1457362920501829636 TheFloW's PS5 kernel exploit announcement (2021-11-07)]. | |||
* psxdev, sleirsgoevy and John Törnblom for the public implementations | |||
==== Implementations ==== | ==== Implementations ==== | ||
Line 28: | Line 44: | ||
== WebKit exploits == | == WebKit exploits == | ||
WebKit exploits are harder to make and do not even give arbitrary RW because of PS5 memory protections. | |||
=== Modal Browser HTTPS Bypass === | === Modal Browser HTTPS Bypass === | ||
* It is possible to bypass HTTPS in the modal browser, if you reply to the HTTPS CONNECT with a standard HTTP 1.1 response, instead of attempting to create a tunnel. The | * It is possible to bypass HTTPS in the modal browser, if you reply to the HTTPS CONNECT with a standard HTTP 1.1 response, instead of attempting to create a tunnel. The browser will just display that response. The downside to this is you have no idea what the contents of even the HTTP REQUEST would have been, but it is useful for directing the web browser to any website you want. | ||
=== FW 3.00-4.51 - WebCore::CSSFontFaceSet vulnerabilities leading to usermode ROP code execution === | |||
=== FW | |||
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 58: | ||
==== Implementations ==== | ==== Implementations ==== | ||
* [https://github.com/ChendoChap/PS5-Webkit-Execution Implementation for PS5 | * [https://github.com/ChendoChap/PS5-Webkit-Execution Implementation for PS5 by ChendoChap] | ||
==== Patched ==== | ==== Patched ==== | ||
'''No''' as of PS5 FW 4.51 (need to test on PS5 FWs >=5.00) | '''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. | 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 == | ||
=== | === PS2 games savedata exploits === | ||
See [https://www.psdevwiki.com/ps4/Vulnerabilities# | See [https://www.psdevwiki.com/ps4/Vulnerabilities#Usermode_Exploits_.28Game_Savedata.29]. | ||
=== PS4/PS5 PS2emu sandbox escape (mast1c0re) === | === PS4/PS5 PS2emu sandbox escape (mast1c0re) === | ||
See [https://www.psdevwiki.com/ps4/Vulnerabilities#PS4.2FPS5_PS2emu_sandbox_escape_.28mast1c0re.29 | See [https://www.psdevwiki.com/ps4/Vulnerabilities#PS4.2FPS5_PS2emu_sandbox_escape_.28mast1c0re.29]. | ||
== PS4 emulator exploits == | == PS4 emulator exploits == | ||
Nothing yet. | Nothing yet. | ||
= Kernel = | = Kernel = | ||
== | == Physical Memory readable by kernel (Meme Dumper) == | ||
=== Credits === | === Credits === | ||
Discovered by cheburek3000. Released on 2023-02-07 by cheburek3000. | Discovered by cheburek3000. Released on 2023-02-07 by cheburek3000. | ||
=== Bug Description === | === Bug Description === | ||
Steps: | Steps: | ||
1. Find kernel_pmap_store offset in kernel data | 1. Find kernel_pmap_store offset in kernel data. You can guess its location by specific signature (see guess_kernel_pmap_store_offset code). | ||
2. | 2. Luckily it has physical and virtual addresses for PML4. And through them you can find physical memory mapped directly to the kernel memory (DMAP). See PADDR_TO_DMAP macro and vmparam.h from FreeBSD for reference. | ||
3. Use page tables to convert any kernel | 3. Use page tables to convert any kernel address to physical address (see vaddr_to_paddr code). | ||
4. Access data by physical address through DMAP. | 4. Access data by physical address through DMAP. | ||
=== Exploit Implementation === | === Exploit Implementation === | ||
* [https://github.com/cheburek3000/meme_dumper] | * [https://github.com/cheburek3000/meme_dumper] | ||
=== Patched === | === Patched === | ||
'''No''' in PS5 FW 4.51. | '''No''' in PS5 FW 4.51. | ||
---- | ---- | ||
== FW | == FW 3.00-4.51 or 5.00 - IPV6_2292PKTOPTIONS UaF (yielding arbitrary kernel R/W) (CVE-2020-7457) == | ||
See the [https://www.psdevwiki.com/ps4/Vulnerabilities#FW_.3C.3D_7.02_-_IPV6_2292PKTOPTIONS_UaF_.28yielding_arbitrary_kernel_R.2FW.29_.28CVE-2020-7457.29 PS4 wiki]. | See the [https://www.psdevwiki.com/ps4/Vulnerabilities#FW_.3C.3D_7.02_-_IPV6_2292PKTOPTIONS_UaF_.28yielding_arbitrary_kernel_R.2FW.29_.28CVE-2020-7457.29 PS4 wiki]. | ||
=== Credits === | === Credits === | ||
* Discovered for PS4 and ported to PS5 by TheFloW. | * Discovered for PS4 and ported to PS5 by TheFloW. | ||
=== Exploit Implementation === | === Exploit Implementation === | ||
* 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- | * [https://github.com/Cryptogenic/PS5-4.03-Kernel-Exploit Kernel exploit implementation for PS5 3.00-4.51 by Specter (2022-10-02)] | ||
=== Patched === | === Patched === | ||
'''Yes''' in PS5 FW 5.00 or 5.02. Invulnerable in PS5 FW 2.50 and below. | |||
'''Yes''' in PS5 FW 5.00. Invulnerable in PS5 FW 2. | |||
---- | ---- | ||
== FW <= 4.03 - exFAT driver heap-based buffer overflow == | == FW <= 4.03 - exFAT driver heap-based buffer overflow == | ||
=== Credits === | === Credits === | ||
Discovered by TheFloW. Disclosed by ChendoChap. | Discovered by TheFloW. Disclosed by ChendoChap. | ||
=== Exploit Implementation === | === Exploit Implementation === | ||
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. | |||
See the [https://www.psdevwiki.com/ps4/Vulnerabilities#FW_.3C.3D_9.00_-_exFAT_driver_heap-based_buffer_overflow PS4 wiki]. | |||
=== Patched === | === Patched === | ||
'''Yes''' in PS5 FW 4.50. | '''Yes''' in PS5 FW 4.50. | ||
---- | ---- | ||
Line 327: | Line 138: | ||
== SMAP bypass (CVE-2021-29628) == | == SMAP bypass (CVE-2021-29628) == | ||
See also [https://www.psdevwiki.com/ps4/Vulnerabilities#Kernel_SMAP | See also [https://www.psdevwiki.com/ps4/Vulnerabilities#Kernel_SMAP]. | ||
=== Credits === | === Credits === | ||
* Discovered and disclosed publicly by m00nbsd. Disclosed to SIE on 2020-12-01. | * Discovered and disclosed publicly by m00nbsd. Disclosed to SIE on 2020-12-01. | ||
=== Analysis === | === Analysis === | ||
* [https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-29628 CVE-2021-29628 (FreeBSD SMAP bypass) by m00nbsd] | |||
* [https:// | * [https://hackerone.com/reports/1048322 CVE-2021-29628 (PS5 SMAP bypass) by m00nbsd] | ||
* [https:// | |||
=== Bug Description === | === Bug Description === | ||
A SMAP bypass has been found by m00nbsd while working on FreeBSD 12. It is named CVE-2021-29628 and affects FreeBSD 12.2 and later (til it was patched). It does not work on PS4 because PS4 kernel is based on FreeBSD 9 which did not contain the vulnerability and because PS4 SMAP does not come from FreeBSD but is custom from Sony. It used to work on PS5 before it was disclosed and patched. | |||
=== Patched === | === Patched === | ||
'''Yes''' in PS5 FW 2.30 or later according to dates. | '''Yes''' in PS5 FW 2.30 or later according to dates. | ||
---- | ---- | ||
= Secure Kernel = | = Secure Kernel = | ||
Line 371: | Line 162: | ||
Potentially vulnerable on PS5 FWs <= 4.03. | Potentially vulnerable on PS5 FWs <= 4.03. | ||
= | = Secure Loader = | ||
== Symmetric PS5 root keys dump by software exploit by Fail0verflow == | |||
See [https://twitter.com/fail0verflow/status/1457526453105569793 Fail0verflow's announcement on Twitter (2021-11-08)] | |||
Fail0verflow either has a bootrom execution exploit or an AMD/ARM PSP hack. | |||
* | 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 | |||
Potentially unpatched. | |||
= Hardware = | |||
Nothing yet. | |||