CVE-2026-77157 (GCVE-0-2026-77157)
Vulnerability from cvelistv5
Published
2026-10-22 17:50
Modified
2026-11-02 12:08
CWE
  • CWE-353 - Missing support for integrity check
Summary
ast-cli downloads two helper binaries, the Vorpal ASCA real-time engine and the SCA Resolver, from "download.checkmarx.com" as part of its auto-update flow, triggered by the Checkmarx’s "VSCode/JetBrains" extensions and by cx scan "sca-realtime". Prior to the fix, the downloaded archive was not verified against a checksum before extraction and execution. An attacker able to substitute the served archive could deliver an arbitrary binary that ast-cli would extract and execute the contents of the archive, since no integrity check was performed on the download. Successful exploitation requires compromising "download.checkmarx.com" and replacing the served archive with one containing an attacker-controlled binary. If the served archive had been replaced that way, any developer machine or CI pipeline invoking ASCA (via Checkmarx's VSCode/JetBrains extensions) or cx scan "sca-realtime" on an affected version would have extracted and executed that binary in place of the intended download. The download is now verified against a published SHA-256 checksum before extraction.
Impacted products
Show details on NVD website


{
  "containers": {
    "adp": [
      {
        "metrics": [
          {
            "other": {
              "content": {
                "id": "CVE-2026-77157",
                "options": [
                  {
                    "Exploitation": "none"
                  },
                  {
                    "Automatable": "no"
                  },
                  {
                    "Technical Impact": "total"
                  }
                ],
                "role": "CISA Coordinator",
                "timestamp": "2026-11-02T12:07:44.661308Z",
                "version": "2.0.3"
              },
              "type": "ssvc"
            }
          }
        ],
        "providerMetadata": {
          "dateUpdated": "2026-11-02T12:08:17.642Z",
          "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
          "shortName": "CISA-ADP"
        },
        "title": "CISA ADP Vulnrichment"
      }
    ],
    "cna": {
      "affected": [
        {
          "collectionURL": "https://golang.org/pkg",
          "defaultStatus": "unaffected",
          "packageName": "github.com/checkmarx/ast-cli",
          "product": "github.com/checkmarx/ast-cli",
          "repo": "https://github.com/checkmarx/ast-cli",
          "vendor": "Checkmarx",
          "versions": [
            {
              "lessThanOrEqual": "2.3.59",
              "status": "affected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "status": "unaffected",
              "version": "2.3.60",
              "versionType": "semver"
            }
          ]
        }
      ],
      "credits": [
        {
          "lang": "en",
          "type": "finder",
          "value": "Seb\u00e1stian Alba | @Sebasteuo"
        }
      ],
      "datePublic": "2026-10-19T23:00:00.000Z",
      "descriptions": [
        {
          "lang": "en",
          "supportingMedia": [
            {
              "base64": false,
              "type": "text/html",
              "value": "\u003cp\u003east-cli downloads two helper binaries, the Vorpal ASCA real-time engine and the SCA Resolver, from \"download.checkmarx.com\" as part of its auto-update flow, triggered by the Checkmarx\u2019s \"VSCode/JetBrains\" extensions and by cx scan \"sca-realtime\".\u003c/p\u003e\u003cp\u003ePrior to the fix, the downloaded archive was not verified against a checksum before extraction and execution. An attacker able to substitute the served archive could deliver an arbitrary binary that ast-cli would extract\u0026nbsp;\u003cspan\u003eand execute the contents of the archive, since no integrity check was performed on\u0026nbsp;\u003c/span\u003e\u003cspan\u003ethe download.\u003c/span\u003e\u003c/p\u003e\u003cp\u003eSuccessful exploitation requires compromising \"download.checkmarx.com\" and replacing the served archive with one containing an attacker-controlled binary. If the served archive had been replaced that way, any developer machine or CI pipeline invoking ASCA (via Checkmarx\u0027s VSCode/JetBrains extensions) or cx scan \"sca-realtime\" on an affected version would have extracted and executed that binary in place of the intended download.\u003cspan\u003e\u003c/span\u003e\u003c/p\u003e\u003cp\u003eThe download is now verified against a published SHA-256 checksum before extraction.\u003c/p\u003e"
            }
          ],
          "value": "ast-cli downloads two helper binaries, the Vorpal ASCA real-time engine and the SCA Resolver, from \"download.checkmarx.com\" as part of its auto-update flow, triggered by the Checkmarx\u2019s \"VSCode/JetBrains\" extensions and by cx scan \"sca-realtime\".\n\n\n\nPrior to the fix, the downloaded archive was not verified against a checksum before extraction and execution. An attacker able to substitute the served archive could deliver an arbitrary binary that ast-cli would extract\u00a0and execute the contents of the archive, since no integrity check was performed on\u00a0the download.\n\n\n\nSuccessful exploitation requires compromising \"download.checkmarx.com\" and replacing the served archive with one containing an attacker-controlled binary. If the served archive had been replaced that way, any developer machine or CI pipeline invoking ASCA (via Checkmarx\u0027s VSCode/JetBrains extensions) or cx scan \"sca-realtime\" on an affected version would have extracted and executed that binary in place of the intended download.\n\n\n\nThe download is now verified against a published SHA-256 checksum before extraction."
        }
      ],
      "metrics": [
        {
          "cvssV3_1": {
            "attackComplexity": "HIGH",
            "attackVector": "NETWORK",
            "availabilityImpact": "HIGH",
            "baseScore": 6.4,
            "baseSeverity": "MEDIUM",
            "confidentialityImpact": "HIGH",
            "integrityImpact": "HIGH",
            "privilegesRequired": "HIGH",
            "scope": "UNCHANGED",
            "userInteraction": "REQUIRED",
            "vectorString": "CVSS:3.1/AV:N/AC:H/PR:H/UI:R/S:U/C:H/I:H/A:H",
            "version": "3.1"
          },
          "format": "CVSS",
          "scenarios": [
            {
              "lang": "en",
              "value": "GENERAL"
            }
          ]
        },
        {
          "cvssV4_0": {
            "Automatable": "NOT_DEFINED",
            "Recovery": "NOT_DEFINED",
            "Safety": "NOT_DEFINED",
            "attackComplexity": "LOW",
            "attackRequirements": "NONE",
            "attackVector": "NETWORK",
            "baseScore": 6.3,
            "baseSeverity": "MEDIUM",
            "exploitMaturity": "NOT_DEFINED",
            "privilegesRequired": "HIGH",
            "providerUrgency": "NOT_DEFINED",
            "subAvailabilityImpact": "HIGH",
            "subConfidentialityImpact": "HIGH",
            "subIntegrityImpact": "HIGH",
            "userInteraction": "PASSIVE",
            "valueDensity": "NOT_DEFINED",
            "vectorString": "CVSS:4.0/AV:N/AC:L/AT:N/PR:H/UI:P/VC:N/VI:N/VA:N/SC:H/SI:H/SA:H",
            "version": "4.0",
            "vulnAvailabilityImpact": "NONE",
            "vulnConfidentialityImpact": "NONE",
            "vulnIntegrityImpact": "NONE",
            "vulnerabilityResponseEffort": "NOT_DEFINED"
          },
          "format": "CVSS",
          "scenarios": [
            {
              "lang": "en",
              "value": "GENERAL"
            }
          ]
        }
      ],
      "problemTypes": [
        {
          "descriptions": [
            {
              "cweId": "CWE-353",
              "description": "CWE-353 Missing support for integrity check",
              "lang": "en",
              "type": "CWE"
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-10-22T17:50:51.933Z",
        "orgId": "596c5446-0ce5-4ba2-aa66-48b3b757a647",
        "shortName": "Checkmarx"
      },
      "references": [
        {
          "tags": [
            "product"
          ],
          "url": "https://github.com/Checkmarx/ast-cli"
        },
        {
          "tags": [
            "third-party-advisory"
          ],
          "url": "https://github.com/Checkmarx/ast-cli/security/advisories/GHSA-vf6p-x2fw-5hcg"
        }
      ],
      "source": {
        "advisory": "GHSA-vf6p-x2fw-5hcg",
        "discovery": "EXTERNAL"
      },
      "title": "ast-cli: Auto-update downloads are not verified against a checksum before execution",
      "x_generator": {
        "engine": "Vulnogram 1.0.5"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "596c5446-0ce5-4ba2-aa66-48b3b757a647",
    "assignerShortName": "Checkmarx",
    "cveId": "CVE-2026-77157",
    "datePublished": "2026-10-22T17:50:51.933Z",
    "dateReserved": "2026-08-20T14:34:06.113Z",
    "dateUpdated": "2026-11-02T12:08:17.642Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "vulnrichment": {
      "containers": "{\"adp\": [{\"title\": \"CISA ADP Vulnrichment\", \"metrics\": [{\"other\": {\"type\": \"ssvc\", \"content\": {\"id\": \"CVE-2026-77157\", \"role\": \"CISA Coordinator\", \"options\": [{\"Exploitation\": \"none\"}, {\"Automatable\": \"no\"}, {\"Technical Impact\": \"total\"}], \"version\": \"2.0.3\", \"timestamp\": \"2026-11-02T12:07:44.661308Z\"}}}], \"providerMetadata\": {\"orgId\": \"134c704f-9b21-4f2e-91b3-4a467353bcc0\", \"shortName\": \"CISA-ADP\", \"dateUpdated\": \"2026-11-02T12:08:09.436Z\"}}], \"cna\": {\"title\": \"ast-cli: Auto-update downloads are not verified against a checksum before execution\", \"source\": {\"advisory\": \"GHSA-vf6p-x2fw-5hcg\", \"discovery\": \"EXTERNAL\"}, \"credits\": [{\"lang\": \"en\", \"type\": \"finder\", \"value\": \"Seb\\u00e1stian Alba | @Sebasteuo\"}], \"metrics\": [{\"format\": \"CVSS\", \"cvssV3_1\": {\"scope\": \"UNCHANGED\", \"version\": \"3.1\", \"baseScore\": 6.4, \"attackVector\": \"NETWORK\", \"baseSeverity\": \"MEDIUM\", \"vectorString\": \"CVSS:3.1/AV:N/AC:H/PR:H/UI:R/S:U/C:H/I:H/A:H\", \"integrityImpact\": \"HIGH\", \"userInteraction\": \"REQUIRED\", \"attackComplexity\": \"HIGH\", \"availabilityImpact\": \"HIGH\", \"privilegesRequired\": \"HIGH\", \"confidentialityImpact\": \"HIGH\"}, \"scenarios\": [{\"lang\": \"en\", \"value\": \"GENERAL\"}]}, {\"format\": \"CVSS\", \"cvssV4_0\": {\"Safety\": \"NOT_DEFINED\", \"version\": \"4.0\", \"Recovery\": \"NOT_DEFINED\", \"baseScore\": 6.3, \"Automatable\": \"NOT_DEFINED\", \"attackVector\": \"NETWORK\", \"baseSeverity\": \"MEDIUM\", \"valueDensity\": \"NOT_DEFINED\", \"vectorString\": \"CVSS:4.0/AV:N/AC:L/AT:N/PR:H/UI:P/VC:N/VI:N/VA:N/SC:H/SI:H/SA:H\", \"exploitMaturity\": \"NOT_DEFINED\", \"providerUrgency\": \"NOT_DEFINED\", \"userInteraction\": \"PASSIVE\", \"attackComplexity\": \"LOW\", \"attackRequirements\": \"NONE\", \"privilegesRequired\": \"HIGH\", \"subIntegrityImpact\": \"HIGH\", \"vulnIntegrityImpact\": \"NONE\", \"subAvailabilityImpact\": \"HIGH\", \"vulnAvailabilityImpact\": \"NONE\", \"subConfidentialityImpact\": \"HIGH\", \"vulnConfidentialityImpact\": \"NONE\", \"vulnerabilityResponseEffort\": \"NOT_DEFINED\"}, \"scenarios\": [{\"lang\": \"en\", \"value\": \"GENERAL\"}]}], \"affected\": [{\"repo\": \"https://github.com/checkmarx/ast-cli\", \"vendor\": \"Checkmarx\", \"product\": \"github.com/checkmarx/ast-cli\", \"versions\": [{\"status\": \"affected\", \"version\": \"0\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"2.3.59\"}, {\"status\": \"unaffected\", \"version\": \"2.3.60\", \"versionType\": \"semver\"}], \"packageName\": \"github.com/checkmarx/ast-cli\", \"collectionURL\": \"https://golang.org/pkg\", \"defaultStatus\": \"unaffected\"}], \"datePublic\": \"2026-10-19T23:00:00.000Z\", \"references\": [{\"url\": \"https://github.com/Checkmarx/ast-cli\", \"tags\": [\"product\"]}, {\"url\": \"https://github.com/Checkmarx/ast-cli/security/advisories/GHSA-vf6p-x2fw-5hcg\", \"tags\": [\"third-party-advisory\"]}], \"x_generator\": {\"engine\": \"Vulnogram 1.0.5\"}, \"descriptions\": [{\"lang\": \"en\", \"value\": \"ast-cli downloads two helper binaries, the Vorpal ASCA real-time engine and the SCA Resolver, from \\\"download.checkmarx.com\\\" as part of its auto-update flow, triggered by the Checkmarx\\u2019s \\\"VSCode/JetBrains\\\" extensions and by cx scan \\\"sca-realtime\\\".\\n\\n\\n\\nPrior to the fix, the downloaded archive was not verified against a checksum before extraction and execution. An attacker able to substitute the served archive could deliver an arbitrary binary that ast-cli would extract\\u00a0and execute the contents of the archive, since no integrity check was performed on\\u00a0the download.\\n\\n\\n\\nSuccessful exploitation requires compromising \\\"download.checkmarx.com\\\" and replacing the served archive with one containing an attacker-controlled binary. If the served archive had been replaced that way, any developer machine or CI pipeline invoking ASCA (via Checkmarx\u0027s VSCode/JetBrains extensions) or cx scan \\\"sca-realtime\\\" on an affected version would have extracted and executed that binary in place of the intended download.\\n\\n\\n\\nThe download is now verified against a published SHA-256 checksum before extraction.\", \"supportingMedia\": [{\"type\": \"text/html\", \"value\": \"\u003cp\u003east-cli downloads two helper binaries, the Vorpal ASCA real-time engine and the SCA Resolver, from \\\"download.checkmarx.com\\\" as part of its auto-update flow, triggered by the Checkmarx\\u2019s \\\"VSCode/JetBrains\\\" extensions and by cx scan \\\"sca-realtime\\\".\u003c/p\u003e\u003cp\u003ePrior to the fix, the downloaded archive was not verified against a checksum before extraction and execution. An attacker able to substitute the served archive could deliver an arbitrary binary that ast-cli would extract\u0026nbsp;\u003cspan\u003eand execute the contents of the archive, since no integrity check was performed on\u0026nbsp;\u003c/span\u003e\u003cspan\u003ethe download.\u003c/span\u003e\u003c/p\u003e\u003cp\u003eSuccessful exploitation requires compromising \\\"download.checkmarx.com\\\" and replacing the served archive with one containing an attacker-controlled binary. If the served archive had been replaced that way, any developer machine or CI pipeline invoking ASCA (via Checkmarx\u0027s VSCode/JetBrains extensions) or cx scan \\\"sca-realtime\\\" on an affected version would have extracted and executed that binary in place of the intended download.\u003cspan\u003e\u003c/span\u003e\u003c/p\u003e\u003cp\u003eThe download is now verified against a published SHA-256 checksum before extraction.\u003c/p\u003e\", \"base64\": false}]}], \"problemTypes\": [{\"descriptions\": [{\"lang\": \"en\", \"type\": \"CWE\", \"cweId\": \"CWE-353\", \"description\": \"CWE-353 Missing support for integrity check\"}]}], \"providerMetadata\": {\"orgId\": \"596c5446-0ce5-4ba2-aa66-48b3b757a647\", \"shortName\": \"Checkmarx\", \"dateUpdated\": \"2026-10-22T17:50:51.933Z\"}}}",
      "cveMetadata": "{\"cveId\": \"CVE-2026-77157\", \"state\": \"PUBLISHED\", \"dateUpdated\": \"2026-11-02T12:08:17.642Z\", \"dateReserved\": \"2026-08-20T14:34:06.113Z\", \"assignerOrgId\": \"596c5446-0ce5-4ba2-aa66-48b3b757a647\", \"datePublished\": \"2026-10-22T17:50:51.933Z\", \"assignerShortName\": \"Checkmarx\"}",
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }
  }
}


Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Sightings

Author Source Type Date

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or seen somewhere by the user.
  • Confirmed: The vulnerability is confirmed from an analyst perspective.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • Exploited: This vulnerability was exploited and seen by the user reporting the sighting.
  • Patched: This vulnerability was successfully patched by the user reporting the sighting.
  • Not exploited: This vulnerability was not exploited or seen by the user reporting the sighting.
  • Not confirmed: The user expresses doubt about the veracity of the vulnerability.
  • Not patched: This vulnerability was not successfully patched by the user reporting the sighting.


Loading…

Loading…