Breaking the PS5 Hypervisor via Rest Mode ⚡
⭐ GitHub Repository: PS5Dev/Byepervisor-Reborn
In this video, we explore Byepervisor-Reborn, an open-source project that leverages an S3 resume vulnerability in the PlayStation 5 hypervisor to achieve full read and write access across firmware versions..
#github #coding #opensource #programming #developer
1 like · 1 comment · 344 views
pLabs5/pLinux5-NG: PS5 Linux for high FW's (8.xx, 9.xx, 10.xx, 11.xx, 12.xx, 13.xx)
PS5 Linux for high FW's (8.xx, 9.xx, 10.xx, 11.xx, 12.xx, 13.xx)
pLinux5-NG
boot linux on PS5 consoles running high firmware (8.xx through 13.60)
this project is a port/rework of the existing ps5-linux-loader
(which currently works on 3.00 though 7.61) to the new byepervisor-reborn hypervisor escape
- the linux boot pat itself (bzImage/initrd relocation, boot_params/e820 setup,
hardware bring up, SVM/IOMMU teardown, the jump to startup_64) is brought over
from the existing ps5-linux-loader
- the **escape* -- how we get code running in hypervisor root mode on all cores on high firmware --
is what has changed in this project. on 3.00 through 7.61 its flatz' ACPI-wakeup ROP
chain; on high firmware it is a khook on the S3-resume HV_MP_STARTUP_CALL path. as implemented
in Byepervisor-Reborn.
usage
CRITICAL
ps5 configuration:
enable rest mode features:
settings -> system -> power saving -> features available in rest mode, set Supply Power to USB Ports to Always
disable HDMI device link:
settings -> system -> HDMI, set Enable HDMI Device Link to be off
installation
follow ps5-linux-loader installation until you get to
step 4, then come back here.
running the jailbreak
- set your playstations DNS under:
settings -> network -> settings -> set up internet connection then click the options button on
your controller, then select advanced settings, from there set primary DNS to 45.56.67.85 then select ok
you will get a popup saying internet connection failed, thats good, continue.
- navigate to the users guide:
settings -> Guide & Tips, Health and Safety, and Other Information -> User's Guide.
when a popup appears saying: the secuirty of the page can't be confirmed..., click yes
you should end up in a page with big letters saying RELAPSE, click the Jailbreak button & wait for it to finish
it finishing will be marked by elfldr starting.
now download the pLinux5-NG.elf from releases, or see [building](#building) to build from source, then move to [sending](###sending)
sending
on linux/unix, use:
# (from the area with the repo + pLinux5-NG.elf)
cd scripts/
chmod +x send.sh
./send.sh PS5_IP=<Playstation 5s IP> PS5_PORT=9021 pLinux5-NG.elf
building
Requires the PS5 payload SDK and the
pLabs5 host toolchain override:
export PS5_PAYLOAD_SDK=/path/to/ps5-payload-sdk
export LLVM_CONFIG=/path/to/pLabs5-SDK/tools/nixos/llvm-config
make -j
The output is bin/pLinux5-NG.elf.
The shellcode blobs are compiled freestanding with the host gcc
(-ffreestanding -nostdlib) and embedded as C headers; scripts/bin2c.py
replaces xxd -i, which is not present in every environment.
Sending
socat -t 99999999 - TCP:$PS5IP:9021 < bin/pLinux5-NG.elf
# or
nc -N $PS5IP 9021 < bin/pLinux5-NG.elf
License
The project is licensed under the AGPL-3.0 (see [LICENSE](LICENSE)).
The boot path and shellcode are derived from ps5-linux-loader, which is
GPL-3.0; those files retain their original authorship and are used here in
accordance with the GPL/AGPL compatibility provisions. The high-firmware escape
is adapted from Byepervisor-Reborn. See [PORTING.md](PORTING.md#credits).
legal
I, niko86c/pLabs5, as well as its contributers, are not affiliated with, associated with, sponsored by, endorsed by or otherwise established with Sony Interactive Entertainment, Playstation, or any of their other companies or works unless explictly stated otherwise.
*Just because a explict mention above isn't present does **NOT mean otherwise.*
All software is provided "as is", without warranty of ANY kind, express
or implied. Use all software at your own risk.
You are solely responsible for complying with terms of service of all programs, as well as any applicable law.
199 points · 44 comments
ByperVisor Reborn Indeed!!
The hypervisor has finally been defeated, which means we could soon be able to run Linux and use FPKGs on PS5 firmware up to 13.60
This means smaller game sizes, better performance, and improved compatibility since we’ll be installing games directly onto the PS5’s internal storage.
I also saw somewhere that it might work up to firmware 14.00 if properly tuned, although that’s not guaranteed yet.
With this new exploit, consoles running different firmware versions could finally be brought together under one jailbreak solution and all firmwares will be joined as one ☝️ . No more trying to buy a different PS5 just because you want to run Linux.
Although, with the recent developments we’ve been seeing, the need for Linux on the PS5 is gradually decreasing because we now have emulators running natively on PS5 hardware. We also have Prospero-Win, a tool that allows us to run PC games on the console.
Nevertheless, this is a huge leap forward for the PS5 jailbreak community. All thanks to the developers who have put in so much work to make sure we get to this stage. Let’s hope it gets released soon
Here’s the link to the GitHub repository, but there’s no complete, ready-to-use public release yet.
PS5Dev/Byepervisor-Reborn
336 points · 40 comments
Here we go! We already have a PS5 hypervisor exploit for versions 6.xx through 13.60.
PS5Dev/Byepervisor-Reborn
38 likes · 2 reposts · 1,630 views
PS5 Hypervisor Exploit Released up to 13.60! (Byepervisor Reborn)
Byepervisor Reborn
Note: This repo should be considered a base exploit for work to be built on top of. It is not useful to regular users in its current release state, this is intended for developers.
Summary
PS5 hypervisor exploit for 6.xx - 13.60 firmware. Bug details can be found here. This bug was initially found by theflow0 and subsequently more people recently w/ assistance of LLMs. The TLDR is that on S3 resume, the startup_mp hypercall is invoked on core 0 to initialize the other AP cores (1-15), and takes a reset vector (rip) as one of the arguments for where the core will execute from. During this time on cores 1-15, an insecure Nested Page Table (NPT) config is applied. We can abuse this to run some shellcode that has R/W into the hypervisor's address space including the VM Control Blocks (VMCBs).
Very similarly to (one version of) byepervisor of old, this exploits the rest mode path too :)
Currently only the following firmwares are fully supported:
- 13.60
- 13.20
- 13.00 (untested)
However this bug should technically be exploitable as low as 6.xx. With modifications, it could work on 14.00 as well, but this is not provided here, especially since there is no public 14.00 kernel exploit anyways.
Important Notes
- You may need to go to Settings -> System -> Power Saving -> Features Available in Rest Mode
- Set Supply Power to USB Ports to "Always"
- This payload is designed to run through the elfldr
- This is somewhat important because the payload expects to continue running on resume from rest mode, and it relies on elfldr for this
- Post-resume, this payload should leave the system in a state where the kernel can be dumped and patched
- XOM/xotext is disabled, write is enabled
- Upon resume, it will print the first 8 bytes of the kernel .text in a notification to demonstrate XOM defeat
- This does not ship with any patches (HEN or otherwise)
- Consider this a bring your own patches scenario, we didn't feel like doing this.
- This payload needs to be aware of whether or not the console is a pro or a non-pro unit
- Sony decided to waste their added 2GB precious DDR5 that pro units have on the hypervisor, so it is mapped in a different physical address range
- 0x062800000 PA for non-pro units
- 0x8E0800000 PA for pro units
- Open an issue if the payload mis-identifies what your system is, and note the hex value printed in brackets in the notification
- If the system shuts down when resuming from rest mode, it means the exploit failed
- If it failed, likely there's something wrong with the payload and your situation is not supported, this exploit should be 99.9% stable
Build notes
This exploit payload is built using the PS5-Payload-Dev SDK. Note also that the build for break_hv_payload/ is slightly special, as it gets compiled to a flat binary of minimal size. The entirety of code in break_hv_payload/ runs in supervisor/kernel mode.
Adding firmware support
To add support for a different firmware, the main thing that needs to be added is the header file in include/offsets/. This includes all the kernel offsets that are needed.
Once the offsets have been added, the following functions need to be modified to add cases to the switch statements:
- kgadget()
- kdlsym()
- rawoff()
Some firmwares might require more extensive modifications if gadgets don't exist for them. 6.xx for example likely will not have some gadgets that are used on 13.xx.
How to use
1. Run kernel exploit chain and get to elfldr
2. Send byepervisor.elf
3. Follow the directions of the notifications
386 points · 121 comments
Hypervisor defeated! Bypervisor-Reborn released!
159 points · 64 comments
Hypervisor Exploit for PS5 13-13.60, not currently useful for the average user but could lead to a lot of interesting projects in the near future.
Source: @StretchEcho & Chizy.
PS5Dev/Byepervisor-Reborn
36 likes · 2 reposts · 1,680 views
It's here!!!!
PS5Dev/Byepervisor-Reborn
50 likes · 2 reposts · 2,615 views
➭ PS5 hypervisor exploit for 6.xx - 13.60 firmware 🔥🧐
PS5Dev/Byepervisor-Reborn
10 likes · 2 reposts
➭ PS5 hypervisor exploit for 6.xx - 13.60 firmware 🔥🧐
PS5Dev/Byepervisor-Reborn
117 likes · 11 reposts · 5,237 views
Mentions
Breaking the PS5 Hypervisor via Rest Mode ⚡ ⭐ GitHub Repository: PS5Dev/Byepervisor-Reborn In this video, we explore Byepervisor-Reborn, an open-source project that leverages an S3 resume vulnerability in the PlayStation 5 hypervisor to achieve full read and write access across firmware versions.. #github #coding #opensource #programming #developer
pLabs5/pLinux5-NG: PS5 Linux for high FW's (8.xx, 9.xx, 10.xx, 11.xx, 12.xx, 13.xx) PS5 Linux for high FW's (8.xx, 9.xx, 10.xx, 11.xx, 12.xx, 13.xx) pLinux5-NG boot linux on PS5 consoles running high firmware (8.xx through 13.60) this project is a port/rework of the existing ps5-linux-loader (which currently works on 3.00 though 7.61) to the new byepervisor-reborn hypervisor escape - the linux boot pat itself (bzImage/initrd relocation, boot_params/e820 setup, hardware bring up, SVM/IOMMU teardown, the jump to startup_64) is brought over from the existing ps5-linux-loader - the **escape* -- how we get code running in hypervisor root mode on all cores on high firmware -- is what has changed in this project. on 3.00 through 7.61 its flatz' ACPI-wakeup ROP chain; on high firmware it is a khook on the S3-resume HV_MP_STARTUP_CALL path. as implemented in Byepervisor-Reborn. usage CRITICAL ps5 configuration: enable rest mode features: settings -> system -> power saving -> features available in rest mode, set Supply Power to USB Ports to Always disable HDMI device link: settings -> system -> HDMI, set Enable HDMI Device Link to be off installation follow ps5-linux-loader installation until you get to step 4, then come back here. running the jailbreak - set your playstations DNS under: settings -> network -> settings -> set up internet connection then click the options button on your controller, then select advanced settings, from there set primary DNS to 45.56.67.85 then select ok you will get a popup saying internet connection failed, thats good, continue. - navigate to the users guide: settings -> Guide & Tips, Health and Safety, and Other Information -> User's Guide. when a popup appears saying: the secuirty of the page can't be confirmed..., click yes you should end up in a page with big letters saying RELAPSE, click the Jailbreak button & wait for it to finish it finishing will be marked by elfldr starting. now download the pLinux5-NG.elf from releases, or see [building](#building) to build from source, then move to [sending](###sending) sending on linux/unix, use: # (from the area with the repo + pLinux5-NG.elf) cd scripts/ chmod +x send.sh ./send.sh PS5_IP=<Playstation 5s IP> PS5_PORT=9021 pLinux5-NG.elf building Requires the PS5 payload SDK and the pLabs5 host toolchain override: export PS5_PAYLOAD_SDK=/path/to/ps5-payload-sdk export LLVM_CONFIG=/path/to/pLabs5-SDK/tools/nixos/llvm-config make -j The output is bin/pLinux5-NG.elf. The shellcode blobs are compiled freestanding with the host gcc (-ffreestanding -nostdlib) and embedded as C headers; scripts/bin2c.py replaces xxd -i, which is not present in every environment. Sending socat -t 99999999 - TCP:$PS5IP:9021 < bin/pLinux5-NG.elf # or nc -N $PS5IP 9021 < bin/pLinux5-NG.elf License The project is licensed under the AGPL-3.0 (see [LICENSE](LICENSE)). The boot path and shellcode are derived from ps5-linux-loader, which is GPL-3.0; those files retain their original authorship and are used here in accordance with the GPL/AGPL compatibility provisions. The high-firmware escape is adapted from Byepervisor-Reborn. See [PORTING.md](PORTING.md#credits). legal I, niko86c/pLabs5, as well as its contributers, are not affiliated with, associated with, sponsored by, endorsed by or otherwise established with Sony Interactive Entertainment, Playstation, or any of their other companies or works unless explictly stated otherwise. *Just because a explict mention above isn't present does **NOT mean otherwise.* All software is provided "as is", without warranty of ANY kind, express or implied. Use all software at your own risk. You are solely responsible for complying with terms of service of all programs, as well as any applicable law.
ByperVisor Reborn Indeed!! The hypervisor has finally been defeated, which means we could soon be able to run Linux and use FPKGs on PS5 firmware up to 13.60 This means smaller game sizes, better performance, and improved compatibility since we’ll be installing games directly onto the PS5’s internal storage. I also saw somewhere that it might work up to firmware 14.00 if properly tuned, although that’s not guaranteed yet. With this new exploit, consoles running different firmware versions could finally be brought together under one jailbreak solution and all firmwares will be joined as one ☝️ . No more trying to buy a different PS5 just because you want to run Linux. Although, with the recent developments we’ve been seeing, the need for Linux on the PS5 is gradually decreasing because we now have emulators running natively on PS5 hardware. We also have Prospero-Win, a tool that allows us to run PC games on the console. Nevertheless, this is a huge leap forward for the PS5 jailbreak community. All thanks to the developers who have put in so much work to make sure we get to this stage. Let’s hope it gets released soon Here’s the link to the GitHub repository, but there’s no complete, ready-to-use public release yet. PS5Dev/Byepervisor-Reborn
Here we go! We already have a PS5 hypervisor exploit for versions 6.xx through 13.60. PS5Dev/Byepervisor-Reborn
PS5 Hypervisor Exploit Released up to 13.60! (Byepervisor Reborn) Byepervisor Reborn Note: This repo should be considered a base exploit for work to be built on top of. It is not useful to regular users in its current release state, this is intended for developers. Summary PS5 hypervisor exploit for 6.xx - 13.60 firmware. Bug details can be found here. This bug was initially found by theflow0 and subsequently more people recently w/ assistance of LLMs. The TLDR is that on S3 resume, the startup_mp hypercall is invoked on core 0 to initialize the other AP cores (1-15), and takes a reset vector (rip) as one of the arguments for where the core will execute from. During this time on cores 1-15, an insecure Nested Page Table (NPT) config is applied. We can abuse this to run some shellcode that has R/W into the hypervisor's address space including the VM Control Blocks (VMCBs). Very similarly to (one version of) byepervisor of old, this exploits the rest mode path too :) Currently only the following firmwares are fully supported: - 13.60 - 13.20 - 13.00 (untested) However this bug should technically be exploitable as low as 6.xx. With modifications, it could work on 14.00 as well, but this is not provided here, especially since there is no public 14.00 kernel exploit anyways. Important Notes - You may need to go to Settings -> System -> Power Saving -> Features Available in Rest Mode - Set Supply Power to USB Ports to "Always" - This payload is designed to run through the elfldr - This is somewhat important because the payload expects to continue running on resume from rest mode, and it relies on elfldr for this - Post-resume, this payload should leave the system in a state where the kernel can be dumped and patched - XOM/xotext is disabled, write is enabled - Upon resume, it will print the first 8 bytes of the kernel .text in a notification to demonstrate XOM defeat - This does not ship with any patches (HEN or otherwise) - Consider this a bring your own patches scenario, we didn't feel like doing this. - This payload needs to be aware of whether or not the console is a pro or a non-pro unit - Sony decided to waste their added 2GB precious DDR5 that pro units have on the hypervisor, so it is mapped in a different physical address range - 0x062800000 PA for non-pro units - 0x8E0800000 PA for pro units - Open an issue if the payload mis-identifies what your system is, and note the hex value printed in brackets in the notification - If the system shuts down when resuming from rest mode, it means the exploit failed - If it failed, likely there's something wrong with the payload and your situation is not supported, this exploit should be 99.9% stable Build notes This exploit payload is built using the PS5-Payload-Dev SDK. Note also that the build for break_hv_payload/ is slightly special, as it gets compiled to a flat binary of minimal size. The entirety of code in break_hv_payload/ runs in supervisor/kernel mode. Adding firmware support To add support for a different firmware, the main thing that needs to be added is the header file in include/offsets/. This includes all the kernel offsets that are needed. Once the offsets have been added, the following functions need to be modified to add cases to the switch statements: - kgadget() - kdlsym() - rawoff() Some firmwares might require more extensive modifications if gadgets don't exist for them. 6.xx for example likely will not have some gadgets that are used on 13.xx. How to use 1. Run kernel exploit chain and get to elfldr 2. Send byepervisor.elf 3. Follow the directions of the notifications
Hypervisor defeated! Bypervisor-Reborn released!
Hypervisor Exploit for PS5 13-13.60, not currently useful for the average user but could lead to a lot of interesting projects in the near future. Source: @StretchEcho & Chizy. PS5Dev/Byepervisor-Reborn
It's here!!!! PS5Dev/Byepervisor-Reborn
➭ PS5 hypervisor exploit for 6.xx - 13.60 firmware 🔥🧐 PS5Dev/Byepervisor-Reborn
➭ PS5 hypervisor exploit for 6.xx - 13.60 firmware 🔥🧐 PS5Dev/Byepervisor-Reborn