Search

Find a vulnerability

Search criteria

    2 vulnerabilities found for Beta9 gateway by beam-cloud

    CVE-2026-120308 (GCVE-0-2026-120308)

    Vulnerability from nvd – Published: 2026-11-01 12:51 – Updated: 2026-11-01 12:51
    VLAI
    Title
    Beta9 host filesystem exposure via volume path traversal
    Summary
    A Beta9 tenant can attach a volume when deploying a function, endpoint, or task queue. The gateway builds the host path by joining the shared volumes root, the workspace name, and the volume identifier from the stub configuration. Nothing checks that the identifier names a volume that workspace owns. Parent-directory segments in the identifier collapse the joined path to the worker's filesystem root, and the worker bind-mounts that path into the sandbox read-write unless the volume was explicitly marked read-only. A tenant with a workspace token can therefore read and write the worker's files, including other tenants' volumes stored on that machine. Confirmed against gateway 0.1.769 and worker 0.1.745. Fixed in gateway 0.1.776 and worker 0.1.756: volume identifiers and mount paths are validated before a mount is built, including for stubs saved before the check existed, and the gateway rejects a volume that does not exist or is not owned by the workspace.
    CWE
    • CWE-22 - Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal')
    • CWE-668 - Exposure of Resource to Wrong Sphere
    Assigner
    JFROG CNA under the mitre root
    CNA scorecard B 76/100 over 66 records in the last 180 days details
    Impacted products
    Vendor Product Version
    beam-cloud Beta9 gateway Affected: 0 , < 0.1.776 (semver)
    Create a notification for this product.
    beam-cloud Beta9 worker Affected: 0 , < 0.1.756 (semver)
    Create a notification for this product.
    Show details on NVD website

    {
      "containers": {
        "cna": {
          "affected": [
            {
              "collectionURL": "https://github.com/beam-cloud/beta9/releases",
              "defaultStatus": "unaffected",
              "packageName": "github.com/beam-cloud/beta9",
              "product": "Beta9 gateway",
              "programFiles": [
                "pkg/abstractions/common/mount.go",
                "pkg/gateway/services/stub.go"
              ],
              "repo": "git://github.com/beam-cloud/beta9",
              "vendor": "beam-cloud",
              "versions": [
                {
                  "lessThan": "0.1.776",
                  "status": "affected",
                  "version": "0",
                  "versionType": "semver"
                }
              ]
            },
            {
              "collectionURL": "https://github.com/beam-cloud/beta9/releases",
              "defaultStatus": "unaffected",
              "packageName": "github.com/beam-cloud/beta9",
              "product": "Beta9 worker",
              "programFiles": [
                "pkg/abstractions/common/mount.go",
                "pkg/worker/lifecycle.go"
              ],
              "repo": "git://github.com/beam-cloud/beta9",
              "vendor": "beam-cloud",
              "versions": [
                {
                  "lessThan": "0.1.756",
                  "status": "affected",
                  "version": "0",
                  "versionType": "semver"
                }
              ]
            }
          ],
          "credits": [
            {
              "lang": "en",
              "type": "finder",
              "value": "Natan Nehorai"
            },
            {
              "lang": "en",
              "type": "coordinator",
              "value": "JFrog Security Research"
            }
          ],
          "descriptions": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "\u003cp\u003eA Beta9 tenant can attach a volume when deploying a function, endpoint, or task queue. The gateway builds the host path by joining the shared volumes root, the workspace name, and the volume identifier from the stub configuration. Nothing checks that the identifier names a volume that workspace owns. Parent-directory segments in the identifier collapse the joined path to the worker\u0027s filesystem root, and the worker bind-mounts that path into the sandbox read-write unless the volume was explicitly marked read-only. A tenant with a workspace token can therefore read and write the worker\u0027s files, including other tenants\u0027 volumes stored on that machine. Confirmed against gateway 0.1.769 and worker 0.1.745. Fixed in gateway 0.1.776 and worker 0.1.756: volume identifiers and mount paths are validated before a mount is built, including for stubs saved before the check existed, and the gateway rejects a volume that does not exist or is not owned by the workspace.\u003c/p\u003e"
                }
              ],
              "value": "A Beta9 tenant can attach a volume when deploying a function, endpoint, or task queue. The gateway builds the host path by joining the shared volumes root, the workspace name, and the volume identifier from the stub configuration. Nothing checks that the identifier names a volume that workspace owns. Parent-directory segments in the identifier collapse the joined path to the worker\u0027s filesystem root, and the worker bind-mounts that path into the sandbox read-write unless the volume was explicitly marked read-only. A tenant with a workspace token can therefore read and write the worker\u0027s files, including other tenants\u0027 volumes stored on that machine. Confirmed against gateway 0.1.769 and worker 0.1.745. Fixed in gateway 0.1.776 and worker 0.1.756: volume identifiers and mount paths are validated before a mount is built, including for stubs saved before the check existed, and the gateway rejects a volume that does not exist or is not owned by the workspace."
            }
          ],
          "metrics": [
            {
              "cvssV3_1": {
                "attackComplexity": "LOW",
                "attackVector": "NETWORK",
                "availabilityImpact": "HIGH",
                "baseScore": 9.9,
                "baseSeverity": "CRITICAL",
                "confidentialityImpact": "HIGH",
                "integrityImpact": "HIGH",
                "privilegesRequired": "LOW",
                "scope": "CHANGED",
                "userInteraction": "NONE",
                "vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H",
                "version": "3.1"
              },
              "format": "CVSS",
              "scenarios": [
                {
                  "lang": "en",
                  "value": "Tenant with a workspace token deploying a function that attaches a volume"
                }
              ]
            }
          ],
          "problemTypes": [
            {
              "descriptions": [
                {
                  "cweId": "CWE-22",
                  "description": "CWE-22: Improper Limitation of a Pathname to a Restricted Directory (\u0027Path Traversal\u0027)",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            },
            {
              "descriptions": [
                {
                  "cweId": "CWE-668",
                  "description": "CWE-668: Exposure of Resource to Wrong Sphere",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            }
          ],
          "providerMetadata": {
            "dateUpdated": "2026-11-01T12:51:50.481Z",
            "orgId": "48a46f29-ae42-4e1d-90dd-c1676c1e5e6d",
            "shortName": "JFROG"
          },
          "references": [
            {
              "name": "Beta9 repository",
              "tags": [
                "product"
              ],
              "url": "https://github.com/beam-cloud/beta9"
            },
            {
              "name": "Handle sandbox edge cases (fix pull request)",
              "tags": [
                "patch"
              ],
              "url": "https://github.com/beam-cloud/beta9/pull/1897"
            },
            {
              "name": "Fix commit a28bf12",
              "tags": [
                "patch"
              ],
              "url": "https://github.com/beam-cloud/beta9/commit/a28bf12cf0007c792a25d8ed282b4e8bf6f30393"
            },
            {
              "name": "gateway-0.1.776",
              "tags": [
                "release-notes"
              ],
              "url": "https://github.com/beam-cloud/beta9/releases/tag/gateway-0.1.776"
            },
            {
              "name": "worker-0.1.756",
              "tags": [
                "release-notes"
              ],
              "url": "https://github.com/beam-cloud/beta9/releases/tag/worker-0.1.756"
            },
            {
              "name": "gateway-0.1.769 (confirmed affected)",
              "tags": [
                "technical-description"
              ],
              "url": "https://github.com/beam-cloud/beta9/releases/tag/gateway-0.1.769"
            },
            {
              "name": "worker-0.1.745 (confirmed affected)",
              "tags": [
                "technical-description"
              ],
              "url": "https://github.com/beam-cloud/beta9/releases/tag/worker-0.1.745"
            }
          ],
          "solutions": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "\u003cp\u003eUpgrade the gateway to 0.1.776 or later and the worker to 0.1.756 or later. Volume identifiers and mount paths are rejected when they are empty, \".\", \"..\", or contain a slash (identifiers) or a \"..\" segment (mount paths). The gateway also refuses a volume the workspace does not own. Stubs stored before the check existed are validated when they are launched. The fix is commit a28bf12 (pull request 1897), released on 2026-09-15.\u003c/p\u003e"
                }
              ],
              "value": "Upgrade the gateway to 0.1.776 or later and the worker to 0.1.756 or later. Volume identifiers and mount paths are rejected when they are empty, \".\", \"..\", or contain a slash (identifiers) or a \"..\" segment (mount paths). The gateway also refuses a volume the workspace does not own. Stubs stored before the check existed are validated when they are launched. The fix is commit a28bf12 (pull request 1897), released on 2026-09-15."
            }
          ],
          "source": {
            "discovery": "EXTERNAL"
          },
          "timeline": [
            {
              "lang": "en",
              "time": "2026-09-07T02:47:00.000Z",
              "value": "Confirmed affected releases worker-0.1.745 and gateway-0.1.769 are current"
            },
            {
              "lang": "en",
              "time": "2026-09-15T04:03:00.000Z",
              "value": "Fix merged in pull request 1897 (commit a28bf12)"
            },
            {
              "lang": "en",
              "time": "2026-09-15T04:04:00.000Z",
              "value": "Fixed releases worker-0.1.756 and gateway-0.1.776 published. No vendor security advisory was filed with the pull request."
            }
          ],
          "title": "Beta9 host filesystem exposure via volume path traversal",
          "x_generator": {
            "engine": "Vulnogram 1.0.5"
          }
        }
      },
      "cveMetadata": {
        "assignerOrgId": "48a46f29-ae42-4e1d-90dd-c1676c1e5e6d",
        "assignerShortName": "JFROG",
        "cveId": "CVE-2026-120308",
        "datePublished": "2026-11-01T12:51:50.481Z",
        "dateReserved": "2026-11-01T12:46:51.095Z",
        "dateUpdated": "2026-11-01T12:51:50.481Z",
        "state": "PUBLISHED"
      },
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }

    CVE-2026-120308 (GCVE-0-2026-120308)

    Vulnerability from cvelistv5 – Published: 2026-11-01 12:51 – Updated: 2026-11-01 12:51
    VLAI
    Title
    Beta9 host filesystem exposure via volume path traversal
    Summary
    A Beta9 tenant can attach a volume when deploying a function, endpoint, or task queue. The gateway builds the host path by joining the shared volumes root, the workspace name, and the volume identifier from the stub configuration. Nothing checks that the identifier names a volume that workspace owns. Parent-directory segments in the identifier collapse the joined path to the worker's filesystem root, and the worker bind-mounts that path into the sandbox read-write unless the volume was explicitly marked read-only. A tenant with a workspace token can therefore read and write the worker's files, including other tenants' volumes stored on that machine. Confirmed against gateway 0.1.769 and worker 0.1.745. Fixed in gateway 0.1.776 and worker 0.1.756: volume identifiers and mount paths are validated before a mount is built, including for stubs saved before the check existed, and the gateway rejects a volume that does not exist or is not owned by the workspace.
    CWE
    • CWE-22 - Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal')
    • CWE-668 - Exposure of Resource to Wrong Sphere
    Assigner
    JFROG CNA under the mitre root
    CNA scorecard B 76/100 over 66 records in the last 180 days details
    Impacted products
    Vendor Product Version
    beam-cloud Beta9 gateway Affected: 0 , < 0.1.776 (semver)
    Create a notification for this product.
    beam-cloud Beta9 worker Affected: 0 , < 0.1.756 (semver)
    Create a notification for this product.
    Show details on NVD website

    {
      "containers": {
        "cna": {
          "affected": [
            {
              "collectionURL": "https://github.com/beam-cloud/beta9/releases",
              "defaultStatus": "unaffected",
              "packageName": "github.com/beam-cloud/beta9",
              "product": "Beta9 gateway",
              "programFiles": [
                "pkg/abstractions/common/mount.go",
                "pkg/gateway/services/stub.go"
              ],
              "repo": "git://github.com/beam-cloud/beta9",
              "vendor": "beam-cloud",
              "versions": [
                {
                  "lessThan": "0.1.776",
                  "status": "affected",
                  "version": "0",
                  "versionType": "semver"
                }
              ]
            },
            {
              "collectionURL": "https://github.com/beam-cloud/beta9/releases",
              "defaultStatus": "unaffected",
              "packageName": "github.com/beam-cloud/beta9",
              "product": "Beta9 worker",
              "programFiles": [
                "pkg/abstractions/common/mount.go",
                "pkg/worker/lifecycle.go"
              ],
              "repo": "git://github.com/beam-cloud/beta9",
              "vendor": "beam-cloud",
              "versions": [
                {
                  "lessThan": "0.1.756",
                  "status": "affected",
                  "version": "0",
                  "versionType": "semver"
                }
              ]
            }
          ],
          "credits": [
            {
              "lang": "en",
              "type": "finder",
              "value": "Natan Nehorai"
            },
            {
              "lang": "en",
              "type": "coordinator",
              "value": "JFrog Security Research"
            }
          ],
          "descriptions": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "\u003cp\u003eA Beta9 tenant can attach a volume when deploying a function, endpoint, or task queue. The gateway builds the host path by joining the shared volumes root, the workspace name, and the volume identifier from the stub configuration. Nothing checks that the identifier names a volume that workspace owns. Parent-directory segments in the identifier collapse the joined path to the worker\u0027s filesystem root, and the worker bind-mounts that path into the sandbox read-write unless the volume was explicitly marked read-only. A tenant with a workspace token can therefore read and write the worker\u0027s files, including other tenants\u0027 volumes stored on that machine. Confirmed against gateway 0.1.769 and worker 0.1.745. Fixed in gateway 0.1.776 and worker 0.1.756: volume identifiers and mount paths are validated before a mount is built, including for stubs saved before the check existed, and the gateway rejects a volume that does not exist or is not owned by the workspace.\u003c/p\u003e"
                }
              ],
              "value": "A Beta9 tenant can attach a volume when deploying a function, endpoint, or task queue. The gateway builds the host path by joining the shared volumes root, the workspace name, and the volume identifier from the stub configuration. Nothing checks that the identifier names a volume that workspace owns. Parent-directory segments in the identifier collapse the joined path to the worker\u0027s filesystem root, and the worker bind-mounts that path into the sandbox read-write unless the volume was explicitly marked read-only. A tenant with a workspace token can therefore read and write the worker\u0027s files, including other tenants\u0027 volumes stored on that machine. Confirmed against gateway 0.1.769 and worker 0.1.745. Fixed in gateway 0.1.776 and worker 0.1.756: volume identifiers and mount paths are validated before a mount is built, including for stubs saved before the check existed, and the gateway rejects a volume that does not exist or is not owned by the workspace."
            }
          ],
          "metrics": [
            {
              "cvssV3_1": {
                "attackComplexity": "LOW",
                "attackVector": "NETWORK",
                "availabilityImpact": "HIGH",
                "baseScore": 9.9,
                "baseSeverity": "CRITICAL",
                "confidentialityImpact": "HIGH",
                "integrityImpact": "HIGH",
                "privilegesRequired": "LOW",
                "scope": "CHANGED",
                "userInteraction": "NONE",
                "vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H",
                "version": "3.1"
              },
              "format": "CVSS",
              "scenarios": [
                {
                  "lang": "en",
                  "value": "Tenant with a workspace token deploying a function that attaches a volume"
                }
              ]
            }
          ],
          "problemTypes": [
            {
              "descriptions": [
                {
                  "cweId": "CWE-22",
                  "description": "CWE-22: Improper Limitation of a Pathname to a Restricted Directory (\u0027Path Traversal\u0027)",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            },
            {
              "descriptions": [
                {
                  "cweId": "CWE-668",
                  "description": "CWE-668: Exposure of Resource to Wrong Sphere",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            }
          ],
          "providerMetadata": {
            "dateUpdated": "2026-11-01T12:51:50.481Z",
            "orgId": "48a46f29-ae42-4e1d-90dd-c1676c1e5e6d",
            "shortName": "JFROG"
          },
          "references": [
            {
              "name": "Beta9 repository",
              "tags": [
                "product"
              ],
              "url": "https://github.com/beam-cloud/beta9"
            },
            {
              "name": "Handle sandbox edge cases (fix pull request)",
              "tags": [
                "patch"
              ],
              "url": "https://github.com/beam-cloud/beta9/pull/1897"
            },
            {
              "name": "Fix commit a28bf12",
              "tags": [
                "patch"
              ],
              "url": "https://github.com/beam-cloud/beta9/commit/a28bf12cf0007c792a25d8ed282b4e8bf6f30393"
            },
            {
              "name": "gateway-0.1.776",
              "tags": [
                "release-notes"
              ],
              "url": "https://github.com/beam-cloud/beta9/releases/tag/gateway-0.1.776"
            },
            {
              "name": "worker-0.1.756",
              "tags": [
                "release-notes"
              ],
              "url": "https://github.com/beam-cloud/beta9/releases/tag/worker-0.1.756"
            },
            {
              "name": "gateway-0.1.769 (confirmed affected)",
              "tags": [
                "technical-description"
              ],
              "url": "https://github.com/beam-cloud/beta9/releases/tag/gateway-0.1.769"
            },
            {
              "name": "worker-0.1.745 (confirmed affected)",
              "tags": [
                "technical-description"
              ],
              "url": "https://github.com/beam-cloud/beta9/releases/tag/worker-0.1.745"
            }
          ],
          "solutions": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "\u003cp\u003eUpgrade the gateway to 0.1.776 or later and the worker to 0.1.756 or later. Volume identifiers and mount paths are rejected when they are empty, \".\", \"..\", or contain a slash (identifiers) or a \"..\" segment (mount paths). The gateway also refuses a volume the workspace does not own. Stubs stored before the check existed are validated when they are launched. The fix is commit a28bf12 (pull request 1897), released on 2026-09-15.\u003c/p\u003e"
                }
              ],
              "value": "Upgrade the gateway to 0.1.776 or later and the worker to 0.1.756 or later. Volume identifiers and mount paths are rejected when they are empty, \".\", \"..\", or contain a slash (identifiers) or a \"..\" segment (mount paths). The gateway also refuses a volume the workspace does not own. Stubs stored before the check existed are validated when they are launched. The fix is commit a28bf12 (pull request 1897), released on 2026-09-15."
            }
          ],
          "source": {
            "discovery": "EXTERNAL"
          },
          "timeline": [
            {
              "lang": "en",
              "time": "2026-09-07T02:47:00.000Z",
              "value": "Confirmed affected releases worker-0.1.745 and gateway-0.1.769 are current"
            },
            {
              "lang": "en",
              "time": "2026-09-15T04:03:00.000Z",
              "value": "Fix merged in pull request 1897 (commit a28bf12)"
            },
            {
              "lang": "en",
              "time": "2026-09-15T04:04:00.000Z",
              "value": "Fixed releases worker-0.1.756 and gateway-0.1.776 published. No vendor security advisory was filed with the pull request."
            }
          ],
          "title": "Beta9 host filesystem exposure via volume path traversal",
          "x_generator": {
            "engine": "Vulnogram 1.0.5"
          }
        }
      },
      "cveMetadata": {
        "assignerOrgId": "48a46f29-ae42-4e1d-90dd-c1676c1e5e6d",
        "assignerShortName": "JFROG",
        "cveId": "CVE-2026-120308",
        "datePublished": "2026-11-01T12:51:50.481Z",
        "dateReserved": "2026-11-01T12:46:51.095Z",
        "dateUpdated": "2026-11-01T12:51:50.481Z",
        "state": "PUBLISHED"
      },
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }