VULNARCHIVE

GCVE-1988-2026-0057

Security advisory: Pre-authentication RCE in Plastic SCM (Unity Version Control On-Prem) 11.0.16.10303 (Unity Technologies)

Description (en)

0day Rubbish Research Team is publicly disclosing a vulnerability in Plastic SCM (Unity Version Control On-Prem) 
11.0.16.10303 (Unity Technologies). The research is published and a proof-of-concept is available.

Pre-authentication RCE (CVSS 9.8, pre-authentication)

Plastic SCM ships a self-developed binary version-control protocol on port 8087, reachable by default on 0.0.0.0. Under 
the default NameWorkingMode, the server validates only that a client-declared username maps to a local OS account and 
never checks a password; LocalGroupSEIDProvider.CheckPassword is an empty no-op. Combined with a default EVERYBODY ACL 
that grants ALL_PERMISSIONS (including mktrigger) to any name-only-authenticated user, an unauthenticated attacker can 
declare an administrative username (leaked unauthenticated via GetRepositoryServerInfo), create a server-side trigger 
whose Path is fully attacker-controlled, and trigger it with a repository operation. TriggerProcess.ExecuteTrigger 
feeds the Path straight into Process.Start as the FileName with no sandbox, path allowlist, or signature check, 
yielding RCE as the plasticd service account (Linux: plasticscm uid=217; Windows: local Administrator). The only 
non-network prerequisite is one local OS username, which the protocol itself leaks.

Impact: Full compromise of the version-control server and all repositories, and arbitrary command execution as the 
plasticd service account; the attacker can read source code and repository metadata, create triggers, alter 
repositories, and persist access.

Advisory: https://0day-rubbish.com/blog/plastic-scm-unauth-8087-rce

PoC and full analysis: https://github.com/Exploit-Garbage/0day-Rubbish

-- 
0day Rubbish Research Team
https://0day-rubbish.com
_______________________________________________
Sent through the Full Disclosure mailing list
https://nmap.org/mailman/listinfo/fulldisclosure
Web Archives & RSS: https://seclists.org/fulldisclosure/

References

Raw JSON
{
  "containers": {
    "cna": {
      "affected": [
        {
          "product": "advisory Pre-authentication",
          "vendor": "Security",
          "versions": [
            {
              "status": "affected",
              "version": "unknown"
            }
          ]
        }
      ],
      "credits": [
        {
          "lang": "en",
          "type": "finder",
          "value": "disclosure via Fulldisclosure"
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "0day Rubbish Research Team is publicly disclosing a vulnerability in Plastic SCM (Unity Version Control On-Prem) \n11.0.16.10303 (Unity Technologies). The research is published and a proof-of-concept is available.\n\nPre-authentication RCE (CVSS 9.8, pre-authentication)\n\nPlastic SCM ships a self-developed binary version-control protocol on port 8087, reachable by default on 0.0.0.0. Under \nthe default NameWorkingMode, the server validates only that a client-declared username maps to a local OS account and \nnever checks a password; LocalGroupSEIDProvider.CheckPassword is an empty no-op. Combined with a default EVERYBODY ACL \nthat grants ALL_PERMISSIONS (including mktrigger) to any name-only-authenticated user, an unauthenticated attacker can \ndeclare an administrative username (leaked unauthenticated via GetRepositoryServerInfo), create a server-side trigger \nwhose Path is fully attacker-controlled, and trigger it with a repository operation. TriggerProcess.ExecuteTrigger \nfeeds the Path straight into Process.Start as the FileName with no sandbox, path allowlist, or signature check, \nyielding RCE as the plasticd service account (Linux: plasticscm uid=217; Windows: local Administrator). The only \nnon-network prerequisite is one local OS username, which the protocol itself leaks.\n\nImpact: Full compromise of the version-control server and all repositories, and arbitrary command execution as the \nplasticd service account; the attacker can read source code and repository metadata, create triggers, alter \nrepositories, and persist access.\n\nAdvisory: https://0day-rubbish.com/blog/plastic-scm-unauth-8087-rce\n\nPoC and full analysis: https://github.com/Exploit-Garbage/0day-Rubbish\n\n-- \n0day Rubbish Research Team\nhttps://0day-rubbish.com\n_______________________________________________\nSent through the Full Disclosure mailing list\nhttps://nmap.org/mailman/listinfo/fulldisclosure\nWeb Archives & RSS: https://seclists.org/fulldisclosure/"
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-09-11T11:37:16Z",
        "orgId": "4e2abfbf-4a2a-4b76-a4e0-d77c18ba156c",
        "shortName": "VULNARCHIVE"
      },
      "references": [
        {
          "tags": [
            "technical-description",
            "exploit"
          ],
          "url": "https://vuln.freearchive.org/archive/full-disclosure/2026/Aug/10"
        },
        {
          "tags": [
            "technical-description"
          ],
          "url": "https://seclists.org/fulldisclosure/2026/Aug/10"
        },
        {
          "url": "https://0day-rubbish.com"
        },
        {
          "url": "https://0day-rubbish.com/blog/plastic-scm-unauth-8087-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/10"
        ],
        "discovery": "EXTERNAL"
      },
      "title": "Security advisory: Pre-authentication RCE in Plastic SCM (Unity Version Control On-Prem) 11.0.16.10303 (Unity Technologies)",
      "x_gcve": [
        {
          "recordType": "advisory",
          "relationships": [],
          "vulnId": "GCVE-1988-2026-0057",
          "x_vulnarchive": {
            "archiveUrl": "https://vuln.freearchive.org/archive/full-disclosure/2026/Aug/10",
            "automated": true,
            "contentSha256": "d8eb1511379fda3c83f3f27587a57b37c7909e304d0ec7cd0c86743d790d8c32",
            "evidenceScore": 9,
            "messageId": "",
            "originalUrl": "https://seclists.org/fulldisclosure/2026/Aug/10",
            "policy": "vulnarchive-1",
            "sourceFormat": "text/html",
            "sourcePublishedAt": "2026-08-03T03:36:45Z"
          }
        }
      ]
    }
  },
  "cveMetadata": {
    "assignerOrgId": "4e2abfbf-4a2a-4b76-a4e0-d77c18ba156c",
    "assignerShortName": "VULNARCHIVE",
    "datePublished": "2026-09-07T13:20:21Z",
    "dateUpdated": "2026-09-11T11:37:16Z",
    "state": "PUBLISHED",
    "vulnId": "GCVE-1988-2026-0057"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2"
}