Goal Reached Thanks to every supporter — we hit 100%!

Goal: 1000 CNY · Raised: 1000 CNY

100.0%

CVE-2024-4367 PoC — Mozilla Firefox 安全漏洞

Source
Associated Vulnerability
Title:Mozilla Firefox 安全漏洞 (CVE-2024-4367)
Description:Mozilla Firefox是美国Mozilla基金会的一款开源Web浏览器。 Mozilla Firefox 126 版本之前存在安全漏洞,该漏洞源于处理 PDF.js 中的字体时缺少类型检查,这将允许在 PDF.js 环境中执行任意 JavaScript。
Readme
> [!IMPORTANT]
> 本リポジトリは、脆弱性を学習するためのものです。     
> 本ハンズオンは、必ず自分の管理する適切なコンピュータで行ってください。違法行為は絶対に行わないでください。     
> また本リポジトリによって発生した、一切の損害・責任を、作者は負いません。     

# CVE-2024-4367-hands-on
CVE-2024-4367を体験するハンズオン

## poc.pdfの作成
```bash
python CVE-2024-4367-PoC/CVE-2024-4367.py "alert('document.domain')"
```
引用元:https://github.com/LOURC0D3/CVE-2024-4367-PoC

攻撃用のpoc.pdfが作成されます。    
詳しい使い方は、下記を参考にしてください。    
https://github.com/LOURC0D3/CVE-2024-4367-PoC


## 脆弱性のあるFirefoxを起動し、攻撃を確認
```bash
python firefox.py 125
```
攻撃可能なバージョンのFirefox Nightlyを使用して、poc.pdfを開きます。   
初回起動時には、Firefox Nightlyのダウンロードを行うため、時間がかかります。   
JavaScriptが実行され、アラートが表示されたことを確認します。   

## 脆弱性修正済みのFirefoxで検証
```bash
python firefox.py 135
```
新しいバージョンのFirefox Nightlyでpoc.pdfを開き、アラートが表示されず、脆弱性が修正されていることを確認します。

## PDF.jsのソースコードの比較
脆弱性が含まれている[vulnerable-pdf.js](vulnerable-pdf.js)と脆弱性が修正された[invulnerable-pdf.js](invulnerable-pdf.js)があります。

[pdfjs_diff_font_renderer.js](pdfjs_diff_font_renderer.js)は、[vulnerable-pdf.js/src/core/font_renderer.js](vulnerable-pdf.js/src/core/font_renderer.js)と[invulnerable-pdf.js/src/core/font_renderer.js](invulnerable-pdf.js/src/core/font_renderer.js)のdiff差分です。

File Snapshot

[4.0K] /data/pocs/a76a2042d92508beb60667ffb9a2d4a08cc92e90 ├── [4.0K] CVE-2024-4367-PoC ├── [1.4K] firefox.py ├── [4.0K] invulnerable-pdf.js ├── [ 18K] pdfjs_diff_font_renderer.js ├── [1.8K] README.md └── [4.0K] vulnerable-pdf.js 3 directories, 3 files
Shenlong Bot has cached this for you
Remarks
    1. It is advised to access via the original source first.
    2. If the original source is unavailable, please email f.jinxu#gmail.com for a local snapshot (replace # with @).
    3. Shenlong has snapshotted the POC code for you. To support long-term maintenance, please consider donating. Thank you for your support.