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

OPENSUSE-SU-2026:21143-1

Vulnerability from csaf_opensuse - Published: 2026-06-23 09:40 - Updated: 2026-09-17 17:36
Summary
Security update for gleam
Severity
Moderate
Notes
Title of the patch: Security update for gleam
Description of the patch: This update for gleam fixes the following issues: Changes in gleam: - Update to 1.17.0: * Fixed security vulnerabilities: - Restrict custom documentation page `path` and `source` values so `gleam docs build` cannot escape the docs output directory or project root (bsc#1267396, CVE-2026-32685) - Restrict publication tarball creation so they cannot contain files from outside the project root (bsc#1267397, CVE-2026-42795) - Stricter deserialisation rules for files internal the build directory to reject corrupted data (bsc#1267398, CVE-2026-43965) * All features and bug fixes are extensively highlighted with examples in the upstream blog post at https://gleam.run/news/single-file-gleam-beam-programs-with-escript/ and changelog at https://github.com/gleam-lang/gleam/blob/v1.17.0/CHANGELOG.md some of the highlights include: - Various JavaScript code generation fixes and optimization - Various compiler error handling improvements - Ability to use the `todo` keyword in constants - Improved handling of Git monorepos during package management - Ability to create escripts from Gleam programs - Various language server improvements like reference highlighting, record hovering and code actions - Update to 1.16.0: * Changelog v1.16.0: https://gleam.run/news/javascript-source-maps/ - Update to 1.15.1: * Changelog v1.12.0: https://gleam.run/news/no-more-dependency-management-headaches/ * Changelog v1.13.0: https://gleam.run/news/formalising-external-apis/ * Changelog v1.14.0: https://gleam.run/news/the-happy-holidays-2025-release/ * Changelog v1.15.0: https://gleam.run/news/upgrading-hex-security/ - Replace deprecated "disabled" mode with "manual" in _service - Update to 1.11.0: * The displaying of internal types in HTML documentation has been improved * A warning is now emitted when the same module is imported multiple times into the same module with different aliases * Fixed a bug where a bit array segment matching on a floating point number would match with NaN or Infinity on the JavaScript target * https://github.com/gleam-lang/gleam/blob/v1.11.1/CHANGELOG.md - Update to 1.10.0: * Changelog: https://gleam.run/news/global-rename-and-find-references/ - skip unit tests that requires networking upon build - Update to 1.9.0: * Changelog: https://gleam.run/news/hello-echo-hello-git/ - Update to 1.8.1: * Fixed a metadata caching bug where accessors for opaque types could sometimes be used in other modules. (Louis Pilfold) * Changelog: https://gleam.run/news/gleam-gets-rename-variable/ - Update to 1.7.0: * Changelog: https://gleam.run/news/improved-performance-and-publishing/ - Update to 1.6.3: * Fixed a bug where Gleam would be unable to compile to BEAM bytecode on older versions of Erlang/OTP. (yoshi) - Update to 1.6.2: * Fixed a bug where patterns in use expressions would not be checked to ensure that they were exhaustive. (Surya Rose) - Update to 1.6.1: * fix update use_manifest logic (Jason Sipula) * 1.6.0 Changelog: https://gleam.run/news/context-aware-compilation/
Patchnames: openSUSE-Leap-16.0-packagehub-338
Terms of use: CSAF 2.0 data is provided by SUSE under the Creative Commons License 4.0 with Attribution (CC-BY-4.0).
Affected products
Product Identifier Version Remediation
Unresolved product id: openSUSE Leap 16.0:gleam-0:1.17.0-bp160.1.1.aarch64
Vendor Fix
Unresolved product id: openSUSE Leap 16.0:gleam-0:1.17.0-bp160.1.1.x86_64
Vendor Fix
Threats
Impact moderate
Affected products
Recommended 2 products, the same list as for CVE-2026-32685
Threats
Impact moderate
Affected products
Recommended 2 products, the same list as for CVE-2026-32685
Threats
Impact moderate

{
  "document": {
    "aggregate_severity": {
      "namespace": "https://www.suse.com/support/security/rating/",
      "text": "moderate"
    },
    "category": "csaf_security_advisory",
    "csaf_version": "2.0",
    "distribution": {
      "text": "Copyright 2024 SUSE LLC. All rights reserved.",
      "tlp": {
        "label": "WHITE",
        "url": "https://www.first.org/tlp/"
      }
    },
    "lang": "en",
    "notes": [
      {
        "category": "summary",
        "text": "Security update for gleam",
        "title": "Title of the patch"
      },
      {
        "category": "description",
        "text": "This update for gleam fixes the following issues:\n\nChanges in gleam:\n\n- Update to 1.17.0:\n  * Fixed security vulnerabilities:\n    - Restrict custom documentation page `path` and `source` values so\n      `gleam docs build` cannot escape the docs output directory or project\n      root (bsc#1267396, CVE-2026-32685)\n    - Restrict publication tarball creation so they cannot contain files\n      from outside the project root (bsc#1267397, CVE-2026-42795)\n    - Stricter deserialisation rules for files internal the build directory\n      to reject corrupted data (bsc#1267398, CVE-2026-43965)\n  * All features and bug fixes are extensively highlighted with\n    examples in the upstream blog post at\n    https://gleam.run/news/single-file-gleam-beam-programs-with-escript/\n    and changelog at\n    https://github.com/gleam-lang/gleam/blob/v1.17.0/CHANGELOG.md some of\n    the highlights include:\n    - Various JavaScript code generation fixes and optimization\n    - Various compiler error handling improvements\n    - Ability to use the `todo` keyword in constants\n    - Improved handling of Git monorepos during package management\n    - Ability to create escripts from Gleam programs\n    - Various language server improvements like reference highlighting,\n      record hovering and code actions\n\n- Update to 1.16.0:\n  * Changelog v1.16.0: https://gleam.run/news/javascript-source-maps/\n\n- Update to 1.15.1:\n  * Changelog v1.12.0: https://gleam.run/news/no-more-dependency-management-headaches/\n  * Changelog v1.13.0: https://gleam.run/news/formalising-external-apis/\n  * Changelog v1.14.0: https://gleam.run/news/the-happy-holidays-2025-release/\n  * Changelog v1.15.0: https://gleam.run/news/upgrading-hex-security/\n\n- Replace deprecated \"disabled\" mode with \"manual\" in _service\n- Update to 1.11.0:\n  * The displaying of internal types in HTML documentation has been\n\timproved\n  * A warning is now emitted when the same module is imported\n\tmultiple times into the same module with different aliases\n  * Fixed a bug where a bit array segment matching on a floating\n\tpoint number would match with NaN or Infinity on the JavaScript\n\ttarget\n  * https://github.com/gleam-lang/gleam/blob/v1.11.1/CHANGELOG.md\n\n- Update to 1.10.0:\n  * Changelog: https://gleam.run/news/global-rename-and-find-references/\n\n- skip unit tests that requires networking upon build\n\n- Update to 1.9.0:\n  * Changelog: https://gleam.run/news/hello-echo-hello-git/\n\n- Update to 1.8.1:\n * Fixed a metadata caching bug where accessors for opaque types\n   could sometimes be used in other modules. (Louis Pilfold)\n * Changelog: https://gleam.run/news/gleam-gets-rename-variable/\n\n- Update to 1.7.0:\n * Changelog: https://gleam.run/news/improved-performance-and-publishing/\n\n- Update to 1.6.3:\n * Fixed a bug where Gleam would be unable to compile to BEAM\n   bytecode on older versions of Erlang/OTP. (yoshi)\n\n- Update to 1.6.2:\n * Fixed a bug where patterns in use expressions would not be checked\n   to ensure that they were exhaustive. (Surya Rose)\n\n- Update to 1.6.1:\n * fix update use_manifest logic (Jason Sipula)\n * 1.6.0 Changelog: https://gleam.run/news/context-aware-compilation/\n",
        "title": "Description of the patch"
      },
      {
        "category": "details",
        "text": "openSUSE-Leap-16.0-packagehub-338",
        "title": "Patchnames"
      },
      {
        "category": "legal_disclaimer",
        "text": "CSAF 2.0 data is provided by SUSE under the Creative Commons License 4.0 with Attribution (CC-BY-4.0).",
        "title": "Terms of use"
      }
    ],
    "publisher": {
      "category": "vendor",
      "contact_details": "https://www.suse.com/support/security/contact/",
      "name": "SUSE Product Security Team",
      "namespace": "https://www.suse.com/"
    },
    "references": [
      {
        "category": "external",
        "summary": "SUSE ratings",
        "url": "https://www.suse.com/support/security/rating/"
      },
      {
        "category": "self",
        "summary": "URL of this CSAF notice",
        "url": "https://ftp.suse.com/pub/projects/security/csaf/opensuse-su-2026_21143-1.json"
      },
      {
        "category": "self",
        "summary": "SUSE Bug 1267396",
        "url": "https://bugzilla.suse.com/1267396"
      },
      {
        "category": "self",
        "summary": "SUSE Bug 1267397",
        "url": "https://bugzilla.suse.com/1267397"
      },
      {
        "category": "self",
        "summary": "SUSE Bug 1267398",
        "url": "https://bugzilla.suse.com/1267398"
      },
      {
        "category": "self",
        "summary": "SUSE CVE CVE-2026-32685 page",
        "url": "https://www.suse.com/security/cve/CVE-2026-32685/"
      },
      {
        "category": "self",
        "summary": "SUSE CVE CVE-2026-42795 page",
        "url": "https://www.suse.com/security/cve/CVE-2026-42795/"
      },
      {
        "category": "self",
        "summary": "SUSE CVE CVE-2026-43965 page",
        "url": "https://www.suse.com/security/cve/CVE-2026-43965/"
      }
    ],
    "title": "Security update for gleam",
    "tracking": {
      "current_release_date": "2026-09-17T17:36:54Z",
      "generator": {
        "date": "2026-06-23T09:40:09Z",
        "engine": {
          "name": "cve-database.git:bin/generate-csaf.pl",
          "version": "1"
        }
      },
      "id": "openSUSE-SU-2026:21143-1",
      "initial_release_date": "2026-06-23T09:40:09Z",
      "revision_history": [
        {
          "date": "2026-06-23T09:40:09Z",
          "number": "1",
          "summary": "Current version"
        },
        {
          "date": "2026-09-16T20:39:53Z",
          "number": "2",
          "summary": "unknown changes"
        },
        {
          "date": "2026-09-16T21:42:00Z",
          "number": "3",
          "summary": "unknown changes"
        },
        {
          "date": "2026-09-17T17:36:54Z",
          "number": "4",
          "summary": "unknown changes"
        }
      ],
      "status": "final",
      "version": "4"
    }
  },
  "product_tree": {
    "branches": [
      {
        "branches": [
          {
            "branches": [
              {
                "category": "product_version",
                "name": "gleam-0:1.17.0-bp160.1.1.aarch64",
                "product": {
                  "name": "gleam-0:1.17.0-bp160.1.1.aarch64",
                  "product_id": "gleam-0:1.17.0-bp160.1.1.aarch64",
                  "product_identification_helper": {
                    "purl": "pkg:rpm/suse/gleam@1.17.0-bp160.1.1?arch=aarch64"
                  }
                }
              }
            ],
            "category": "architecture",
            "name": "aarch64"
          },
          {
            "branches": [
              {
                "category": "product_version",
                "name": "gleam-0:1.17.0-bp160.1.1.x86_64",
                "product": {
                  "name": "gleam-0:1.17.0-bp160.1.1.x86_64",
                  "product_id": "gleam-0:1.17.0-bp160.1.1.x86_64",
                  "product_identification_helper": {
                    "purl": "pkg:rpm/suse/gleam@1.17.0-bp160.1.1?arch=x86_64"
                  }
                }
              }
            ],
            "category": "architecture",
            "name": "x86_64"
          },
          {
            "branches": [
              {
                "category": "product_name",
                "name": "openSUSE Leap 16.0",
                "product": {
                  "name": "openSUSE Leap 16.0",
                  "product_id": "openSUSE Leap 16.0"
                }
              }
            ],
            "category": "product_family",
            "name": "SUSE Linux Enterprise"
          }
        ],
        "category": "vendor",
        "name": "SUSE"
      }
    ],
    "relationships": [
      {
        "category": "default_component_of",
        "full_product_name": {
          "name": "gleam-0:1.17.0-bp160.1.1.aarch64 as component of openSUSE Leap 16.0",
          "product_id": "openSUSE Leap 16.0:gleam-0:1.17.0-bp160.1.1.aarch64"
        },
        "product_reference": "gleam-0:1.17.0-bp160.1.1.aarch64",
        "relates_to_product_reference": "openSUSE Leap 16.0"
      },
      {
        "category": "default_component_of",
        "full_product_name": {
          "name": "gleam-0:1.17.0-bp160.1.1.x86_64 as component of openSUSE Leap 16.0",
          "product_id": "openSUSE Leap 16.0:gleam-0:1.17.0-bp160.1.1.x86_64"
        },
        "product_reference": "gleam-0:1.17.0-bp160.1.1.x86_64",
        "relates_to_product_reference": "openSUSE Leap 16.0"
      }
    ]
  },
  "vulnerabilities": [
    {
      "cve": "CVE-2026-32685",
      "ids": [
        {
          "system_name": "SUSE CVE Page",
          "text": "https://www.suse.com/security/cve/CVE-2026-32685"
        }
      ],
      "notes": [
        {
          "category": "general",
          "text": "Path traversal vulnerability in Gleam\u0027s handling of custom documentation pages allows arbitrary file read and file write outside the intended documentation output directory.\n\nThe documentation.pages entries from gleam.toml are incorporated into filesystem paths without sufficient validation or confinement to the intended project and documentation output directories. The documentation.pages[].path field can be used to write generated documentation files outside the intended build/dev/docs/\u003cpackage\u003e/ output directory. The documentation.pages[].source field can be used to read files outside the project directory and embed their contents into generated documentation output.\n\nAn attacker who can convince a victim to run gleam docs build on an untrusted project, or with untrusted gleam.toml content, can cause local files readable by the victim to be included in generated documentation artifacts, and can cause generated documentation files to be written outside the intended docs output directory.\n\nThis issue affects Gleam from 1.16.0 until 1.17.0.",
          "title": "CVE description"
        }
      ],
      "product_status": {
        "recommended": [
          "openSUSE Leap 16.0:gleam-0:1.17.0-bp160.1.1.aarch64",
          "openSUSE Leap 16.0:gleam-0:1.17.0-bp160.1.1.x86_64"
        ]
      },
      "references": [
        {
          "category": "external",
          "summary": "CVE-2026-32685",
          "url": "https://www.suse.com/security/cve/CVE-2026-32685"
        },
        {
          "category": "external",
          "summary": "SUSE Bug 1267396 for CVE-2026-32685",
          "url": "https://bugzilla.suse.com/1267396"
        }
      ],
      "remediations": [
        {
          "category": "vendor_fix",
          "details": "To install this SUSE Security Update use the SUSE recommended installation methods like YaST online_update or \"zypper patch\".\n",
          "product_ids": [
            "openSUSE Leap 16.0:gleam-0:1.17.0-bp160.1.1.aarch64",
            "openSUSE Leap 16.0:gleam-0:1.17.0-bp160.1.1.x86_64"
          ]
        }
      ],
      "threats": [
        {
          "category": "impact",
          "date": "2026-06-23T09:40:09Z",
          "details": "moderate"
        }
      ],
      "title": "CVE-2026-32685"
    },
    {
      "cve": "CVE-2026-42795",
      "ids": [
        {
          "system_name": "SUSE CVE Page",
          "text": "https://www.suse.com/security/cve/CVE-2026-42795"
        }
      ],
      "notes": [
        {
          "category": "general",
          "text": "Symlink following vulnerability in Gleam\u0027s Hex package export allows files outside the project root to be embedded in the generated package tarball.\n\nThe file collection helpers (gleam_files, native_files, private_files) in compiler-cli/src/fs.rs use follow_links(true) when walking publishable directories such as src/ and priv/. The collected paths are added to the package archive via add_path_to_tar in compiler-cli/src/publish.rs without verifying that the resolved target remains within the project root. A symlink placed under a publishable directory will cause gleam export hex-tarball or gleam publish to embed the contents of the symlink target into the generated Hex package.\n\nAn attacker with write access to the project repository can place a symlink in src/ or priv/ pointing to an arbitrary file. When a maintainer or CI pipeline runs gleam publish or gleam export hex-tarball, local files readable by the publisher (such as secrets, tokens, or SSH keys) are silently embedded into the published package artifact.\n\nThis issue affects Gleam from 0.10.0-rc1 until 1.17.0.",
          "title": "CVE description"
        }
      ],
      "product_status": {
        "recommended": [
          "openSUSE Leap 16.0:gleam-0:1.17.0-bp160.1.1.aarch64",
          "openSUSE Leap 16.0:gleam-0:1.17.0-bp160.1.1.x86_64"
        ]
      },
      "references": [
        {
          "category": "external",
          "summary": "CVE-2026-42795",
          "url": "https://www.suse.com/security/cve/CVE-2026-42795"
        },
        {
          "category": "external",
          "summary": "SUSE Bug 1267397 for CVE-2026-42795",
          "url": "https://bugzilla.suse.com/1267397"
        }
      ],
      "remediations": [
        {
          "category": "vendor_fix",
          "details": "To install this SUSE Security Update use the SUSE recommended installation methods like YaST online_update or \"zypper patch\".\n",
          "product_ids": [
            "openSUSE Leap 16.0:gleam-0:1.17.0-bp160.1.1.aarch64",
            "openSUSE Leap 16.0:gleam-0:1.17.0-bp160.1.1.x86_64"
          ]
        }
      ],
      "threats": [
        {
          "category": "impact",
          "date": "2026-06-23T09:40:09Z",
          "details": "moderate"
        }
      ],
      "title": "CVE-2026-42795"
    },
    {
      "cve": "CVE-2026-43965",
      "ids": [
        {
          "system_name": "SUSE CVE Page",
          "text": "https://www.suse.com/security/cve/CVE-2026-43965"
        }
      ],
      "notes": [
        {
          "category": "general",
          "text": "Path traversal vulnerability in Gleam\u0027s dependency management allows arbitrary directory deletion via malicious build/packages/packages.toml content.\n\nPackage keys read from build/packages/packages.toml by LocalPackages::read_from_disc are passed without validation to paths.build_packages_package(), which constructs a filesystem path by joining the project build directory with the attacker-controlled key. The resulting path is then passed to fs::delete_directory (which calls remove_dir_all). No check is performed to ensure the path remains within the intended build/packages/ directory. Both absolute paths and relative traversal sequences (e.g. ../) are accepted as package keys, allowing deletion of arbitrary directories.\n\nAn attacker who can cause a victim to run gleam deps download on a project containing a malicious build/packages/packages.toml (e.g. by committing the normally-gitignored file to a repository) can cause arbitrary directories on the victim\u0027s system to be recursively deleted.\n\nThis issue affects Gleam from 0.18.0-rc1 until 1.17.0.",
          "title": "CVE description"
        }
      ],
      "product_status": {
        "recommended": [
          "openSUSE Leap 16.0:gleam-0:1.17.0-bp160.1.1.aarch64",
          "openSUSE Leap 16.0:gleam-0:1.17.0-bp160.1.1.x86_64"
        ]
      },
      "references": [
        {
          "category": "external",
          "summary": "CVE-2026-43965",
          "url": "https://www.suse.com/security/cve/CVE-2026-43965"
        },
        {
          "category": "external",
          "summary": "SUSE Bug 1267398 for CVE-2026-43965",
          "url": "https://bugzilla.suse.com/1267398"
        }
      ],
      "remediations": [
        {
          "category": "vendor_fix",
          "details": "To install this SUSE Security Update use the SUSE recommended installation methods like YaST online_update or \"zypper patch\".\n",
          "product_ids": [
            "openSUSE Leap 16.0:gleam-0:1.17.0-bp160.1.1.aarch64",
            "openSUSE Leap 16.0:gleam-0:1.17.0-bp160.1.1.x86_64"
          ]
        }
      ],
      "threats": [
        {
          "category": "impact",
          "date": "2026-06-23T09:40:09Z",
          "details": "moderate"
        }
      ],
      "title": "CVE-2026-43965"
    }
  ]
}



Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Forecast uses a logistic model when the trend is rising, or an exponential decay model when the trend is falling. Fitted via linearized least squares.

Sightings

Author Source Type Date Other

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or observed by the user.
  • Confirmed: The vulnerability has been validated from an analyst's perspective.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
  • Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
  • Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
  • Not confirmed: The user expressed doubt about the validity of the vulnerability.
  • Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.

Loading…

Detection rules are retrieved from Rulezet.

Loading…

Loading…

Related by attack behaviour

Vulnerabilities whose description is nearest to this one in the vector space of the CIRCL/vulnerability-attack-technique-biencoder model. This is a similarity search over the bi-encoder space (plain cosine), not a classification, and it has no measured accuracy.


Loading…