Vulnerabilities
Unpatched
XDR-DRAM exploit
Credits
- zecoxao (2015-05-10) for disclosing the vulnerability
Analysis
Bug description
In every PS3 console, there is a serial data line on the console’s XDR chip used to initialize the RAM's test pattern. It has read/write mode and it is freely accessible. The address is obtained from the XDR interface. You can see it on service manual. You can write a payload to memory for example on a loaded game or in a game savedata. Then it will run the payload and do stuff.
Some pictures of CMD, SCK, SDO and RST can be found (dead links).
Whilst the hypervisor HTAB glitch has around 10 percents of chances of success, the XDR-DRAM exploit has 100 percents of success.
See also XDR Configuration.
Patched
Not patchable because it is a hardware vulnerability.
Hypervisor HTAB glitch
Credits
- geohot (2009-2011) for initial HTAB glitch
- xorloser (2009-2010) for XorHack and XorHack v2.0
- zecoxao (2023) for some tests and writeups
- Kafuu / aomsin2526 (2025) for reimplementation on recent hardware (superslim PS3) and software (4.92) revisions
- esc0rtd3w (2025-05) for some improvements
Bug Description
See also the SPU LS Overflow Exploit, Hypervisor_Reverse_Engineering#Exploiting_HV_with_memory_glitching_and_HV_call_lv1_undocumented_function_114.
The hypervisor HTAB glitch has around 10 percents of chances of success. When it fails, it is necessary to reboot the PS3 hence this exploit can be long to trigger.
Notes on Dumping_Metldr. The PS3 Hypervisor HTAB exploit allows us to write to isolated SPU and load the secure loader. After that we need to glitch the SPU processor to pass the ECDSA check on verify_header() function in metldr (any version of metldr) which checks the ECDSA signature of the secure loader. You need to glitch the signature verification when metldr loads the secure loader and execute your custom loader to dump the local store with metldr and eid-root-key. PS3 keys (including per-console ones) are inside the SPU isolated local store. You cannot dump them from XDR. If it works, our custom loader will be loaded and started and we will get isolated SPU local store content in the shared local store, which is accessible from the PPU side.
Analysis
- [1]
- [2]
- geohot's archives
- geohot's blog
- xorloser's blog
- xorhack.zip by xorloser
- XorHack: The PS3 Exploit Toolkit by xorloser
- XorHack v2.0: The Updated PS3 Exploit Toolkit by xorloser
Implementation
Current implementations support PS3 System Software versions from 4.70 to 4.92.
- BadHTAB PS3 GameOS Implementation of geohot's hypervisor HTAB glitch exploit by esc0rtd3w
- BadHTAB PS3 GameOS Implementation of geohot's hypervisor HTAB glitch exploit by aomsin2526
Patched
Not patchable because it is a hardware vulnerability.
SPU Local Storage access from other SPEs and PPE
Credits
- Confirmed by Shuffle2 (2011-04-22)
Bug description
Normally, if the SPE is in isolation mode, then only the code running on this particular SPE should be allowed to access its Local Storage. However the high segment of the Local Storage is accessible from the other SPEs and the PPE. High segment of the SPU Local Storage can be accessed from the other SPEs and the PPE.
SPE local store dump via software - LSPWN
LSPWN v0.1 by adrianc is a PS3 homebrew that dumps the local store of an spe to /dev_hdd0/game/LSPWN0ADC/USRDIR/localstore.bin. It is a neat PoC for developers, but also a noob friendly introduction to the SPE environment. Thanks to gitbrew, mathieulh, geohot, sonic iso, #ps3secret, uf6667, zerkman.
Instructions:
1. run the LSPWN application 2. copy the dumped binary from the PS3 HDD using your preferred method (FTP, USB, socket, etc.) 3. disassemble using IDA PRO and give a look at the local store
Notes:
- source code forthcoming after some cleanup (ever released?) - GUI in v0.2 release (ever released?) - support for isolation mode if there is demand
Patched
No (probably unpatchable).
WebKit parseFloat() type confusion leading to stack buffer overflow
Credits
- Zuk Avraham
- TODO
Bug Description
When inserting NaN with a parameter as an argument into parseFloat(), we can overflow the tiny buffer created by parseFloat().
Analysis
Implementation
Patched
Yes since PS3 FW 4.83. Remains exploitable on higher System Software version by installing old WebKit SPRX files using an "hybrid" PUP.
WebKit CSS font face source type confusion leading to read primitive
Credits
TODO
Bug Description
While parsing the source of a CSS font face, CSSParser::parseFontFaceSrc() assumes the value given is a string, but if we insert a specific double value into an exploitable function like insert() or format(), we can leak the memory via an overlap between two variables.
Implementation
Patched
Yes since PS3 FW 4.83. Remains exploitable on higher System Software version by installing old WebKit SPRX files using an "hybrid" PUP.
RSX VRAM Access exploit
Credits
- Discovered by AlexAltea and released on 2016-03-23.
- Thanks a lot to @3141card, for his LV1 RE files, and to people from Nouveau/Envytools people, especially mwk.
Bug description
Full RSX VRAM/IO access exploit allows usermode/lv2 access to the entire 256 MB RSX VRAM range and the entire RSX IO address space and works on all firmwares up to the last version. Particularly interesting, is that this allows to access the last 2 MB of VRAM, reserved only for the LV1 driver, and maybe slightly less interesting, accessing 'vsh.self' VRAM area and IO mapped memory.
The requirements are quite hard to satisfy (many of you either don't need this, or can't run this) and it is only relevant for devs (so some do not need to care about it either). It just gives you access to something inaccessible before with usermode/supervisor privileges, nothing else.
To execute the RSX VRAM Access exploit, you need either
- a usermode entry point (e.g. web browser exploit) + NAND console (although probably if you have this, you already hacked it and have LV1 access).
- or a LV2 entry point (e.g. rsxploit). You will need to replace the `sys_rsx_device_map` LV2 syscall (#675) with the `lv1_gpu_device_map` LV1 call in the source code of the PoC provided below (and remove all the GCM library code among other things).
Analysis
Patched
No as of PS3 FW 4.92.
pexploit
Credits
- KaKaRoTo for keeping the vulnerability private for years then disclosing it
- flatz for PS3 IDPS research
- TheDarkProgrammer for implementation of user-friendly tools
Bug description
To be documented.
See also KaKaRoTo_Kind_of_´Jailbreak´.
Patched
Partially since PS3 FW ?4.75? (to be documented)
MacOS X 10.5/10.6 libc/strtod(3) buffer overflow
Unsure if it applies to PS3.
OpenPrinter() stack-based buffer overflow
Patched
Maybe
DOM flaw
Patched
Maybe
PS3Xploit Kernel Exploit
Credits
- Team PS3Xploit
- TODO
Bug description
To be documented.
Implementation
Patched
No as of PS3 FW 4.90.
Leakage of PTCH body plaintext over SPI on all BGA SYSCONs
When reading the body via the EEPROM read command, in all cases, the MISO of the SPI will leak the plaintext of the PTCH body to someone who might be interacting with the EEPROM interface. Note that this ONLY happens when SC interacts with patch body and some specific areas.
Examples
MISO
04 C8 34 30 BD E4 9F 27 16 DE 5C C1 E7 A3 DA 9C 7F 5B 29 9A 5A 48 5C 14 ED B2 DE 28 84 43 68 82 98 87 4E D4 62 51 01 A9 24 34 02 B3 FF 26 63 17 77 8E 95 56 B1 5F 9F 22 93 46 DE 4E 3A 5E 8A D3
MOSI
3C 3A 04 3F 25 A6 68 09 02 00 04 00 00 00 00 00 (0x26B0) 3C 3A 04 3F 71 AD 00 00 09 00 00 00 00 00 00 00 (0x26C0) 3C 3A 04 3F 8E D5 75 0D 00 00 00 00 00 00 00 00 (0x26D0) 3C 3A 04 3F 80 86 48 0B 0B 00 03 00 00 00 00 00 (0x26E0)
LV2 sys_fs_mount stack overflow
Analysis
Bug description
Stack buffer overflow with required privileges when passing a length greater than 10. It now checks for length less than or equal to 10. If larger than 10, the length gets set to 10.
Implementation
Patched
Yes sometime before 4.40 (only fw I checked)
RSX syscalls bug (rsxploit)
Credits
- Discovered by Hykem the Demon 2014-12-13.
- Improved by Zer0Tolerance, IronMan and zecoxao on 2017-08-18.
Analysis
- rsxploit update by Zer0Tolerance, IronMan and zecoxao (2017-08-18)
- rsxploit release
- rsxploit release archive
Bug Description
There is a flaw in the sys_rsx_context_allocate LV2 syscall (#670) that leads to lv2 code execution. In most lv2 syscalls, Sony reduces a pointer to 32 bits and use a special function to write to that pointer. However, in certain RSX syscalls, Sony forgot about it, allowing the attacker to write to any part of lv2 memory. There is not just one unchecked pointer, but four! They are the context_id, lpar_dma_control, lpar_driver_info and lpar_reports pointers. We can write values at:
- rsx_context + 0x04 (4Bytes) - context_id
- rsx_context + 0x20 (8Bytes) - lpar_dma_control
- rsx_context + 0x30 (8Bytes) - lpar_driver_info
- rsx_context + 0x40 (8Bytes) - lpar_reports
To properly specify a kernel address, use ULL for large numbers.
/* * sys_rsx_context_allocate() * @param context_id (OUT): RSX context. e.g. 0x55555555 (in vsh.self) * @param lpar_dma_control (OUT): Control register area. e.g. 0x60100000 (in vsh.self) * @param lpar_driver_info (OUT): RSX data like frequencies, sizes, version... e.g. 0x60200000 (in vsh.self) * @param lpar_reports (OUT): Report data area. e.g. 0x60300000 (in vsh.self) * @param mem_ctx (IN): mem_ctx given by sys_rsx_memory_allocate * @param system_mode (IN): ? */
Instructions for the initial rsxploit PoC by hykem:
- 1- Change the pointer unk2 in rsx_bug.cpp (there is a comment there)
- 2- Compile with Visual Studio 2010 and official SDK
- 3- Load on proDG and analyze
- 4- ?
Patched
Yes since PS3 4.40. The four flawed pointers are checked since PS3 FW 4.40.
LV2 syscall 484 (sys_prx_register_module) stack overflow
LV2 Syscall 484 (sys_prx_register_module) contains a stack overflow.
LV2 Syscall 484 does not require root privileges.
Patched
Yes since 4.3x or 4.4x.
LV2 Syscall 578 (sys_bluetooth) stack overflow
LV2 Syscall 578 (sys_bluetooth) contains a stack overflow.
LV2 Syscall 578 requires root privileges and is compiled with stack cookies.
Patched
Yes since 4.3x or 4.4x.
AES CTR vulnerability on SELFs (and ebootroms maybe?)
Sometimes SCE reused the same AES CTR keys and IVs in different Certified Files.
See also [6].
See also [7].
Patched
Yes since some PS Vita prototype FWs as their Certified Files started having always different IVs. Maybe not patched on PS3 ebootroms.
PARAM.SFO stack-based buffer overflow
Analysis
Proof of Concept
Unsigned code can be added to the PARAM.SFO because the console does not recognize special characters.
PoC: PARAM.SFO
PSF�� Ä @� � � � � � ��� � � � ��� � � � ��h � � % � � � �� , � � � �� 4 ��� � $� C ��� @ (� V ��� � h� j �� € p� t ��� € ð� ACCOUNT_ID ATTRIBUTE CATEGORY DETAIL PARAMS PARAMS2 PARENTAL_LEVEL SAVEDATA_DIRECTORY SAVEDATA_LIST_PARAM SUB_TITLE TITLE 40ac78551a88fdc SD PSHACK: Benjamin Ninja H%20'>"<[PERSISTENT INJECTED SYSTEM COMMAND OR CODE!] Hackizeit: 1:33:07 ExpSkills: VL-LAB-TRAINING Operation: 1% Trojaners: 0% ... Õõ~\˜òíA×éú�;óç� 40ac78551a88fdc ... BLES00371-NARUTO_STORM-0 HACKINGBKM 1 PSHACK: Benjamin Ninja H%20'>"<[PERSISTENT INJECTED SYSTEM COMMAND OR CODE!];
Patched
Yes since 4.40. Working on 4.31.
AVP patch bypass exploit
Patched: since 3.70 and later.
PSN security intrusion
Patched: since 3.61 enforced password change
Sony PSN Account Service - Password Reset Vulnerability
Patched: since 2012-05-01
ECDSA private key non-random fail
See fail0verfl0w talk (TODO: add link).
Patched: since 3.56.1
JIG downgrade
Patched: since 3.56
USB config heap-based buffer overflow (PSjailbreak/PSGroove)
Bug description
Using an AVR/PIC or another active USB device like a PSP, that runs specific code can exploit the USB descriptor parser of the PS3.
See also ReDRM_/_Piracy_dongles, PSJailbreak_Exploit_Payload_Reverse_Engineering, PSGroove.
Patched
Yes since 3.42.
Leap year bug
Patched: since 3.40 and later
MP4 vulnerability
Patched: since 3.21 and later
CELL Reset Exploit
See CELL Reset Exploit.
This vulnerability was documented on 12 March 2011 by Defyboy
This exploit relies on the fact that RAM is not cleared on reset of the CELL processor. Simply pull the cell_reset line on the processor for around 60 ns and the CELL processor will reset without clearing RAM and begin the boot process again. This hack is largely useless except in special circumstances.
Patched: it is not patched as of 3.55 but useless since 3.15 and later
Patched: since 3.10 and later
Open Remote Play
Patched: since 2.80 and later
BD-J homebrew
Patched: since 2.50 and later
However, this "patched" claim is not precise enough and BD-JB like on PS4 and PS5 may be possible.
System Software Downgrade with hardware flasher
See also: Downgrading with Hardware flasher.
Patched
Yes since 2.20 and later (by adding CoreOS hashing in Syscon to be checked by hypervisor; worked around by patching hypervisor on 3.56 and lower capable consoles).
Full RSX access in OtherOS
Patched
Yes since PS3 2.10.
Web browser DoS via a large integer value for the length property of a Select object
Analysis
Patched
Yes since 2009-09-04.
Game vulnerabilities
Vulnerabilities in F.E.A.R. and F.E.A.R. 2: Project Origin
F.E.A.R., F.E.A.R. 2: Project Origin and F.E.A.R. 3 are games available on PS3.
Credits
- Luigi Auriemma (luigi_auriemma)
Implementation
Call Of Duty: Modern Warfare 3 Null pointer dereference
Credits
- Luigi Auriemma (luigi_auriemma)
Analysis
Implementation
Electronic Arts Origin games vulnerabilities
Origin has a large number of games, and several of them are available exclusively on this platform, such as:
- Battlefield 3 (PS3)
- Crysis 3 (PS3)
- Dead Space 3 (PS3)
- FIFA 13 (PS3)
- Mass Effect 3 (PS3)
These games may be vulnerable on PS3 in case of a bug in the Origin client.
Analysis
Final Fantasy XIV A Realm Reborn network vulnerabilities
Maybe vulnerable via network.
CryEngine 3 multiple vulnerabilities
Credits
- Luigi Auriemma (luigi_auriemma)
- Donato Ferrante (dntbug)
Bug description
There are two vulnerabilities in CryEngine 3 due to improper handling of fragmented packets via CryEngine.
HEAP OVERFLOW VIA FRAGMENTED PACKETS
There is a heap overflow vulnerability, which can be triggered by sending a sequence of fragmented packets with opcode 0x93. By using this sequence an attacker is able to reach the following vulnerable code, and take control over the process execution.
MEMORY CORRUPTION VIA FRAGMENTED PACKETS
There is a integer overflow vulnerability, which can be triggered by using a truncated fragment packet, which has a packet size lesser than 4. By sending, for instance a 2-byte packet, the following vulnerable code can be reached.
Games that use CryEngine 3:
- Crysis 2
Analysis
Implementation
Unreal Engine 3
The third and current generation of the Unreal Engine (UE3) is designed for DirectX (versions 9-11 for Windows and Xbox 360), as well as systems using OpenGL, including the Sony PlayStation 3 and PlayStation Vita.
Homefront
Homefront is based on a customized version of the Unreal Engine 3, with RCON [12] support. It contains many vulnerabilities:
- INVALID READ ACCESS: The RCON command CT followed by 0x7fffffff triggers an invalid read access, while attempting to read the address 0x7fffffff.
- NULL POINTER: The RCON command CD triggers a NULL pointer.
- 16-BIT ADJACENT MEMORY OVERWRITE: The RCON command CT followed by a negative number, allows the setting of 16-bit adjacent memory to 0.
- STACK-BASED OVERFLOW: The RCON command CT followed by a negative number, can be used to trigger a stack-based overflow.
Sanctum 2
Sanctum 2 is maybe vulnerable since the first Sanctum was vulnerable and Sanctum 2 uses Unreal Engine 3 as well.
Analysis
Implementation
idTech 4
Bug description
The idTech 4 engine exposes a function named idBitMsg::ReadData, which can be used to achieve remote code execution against games using customized version of this engine. Some games, including Doom 3 are not affected by this issue. However, others such as Enemy Territory: Quake Wars and Brink, are affected due to customizations to the original idTech 4 engine.
Games using the idTech 4 engine:
- Enemy Territory: Quake Wars (PS3) -> vulnerable
- Wolfenstein (PS3)
- Brink (PS3) -> vulnerable
- Doom 3: BFG Edition (PS3)
Analysis
Implementation
- idTech 4 engine client array overflow PoC
- Enemy Territory: Quake Wars invalid URL buffer overflow PoC
- Brink PoC
Aliens vs. Predator (2010) multiple vulnerabilities
Credits
- Luigi Auriemma
Implementation
Star Trek D·A·C (Deathmatch. Assault. Conquest) DoS
Credits
- Luigi Auriemma
Implementation
Source game engine vulnerabilities
Credits
- Luigi Auriemma
Implementation
Techland Chrome Engine 4 DoS
Credits
- Luigi Auriemma
Implementation
Memory corruption and NULL pointer in Unreal Tournament III 1.2
Unreal Tournament 3 (UT3) is a first-person arena shooter video game developed by Epic Games and published by Midway Games.
Credits
- Luigi Auriemma
Analysis
Implementation
- Unreal Tournament 3 <= 1.2/1.3beta4 memory corruption and NULL pointer PoC
- Unreal Tournament 2004 <= v3369 NULL pointer PoC
Patched
Probably with a game patch.
Remote Play UDP packets DoS
Affected: PS3 1.60, and PSP 3.10 (tested on 3.10 OE-A)
Patched
Yes since 2008-11-13.
Resistance: Fall of Man network update exploit
Resistance: Fall of Man is a 2006 first-person shooter video game developed by Insomniac Games and published by Sony Computer Entertainment for the PlayStation 3. The game used a different system to download the game updates, by entering the multiplayer modes, unlike most titles which search for updates from the XMB or after starting them. This different system was required because at the time of development of the game the PS3 OS was not supporting game updates via XMB. The Resistance: Fall of Man update system contained a vulnerability.
As of December 11, 2008, all map packs for Resistance: Fall of Man were made available for free as a holiday gift from Insomniac due to the release of Resistance 2. All map packs are available for local split-screen multiplayer.
The map packs were removed from PlayStation Store in March 2014, although only in Europe. They are still available on PlayStation Store in USA although they cannot be used because of the aforementioned server closure. Since the game used a different system to download the game updates (by entering the multiplayer modes, unlike most titles which search for updates from the XMB or after starting them), and since the updates were required for DLC compatibility, the map packs became usable only by people who downloaded the updates before the server closure, in March 2014. Shortly after the closure of the game servers, a digital version of the game was released on PlayStation Store, exclusively in Europe. It comes with all game updates and map packs, and full compatibility with savedata from the physical edition.
Patched
?Was the physical version actually patched?
Warhawk network update exploit
Warhawk was a 2007 online multiplayer third-person shooter video game developed by Incognito Entertainment and published by Sony Computer Entertainment for the PlayStation 3. It was the first PlayStation 3 game to be available both physically and digitally on the PlayStation Network.
The game used a different system to download the game updates, by entering the multiplayer modes, unlike most titles which search for updates from the XMB or after starting them. This different system was required because at the time of development of the game the PS3 OS was not supporting game updates via XMB. The Warhawk update system contained a vulnerability.
Patched
?Was the physical version actually patched?
Unsorted network vulnerabilities
Game vulnerabilities patched via System Software update
Afro Samurai Black Screen
Analysis
Bug description
The Afro Samurai game on PS3 gives a black screen as a failed attempt to call:
cellAudioOutConfigure cellSysutilAvconfExt_FA611DF4
Occurs in Firmware 3.01
BLUS30264 NPUB90215 BLES00516
In order to fix this problem, start up your PlayStation 3 system and while on the XMB (Cross Media Bar/System Menu), go to "Settings" and select "Sound Settings" from here select "Audio Multi-Output" and set this option to "OFF". You should be able to play the Afro Samurai Demo or update the retail game properly to the latest patch after this.
Patched
Yes in VSH since an unknown version but after PS3 FW 3.01.
Syscon
Renesas verify function works on 4 byte values in all Renesas/NEC SysCon chips
All NEC/Renesas syscon chips have their verify function working for a 4 byte array but 256 byte size, increasing the probability of finding the correct bytes as opposed to the intended 256 bytes.
Patched
No because unpatchable.
(Universal) Renesas checksum function works on 256 byte values (all Syscon chips, stock, PSP, PS Vita, PS3, PS4)
Renesas checksum feature works on 256 byte values instead of the intended block size, which means glitching could be done in a narrower margin, making the efforts a lot easier. It is also possible to identify 256 byte constants contiguous to each other by their checksums.
Patched
No because unpatchable.