GCVE Workshop - 22 September 2026 (14:00-18:00), Luxembourg Before The Vulnopticon Conference - Registration
Search

Find a vulnerability

Search criteria

    1 vulnerability found for SonicWall SMA 1000 by Sonicwall

    GCVE-1988-2026-0037

    Vulnerability from gna-1988 – Published: 2026-09-07 13:20 – Updated: 2026-09-09 10:11
    VLAI
    Title
    [0day-Rubbish] SonicWall SMA 1000 — Pre-Auth Deserialization RCE (CVSS 9.8) via Struts 1 Property Injection and Auth-Filter Rewrite
    Summary
    Full-Disclosure List, An unauthenticated remote code execution vulnerability chain in SonicWall SMA 1000 series appliances is being disclosed here. The chain yields code execution as the `mgmt-server` user (uid=1011) on the management plane, with no credentials and no prior knowledge of the appliance beyond a reachable address. A full technical writeup with a reproducible proof-of-concept is published at: https://0day-rubbish.com/blog/sonicwall-sma-preauth-deserialization-rce Repository (advisory + PoC): https://github.com/Exploit-Garbage/0day-Rubbish ----------------------------------------------------------------- 1. Summary ----------------------------------------------------------------- A four-stage pre-auth chain combines a Struts 1 property-injection flaw, an in-memory Jetty authentication-filter rewrite, an unauthenticated SSO Primary-Administrator token issuance, and a Java deserialization sink. The result is unauthenticated RCE as `mgmt-server` (uid=1011). CVSS 3.1 base: 9.8 (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H) Vector: network, low complexity, no privileges, no user interaction. ----------------------------------------------------------------- 2. Affected product ----------------------------------------------------------------- Vendor: SonicWall Product: SMA 1000 series (Secure Mobile Access) Firmware: 12.4.x line (verified on a 12.4 build; other 12.x lines may share the Struts 1 / Jetty console stack — not all were independently tested). Component: /Console management plane, Central Management Service (CMS), /configUserCommunityEPC.do ----------------------------------------------------------------- 3. Vulnerability details ----------------------------------------------------------------- Stage 1 — Authentication bypass via Struts 1 property injection Every Struts 1 ActionForm exposes a `multipartRequestHandler` property. By walking the bean graph (`servletContext -> servletHandler -> filterMappings`) an unauthenticated caller can rewrite the Jetty authentication filter's pathSpecs to a non-existent path and force the filter cache to rebuild. The entire `/Console` API and console actions become reachable without authentication. Stage 2 — Enable Central Management Service With `/Console` unauthenticated, Central Management Service (CMS) can be enabled from the console API, preparing the SSO token path. Stage 3 — Unauthenticated SSO Primary Admin token GET /Console/CentralManagement/SSO/Authorize?user=admin&roleUser=Primary+Admin returns a Primary Administrator token without any password. The token is exchanged for a valid JSESSIONID. The attacker is now the Primary Administrator, fully unauthenticated. Stage 4 — Java deserialization RCE The `storedCommunity` field of `/configUserCommunityEPC.do` is consumed by a setter that calls `ObjectInputStream.readObject()` on attacker-controlled input. A `BeanComparator` + `TemplatesImpl` gadget chain is delivered through this field. The command executes as `mgmt-server` (uid=1011). Output is written to the webroot and read back via an anonymous GET. ----------------------------------------------------------------- 4. Impact ----------------------------------------------------------------- - Unauthenticated remote code execution as `mgmt-server`. - Full compromise of the SMA 1000 management plane. - The appliance terminates remote-access VPN sessions; compromise of the management plane can be leveraged to pivot into the protected internal network and to intercept or reset VPN sessions. - No credentials, no user interaction, no prior appliance knowledge beyond a reachable HTTPS address. ----------------------------------------------------------------- 5. Proof of concept ----------------------------------------------------------------- A reproducible PoC is included in the repository under `product/sonicwall/sma-12.4/preauth-deserialization-rce/exploit`. The full chain and reproduction steps are documented in the advisory URL above. The PoC contains no operator-identifying information and targets placeholder hosts. ----------------------------------------------------------------- 6. Disclosure timeline ----------------------------------------------------------------- - 2026-07-26: Technical writeup + PoC published to the project site and repository. - 2026-07-27: This Full-Disclosure submission. Vendor contact: SonicWall PSIRT was notified (cc'd). A coordinated embargo was not requested by the operator prior to publication; this submission is made in parallel with public availability of the writeup. ----------------------------------------------------------------- 7. Credits ----------------------------------------------------------------- Discovered and documented by the 0day-Rubbish independent vulnerability-research project. ----------------------------------------------------------------- 8. References ----------------------------------------------------------------- - Advisory: https://0day-rubbish.com/blog/sonicwall-sma-preauth-deserialization-rce - Repo: https://github.com/Exploit-Garbage/0day-Rubbish -- 0day-Rubbish disclosure () 0day-rubbish com https://0day-rubbish.com _______________________________________________ Sent through the Full Disclosure mailing list https://nmap.org/mailman/listinfo/fulldisclosure Web Archives & RSS: https://seclists.org/fulldisclosure/
    Severity
    No CVSS data available.
    Impacted products

    {
      "containers": {
        "cna": {
          "affected": [
            {
              "product": "SonicWall SMA 1000",
              "vendor": "Sonicwall",
              "versions": [
                {
                  "status": "affected",
                  "version": "unknown"
                }
              ]
            }
          ],
          "credits": [
            {
              "lang": "en",
              "type": "finder",
              "value": "disclosure via Fulldisclosure"
            }
          ],
          "descriptions": [
            {
              "lang": "en",
              "value": "Full-Disclosure List,\n\nAn unauthenticated remote code execution vulnerability chain in SonicWall SMA 1000 series appliances is being disclosed \nhere. The chain yields code execution as the `mgmt-server` user (uid=1011) on the management plane, with no credentials \nand no prior knowledge of the appliance beyond a reachable address.\n\nA full technical writeup with a reproducible proof-of-concept is published at:\n\n  https://0day-rubbish.com/blog/sonicwall-sma-preauth-deserialization-rce\n\nRepository (advisory + PoC):\n\n  https://github.com/Exploit-Garbage/0day-Rubbish\n\n-----------------------------------------------------------------\n1. Summary\n-----------------------------------------------------------------\n\nA four-stage pre-auth chain combines a Struts 1 property-injection\nflaw, an in-memory Jetty authentication-filter rewrite, an unauthenticated\nSSO Primary-Administrator token issuance, and a Java deserialization sink.\nThe result is unauthenticated RCE as `mgmt-server` (uid=1011).\n\nCVSS 3.1 base: 9.8 (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H)\nVector: network, low complexity, no privileges, no user interaction.\n\n-----------------------------------------------------------------\n2. Affected product\n-----------------------------------------------------------------\n\nVendor:  SonicWall\nProduct: SMA 1000 series (Secure Mobile Access)\nFirmware: 12.4.x line (verified on a 12.4 build; other 12.x lines\n          may share the Struts 1 / Jetty console stack \u2014 not all\n          were independently tested).\nComponent: /Console management plane, Central Management Service (CMS),\n           /configUserCommunityEPC.do\n\n-----------------------------------------------------------------\n3. Vulnerability details\n-----------------------------------------------------------------\n\nStage 1 \u2014 Authentication bypass via Struts 1 property injection\n  Every Struts 1 ActionForm exposes a `multipartRequestHandler`\n  property. By walking the bean graph\n  (`servletContext -\u003e servletHandler -\u003e filterMappings`) an\n  unauthenticated caller can rewrite the Jetty authentication\n  filter\u0027s pathSpecs to a non-existent path and force the filter\n  cache to rebuild. The entire `/Console` API and console actions\n  become reachable without authentication.\n\nStage 2 \u2014 Enable Central Management Service\n  With `/Console` unauthenticated, Central Management Service (CMS)\n  can be enabled from the console API, preparing the SSO token path.\n\nStage 3 \u2014 Unauthenticated SSO Primary Admin token\n  GET /Console/CentralManagement/SSO/Authorize?user=admin\u0026roleUser=Primary+Admin\n  returns a Primary Administrator token without any password. The\n  token is exchanged for a valid JSESSIONID. The attacker is now the\n  Primary Administrator, fully unauthenticated.\n\nStage 4 \u2014 Java deserialization RCE\n  The `storedCommunity` field of `/configUserCommunityEPC.do` is\n  consumed by a setter that calls `ObjectInputStream.readObject()`\n  on attacker-controlled input. A `BeanComparator` + `TemplatesImpl`\n  gadget chain is delivered through this field. The command executes\n  as `mgmt-server` (uid=1011). Output is written to the webroot and\n  read back via an anonymous GET.\n\n-----------------------------------------------------------------\n4. Impact\n-----------------------------------------------------------------\n\n- Unauthenticated remote code execution as `mgmt-server`.\n- Full compromise of the SMA 1000 management plane.\n- The appliance terminates remote-access VPN sessions; compromise\n  of the management plane can be leveraged to pivot into the\n  protected internal network and to intercept or reset VPN sessions.\n- No credentials, no user interaction, no prior appliance knowledge\n  beyond a reachable HTTPS address.\n\n-----------------------------------------------------------------\n5. Proof of concept\n-----------------------------------------------------------------\n\nA reproducible PoC is included in the repository under\n`product/sonicwall/sma-12.4/preauth-deserialization-rce/exploit`.\nThe full chain and reproduction steps are documented in the advisory\nURL above. The PoC contains no operator-identifying information and\ntargets placeholder hosts.\n\n-----------------------------------------------------------------\n6. Disclosure timeline\n-----------------------------------------------------------------\n\n- 2026-07-26: Technical writeup + PoC published to the project\n              site and repository.\n- 2026-07-27: This Full-Disclosure submission.\n\nVendor contact: SonicWall PSIRT was notified (cc\u0027d). A coordinated\nembargo was not requested by the operator prior to publication; this\nsubmission is made in parallel with public availability of the\nwriteup.\n\n-----------------------------------------------------------------\n7. Credits\n-----------------------------------------------------------------\n\nDiscovered and documented by the 0day-Rubbish independent\nvulnerability-research project.\n\n-----------------------------------------------------------------\n8. References\n-----------------------------------------------------------------\n\n- Advisory: https://0day-rubbish.com/blog/sonicwall-sma-preauth-deserialization-rce\n- Repo:     https://github.com/Exploit-Garbage/0day-Rubbish\n\n--\n0day-Rubbish\ndisclosure () 0day-rubbish com\nhttps://0day-rubbish.com\n_______________________________________________\nSent through the Full Disclosure mailing list\nhttps://nmap.org/mailman/listinfo/fulldisclosure\nWeb Archives \u0026 RSS: https://seclists.org/fulldisclosure/"
            }
          ],
          "providerMetadata": {
            "dateUpdated": "2026-09-09T10:11:28Z",
            "orgId": "4e2abfbf-4a2a-4b76-a4e0-d77c18ba156c",
            "shortName": "VULNARCHIVE"
          },
          "references": [
            {
              "tags": [
                "technical-description",
                "exploit"
              ],
              "url": "https://vuln.freearchive.org/archive/full-disclosure/2026/Aug/2"
            },
            {
              "tags": [
                "technical-description"
              ],
              "url": "https://seclists.org/fulldisclosure/2026/Aug/2"
            },
            {
              "url": "https://0day-rubbish.com"
            },
            {
              "url": "https://0day-rubbish.com/blog/sonicwall-sma-preauth-deserialization-rce"
            },
            {
              "url": "https://github.com/Exploit-Garbage/0day-Rubbish"
            },
            {
              "url": "https://nmap.org/mailman/listinfo/fulldisclosure"
            },
            {
              "url": "https://seclists.org/fulldisclosure/"
            }
          ],
          "source": {
            "defect": [
              "https://seclists.org/fulldisclosure/2026/Aug/2"
            ],
            "discovery": "EXTERNAL"
          },
          "title": "[0day-Rubbish] SonicWall SMA 1000 \u2014 Pre-Auth Deserialization RCE (CVSS 9.8) via Struts 1 Property Injection and Auth-Filter Rewrite",
          "x_gcve": [
            {
              "recordType": "advisory",
              "relationships": [],
              "vulnId": "GCVE-1988-2026-0037",
              "x_vulnarchive": {
                "archiveUrl": "https://vuln.freearchive.org/archive/full-disclosure/2026/Aug/2",
                "automated": true,
                "contentSha256": "78588e06d62af725c03928b8b4da89488c10191a6628c7abfa57534c7dde9d20",
                "evidenceScore": 9,
                "messageId": "",
                "originalUrl": "https://seclists.org/fulldisclosure/2026/Aug/2",
                "policy": "vulnarchive-1",
                "sourceFormat": "text/html",
                "sourcePublishedAt": "2026-07-27T03:58:55Z"
              }
            }
          ]
        }
      },
      "cveMetadata": {
        "assignerOrgId": "4e2abfbf-4a2a-4b76-a4e0-d77c18ba156c",
        "assignerShortName": "VULNARCHIVE",
        "datePublished": "2026-09-07T13:20:21Z",
        "dateUpdated": "2026-09-09T10:11:28Z",
        "state": "PUBLISHED",
        "vulnId": "GCVE-1988-2026-0037"
      },
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }