Skip to main content

Enterprise Server 3.7 release notes

January 17, 2023

    Known issues

  • On a freshly set up GitHub Enterprise Server instance without any users, an attacker could create the first admin user.

  • Custom firewall rules are removed during the upgrade process.

  • Git LFS tracked files uploaded through the web interface are incorrectly added directly to the repository.

  • Issues cannot be closed if they contain a permalink to a blob in the same repository, where the blob's file path is longer than 255 characters.

  • When "Users can search GitHub.com" is enabled with GitHub Connect, issues in private and internal repositories are not included in GitHub.com search results.

  • The GitHub Packages npm registry no longer returns a time value in metadata responses. This was done to allow for substantial performance improvements. We continue to have all the data necessary to return a time value as part of the metadata response and will resume returning this value in the future once we have solved the existing performance issues.

  • Resource limits that are specific to processing pre-receive hooks may cause some pre-receive hooks to fail.

  • Actions services need to be restarted after restoring an instance from a backup taken on a different host.

  • In a repository's settings, enabling the option to allow users with read access to create discussions does not enable this functionality.

  • In some cases, users cannot convert existing issues to discussions.

  • During the validation phase of a configuration run, a No such object error may occur for the Notebook and Viewscreen services. This error can be ignored as the services should still correctly start.

  • Following an upgrade to GitHub Enterprise Server 3.6 or later, existing inconsistencies in a repository such as broken refs or missing objects, may now be reported as errors like invalid sha1 pointer 0000000000000000000000000000000000000000, Zero-length loose reference file, or Zero-length loose object file. Previously, these indicators of repository corruption may have been silently ignored. GitHub Enterprise Server now uses an updated Git version with more diligent error reporting enabled. For more information, see this upstream commit in the Git project.

    If you suspect a problem like this exists in one of your repositories, contact GitHub Enterprise Support for assistance.

  • Instances experiencing a high sustained number of concurrent Git requests may experience performance issues. If you suspect that this issue is affecting your instance, contact GitHub Support. For more information, see "Creating a support ticket." [Updated: 2022-12-07]

January 12, 2023

📣 This is not the latest patch release of Enterprise Server. Please use the latest release for the latest security, performance, and bug fixes.

    Security fixes

  • Sanitize additional secrets in support bundles and the configuration log.

  • Dependencies for the CodeQL action have been updated to the latest security versions.

  • Packages have been updated to the latest security versions.

    Bug fixes

  • Some services incorrectly connected directly to kafka-lite instead of through its internal proxy. In a cluster environment where web services and job services execute on separate nodes, messages generated from the Insights job service werent delivered to kafka-lite.

  • The metrics Active workers and Queued requests for github (renamed from metadata), gitauth, and unicorn container services werent correctly read from collectd and displayed in the Management Console.

  • Dependabot Alert emails would be sent to disabled repositories.

  • Data migrations could fail when the underlying database table contained only a single record.

  • Sorting and filtering the list of custom patterns for secret scanning at the organization level did not work correctly.

  • After upgrading to GitHub Enterprise Server 3.7, viewing the security settings page for an organization or repository could result in a 500 error due to a GitHub Advanced Security backfill job not completing before the upgrade started.

  • The git-janitorcommand was unable to fix outdated multi-pack-index.lock files, resulting in the repository failing maintenance.

  • Dropped launch.* metrics that can't be parsed by statsd, as the resulting statsd errors caused collectd logs to grow rapidly in size.

  • When updating custom patterns, the pattern state was immediately set to published.

    Changes

  • Improved the reliability of the real time updates service (Alive) to make it more resilient against network issues with Redis.

  • The ghe-support-bundle and ghe-cluster-support-bundle commands were updated to include the -p/--period flag to generate a time constrained support bundle. The duration can be specified in days and hours, for example: -p 2 hours, -p 1 day, -p 2 days 5 hours.

  • When upgrading an instance with a new root partition, running the ghe-upgrade command with the -t/--target option ensures the preflight check for the minimum disk storage size is executed against the target partition.

  • The performance of configuration runs started with ghe-config-apply has been improved.

  • When exporting account data, backing up a repository, or performing a migration, the link to a repository archive now expires after 1 hour. Previously the archive link expired after 5 minutes.

    Known issues

  • On a freshly set up GitHub Enterprise Server instance without any users, an attacker could create the first admin user.

  • Custom firewall rules are removed during the upgrade process.

  • Git LFS tracked files uploaded through the web interface are incorrectly added directly to the repository.

  • Issues cannot be closed if they contain a permalink to a blob in the same repository, where the blob's file path is longer than 255 characters.

  • When "Users can search GitHub.com" is enabled with GitHub Connect, issues in private and internal repositories are not included in GitHub.com search results.

  • The GitHub Packages npm registry no longer returns a time value in metadata responses. This was done to allow for substantial performance improvements. We continue to have all the data necessary to return a time value as part of the metadata response and will resume returning this value in the future once we have solved the existing performance issues.

  • Resource limits that are specific to processing pre-receive hooks may cause some pre-receive hooks to fail.

  • Actions services need to be restarted after restoring an instance from a backup taken on a different host.

  • In a repository's settings, enabling the option to allow users with read access to create discussions does not enable this functionality.

  • In some cases, users cannot convert existing issues to discussions.

  • During the validation phase of a configuration run, a No such object error may occur for the Notebook and Viewscreen services. This error can be ignored as the services should still correctly start.

  • Following an upgrade to GitHub Enterprise Server 3.6 or later, existing inconsistencies in a repository such as broken refs or missing objects, may now be reported as errors like invalid sha1 pointer 0000000000000000000000000000000000000000, Zero-length loose reference file, or Zero-length loose object file. Previously, these indicators of repository corruption may have been silently ignored. GitHub Enterprise Server now uses an updated Git version with more diligent error reporting enabled. For more information, see this upstream commit in the Git project.

    If you suspect a problem like this exists in one of your repositories, contact GitHub Enterprise Support for assistance.

  • Instances experiencing a high sustained number of concurrent Git requests may experience performance issues. If you suspect that this issue is affecting your instance, contact GitHub Support. For more information, see "Creating a support ticket." [Updated: 2022-12-07]

    Deprecations

  • Upcoming deprecation: In GitHub Enterprise Server 3.8 and later, unsecure algorithms will be disabled for SSH connections to the administrative shell.

  • Commit comments, which are comments that users add directly to a commit outside of a pull request, no longer appear in the pull request timeline. Users could not reply to or resolve these comments. The Timeline events REST API and the GraphQL API's PullRequest object also no longer return commit comments.

  • Diffing GeoJSON, PSD, and STL files is no longer possible.

  • Package registries on the new GitHub Packages architecture, including Container registry and npm packages, no longer expose data through the GraphQL API. In a coming release, other GitHub Packages registries will migrate to the new architecture, which will deprecate the GraphQL API for those registries as well.

December 13, 2022

📣 This is not the latest patch release of Enterprise Server. Please use the latest release for the latest security, performance, and bug fixes.

    Security fixes

  • HIGH: A path traversal vulnerability was identified in GitHub Enterprise Server that allowed remote code execution when building a GitHub Pages site. To exploit this vulnerability, an attacker would need permission to create and build a GitHub Pages site on the instance. This vulnerability was reported via the GitHub Bug Bounty Program and has been assigned CVE-2022-46256.

    Bug fixes

  • A race condition blocked upgrades to GitHub Enterprise Server 3.6 or later until a site administrator retried the upgrade.

  • When a site administrator ran the ghe-repl-status command on a cache replica via the administrative shell (SSH), the command incorrectly reported overall Git and Alambic cluster replication status information as if it pertained only to cache replication.

  • When a site administrator ran the ghe-repl-sync-ca-certificates command from an instances primary node via the administrative shell (SSH), the command only replicated CA certificates from the instances primary node to a single replica node. The command did not replicate the certificates to all available replica nodes.

  • In a high availability configuration, after promotion of a replica to be the primary node, a site administrator could not force replication to stop on a secondary replica node using the ghe-repl-stop -f command.

  • When using repository caching with an instance in a high availability configuration, if a Git client used SSH instead of HTTPS for a repositorys remote URL, Git LFS would fetch objects from the instances primary node instead of the appropriate cache replica node.

  • Installation of GitHub Enterprise Server on the VMware ESXi hypervisor failed due to the generation of an OVA file with an invalid capacity value.

  • When users performed an operation using the API, GitHub Enterprise Server enforced repository size quotas even when disabled globally.

  • In some cases, searches via the API returned a 500 error.

  • Adding a collaborator to a user-owned fork of a private, organization-owned repository with triage, maintain, or custom access resulted in a 500 error.

  • In some cases, the page for setting up code scanning would erroneously report that GitHub Actions was not configured for the instance.

  • Dismissing a Dependabot alert that contained certain characters could result in a 400 error.

  • After a user's account was deleted from the instance, image attachments that the user uploaded in comments were no longer visible in the web interface.

  • On an instance that uses SAML for authentication, the Configure SSO dropdown menu appeared erroneously for personal access tokens and SSH keys.

  • An upgrade from GitHub Enterprise Server 3.5 to 3.7 could fail because the instance had not yet purged deleted repositories.

  • In a high availability or repository caching configuration, Unicorn services on nodes other than the primary node were unable to send log events to the primary node.

  • Fixes a bug in which a GHES log file could get filled very quickly and cause the root drive to run out of free space.

  • When viewing code scanning results for Ruby, an erroneous beta label appeared.

    Changes

  • After an enterprise owner enables Dependabot alerts, GitHub Enterprise Server enqueues the synchronization of advisory data to ensure hourly updates from GitHub.com.

  • A user's list of recently accessed repositories no longer includes deleted repositories.

    Known issues

  • On a freshly set up GitHub Enterprise Server instance without any users, an attacker could create the first admin user.

  • Custom firewall rules are removed during the upgrade process.

  • Git LFS tracked files uploaded through the web interface are incorrectly added directly to the repository.

  • Issues cannot be closed if they contain a permalink to a blob in the same repository, where the blob's file path is longer than 255 characters.

  • When "Users can search GitHub.com" is enabled with GitHub Connect, issues in private and internal repositories are not included in GitHub.com search results.

  • The GitHub Packages npm registry no longer returns a time value in metadata responses. This was done to allow for substantial performance improvements. We continue to have all the data necessary to return a time value as part of the metadata response and will resume returning this value in the future once we have solved the existing performance issues.

  • Resource limits that are specific to processing pre-receive hooks may cause some pre-receive hooks to fail.

  • Actions services need to be restarted after restoring an instance from a backup taken on a different host.

  • In a repository's settings, enabling the option to allow users with read access to create discussions does not enable this functionality.

  • In some cases, users cannot convert existing issues to discussions.

  • During the validation phase of a configuration run, a No such object error may occur for the Notebook and Viewscreen services. This error can be ignored as the services should still correctly start.

  • Following an upgrade to GitHub Enterprise Server 3.6 or later, existing inconsistencies in a repository such as broken refs or missing objects, may now be reported as errors like invalid sha1 pointer 0000000000000000000000000000000000000000, Zero-length loose reference file, or Zero-length loose object file. Previously, these indicators of repository corruption may have been silently ignored. GitHub Enterprise Server now uses an updated Git version with more diligent error reporting enabled. For more information, see this upstream commit in the Git project.

    If you suspect a problem like this exists in one of your repositories, contact GitHub Enterprise Support for assistance.

  • Instances experiencing a high sustained number of concurrent Git requests may experience performance issues. If you suspect that this issue is affecting your instance, contact GitHub Support. For more information, see "Creating a support ticket." [Updated: 2022-12-07]

  • When validating domain settings on an instance with TLS and subdomain isolation enabled, the Management Console does not display GitHub Enterprise Server 3.7's two new subdomains, http(s)://notebooks.HOSTNAME and http(s)://viewscreen.HOSTNAME, in the list of domains. [Updated: 2023-01-12]

    Deprecations

  • Upcoming deprecation: In GitHub Enterprise Server 3.8 and later, unsecure algorithms will be disabled for SSH connections to the administrative shell.

  • Commit comments, which are comments that users add directly to a commit outside of a pull request, no longer appear in the pull request timeline. Users could not reply to or resolve these comments. The Timeline events REST API and the GraphQL API's PullRequest object also no longer return commit comments.

  • Diffing GeoJSON, PSD, and STL files is no longer possible.

  • Package registries on the new GitHub Packages architecture, including Container registry and npm packages, no longer expose data through the GraphQL API. In a coming release, other GitHub Packages registries will migrate to the new architecture, which will deprecate the GraphQL API for those registries as well.

November 22, 2022

📣 This is not the latest patch release of Enterprise Server. Please use the latest release for the latest security, performance, and bug fixes.

    Security fixes

  • HIGH: An improper neutralization of argument delimiters in a command vulnerability was identified in GitHub Enterprise Server that enabled remote code execution. To exploit this vulnerability, an attacker would need permission to create and build GitHub Pages using GitHub Actions. This bug was originally reported via GitHub's Bug Bounty program and assigned CVE-2022-23740. [Updated: 2022-12-02]

  • HIGH: A check was added within Pages to ensure the working directory is clean before unpacking new content to prevent an arbitrary file overwrite bug. This vulnerability has been assigned CVE-2022-46255.

  • MEDIUM: Updated CommonMarker to address a scenario where parallel requests to the Markdown REST API could result in unbounded resource exhaustion. This vulnerability has been assigned CVE-2022-39209.

  • MEDIUM: Scoped user-to-server tokens from GitHub Apps could bypass authorization checks in GraphQL API requests when accessing non-repository resources. This vulnerability was reported via the GitHub Bug Bounty Program and has been assigned CVE-2022-23739.

  • MEDIUM: Pull request preview links did not properly sanitize URLs, allowing a malicious user to embed dangerous links in the instances web UI. This vulnerability was reported via the GitHub Bug Bounty program.

    Bug fixes

  • If a GitHub Actions dependency uses a pinned SHA version, Dependabot will no longer mark the dependency as vulnerable.

  • Running the ghe-spokesctl command returned a failed to get repo metrics error.

  • Setting the maintenance mode with an IP Exception List would not persist across upgrades.

  • GitHub Pages builds could time out on instances in AWS that are configured for high availability.

  • Status details for the replication of Git LFS objects to repository cache replica nodes were not visible in the ghe-repl-status output on those nodes.

  • The audit log timestamp for Dependabot alert events returned the creation date of the alert instead of the timestamp when a user took action on the alert.

  • When accessing an instances JavaScript resources from behind a proxy, the browser displayed Cross-Origin Resource Sharing (CORS) errors.

  • If a user named a status check with leading or trailing spaces, the instance created a duplicate check if another check existed with the same name and no leading or trailing spaces.

  • If a user configured a pre-receive hook for multiple repositories, the instances Hooks page would not always display the correct status for the hook.

  • In some cases, an instance could replace an active repository with a deleted repository.

  • Git LFS objects in a repository with a cache replication policy would not be copied to cache replicas if the total number of objects in the repository exceeded 5,000.

  • After running migrations for the GitHub Enterprise Importer on an instance configured for high availability, replication of migration storage assets would not catch up.

  • Zombie processes no longer accumulate in the gitrpcd container.

  • On an instance with GitHub Packages configured, package upload and installation could fail for customers using a VPC endpoint URL for AWS S3 blob storage.

  • In some cases, after upgrading to GitHub Enterprise Server 3.7.0, users may encounter Internal Server Error or 500 errors when initiating Git operations over SSH or HTTPS.

    Changes

  • If a site administrator has not yet configured GitHub Actions for the instance, the UI for setting up code scanning will prompt the user to configure GitHub Actions.

  • To avoid failing domain verification due to the 63-character limit enforced by DNS providers for DNS records, the GitHub-generated TXT record to verify domain ownership is now limited to 63 characters.

    Known issues

  • On a freshly set up GitHub Enterprise Server instance without any users, an attacker could create the first admin user.

  • Custom firewall rules are removed during the upgrade process.

  • Git LFS tracked files uploaded through the web interface are incorrectly added directly to the repository.

  • Issues cannot be closed if they contain a permalink to a blob in the same repository, where the blob's file path is longer than 255 characters.

  • When "Users can search GitHub.com" is enabled with GitHub Connect, issues in private and internal repositories are not included in GitHub.com search results.

  • The GitHub Packages npm registry no longer returns a time value in metadata responses. This was done to allow for substantial performance improvements. We continue to have all the data necessary to return a time value as part of the metadata response and will resume returning this value in the future once we have solved the existing performance issues.

  • Resource limits that are specific to processing pre-receive hooks may cause some pre-receive hooks to fail.

  • Actions services need to be restarted after restoring an instance from a backup taken on a different host.

  • In a repository's settings, enabling the option to allow users with read access to create discussions does not enable this functionality.

  • In some cases, users cannot convert existing issues to discussions.

  • During the validation phase of a configuration run, a No such object error may occur for the Notebook and Viewscreen services. This error can be ignored as the services should still correctly start.

  • Following an upgrade to GitHub Enterprise Server 3.6 or later, existing inconsistencies in a repository such as broken refs or missing objects, may now be reported as errors like invalid sha1 pointer 0000000000000000000000000000000000000000, Zero-length loose reference file, or Zero-length loose object file. Previously, these indicators of repository corruption may have been silently ignored. GitHub Enterprise Server now uses an updated Git version with more diligent error reporting enabled. For more information, see this upstream commit in the Git project.

    If you suspect a problem like this exists in one of your repositories, contact GitHub Enterprise Support for assistance.

  • Instances experiencing a high sustained number of concurrent Git requests may experience performance issues. If you suspect that this issue is affecting your instance, contact GitHub Support. For more information, see "Creating a support ticket." [Updated: 2022-12-07]

  • When validating domain settings on an instance with TLS and subdomain isolation enabled, the Management Console does not display GitHub Enterprise Server 3.7's two new subdomains, http(s)://notebooks.HOSTNAME and http(s)://viewscreen.HOSTNAME, in the list of domains. [Updated: 2023-01-12]

    Deprecations

  • Upcoming deprecation: In GitHub Enterprise Server 3.8 and later, unsecure algorithms will be disabled for SSH connections to the administrative shell.

  • Commit comments, which are comments that users add directly to a commit outside of a pull request, no longer appear in the pull request timeline. Users could not reply to or resolve these comments. The Timeline events REST API and the GraphQL API's PullRequest object also no longer return commit comments.

  • Diffing GeoJSON, PSD, and STL files is no longer possible.

  • Package registries on the new GitHub Packages architecture, including Container registry and npm packages, no longer expose data through the GraphQL API. In a coming release, other GitHub Packages registries will migrate to the new architecture, which will deprecate the GraphQL API for those registries as well.

October 25, 2022

📣 This is not the latest patch release of Enterprise Server. Please use the latest release for the latest security, performance, and bug fixes.

For upgrade instructions, see "Upgrading GitHub Enterprise Server."

    Features

    Instance administration

  • To increase the security of the Management Console, site administrators can configure the rate limit for sign-in attempts, as well as the lockout duration after exceeding the rate limit. For more information, see "Configuring rate limits."

  • The minimum password requirements for the Management Console are more stringent.

  • Attempts to authenticate to the Management Console and changes made by a site administrator within the Management Console are written to a log file in /var/log/enterprise-manage/audit.log.

  • Instance services

  • Azure Maps replaces MapBox for rendering GeoJSON files as graphical maps. Administrators can enable map rendering and provide an Azure Maps token in the Management Console. For more information, see "Accessing the management console."

  • Authentication

  • Users can verify commits using an SSH public key. For more information, see "About commit signature verification."

  • Site administrators can provision users and groups on a GitHub Enterprise Server instance automatically with SCIM. SCIM for GitHub Enterprise Server is in private beta and subject to change. For more information, see "Configuring user provisioning with SCIM for your enterprise" and "SCIM" in the REST API documentation.

  • GitHub Advanced Security

  • Users on an instance with a GitHub Advanced Security license can view and comment on code scanning alerts in their repository within a pull request's Conversation tab. If the Require conversation resolution before merging branch protection rule is enabled for the repository, all comments on these code scanning alerts must be resolved before a user merges the pull request. For more information, see "About code scanning," "About pull request reviews," and "About protected branches."

  • To simplify the rollout of secret scanning for instances with dozens, hundreds, or even thousands of organizations, enterprise owners on an instance with a GitHub Advanced Security license can enable secret scanning and push protection for the instance using the web interface. For more information, see "Managing GitHub Advanced Security features for your enterprise."

  • Organization owners on an instance with a GitHub Advanced Security license can perform a dry run of custom patterns for secret scanning for all repositories within an organization. For more information, see "Defining custom patterns for secret scanning."

  • If a site administrator has enabled email notifications for an instance with a GitHub Advanced Security license, users who watch a repository's secret scanning alerts will receive an email notification when a contributor bypasses a secret blocked by push protection. Previously, notifications were not sent if the secret was marked as a false positive or used in tests. For more information, see "Protecting pushes with secret scanning" and "Configuring email for notifications."

  • To ease the management of dozens or hundreds of custom patterns for secret scanning, users, organization owners, or enterprise owners on an instance with a GitHub Advanced Security license can sort and filter the list of patterns for a repository, organization, or the entire instance. For more information, see "Defining custom patterns for secret scanning."

  • Users on an instance with a GitHub Advanced Security license who protect pushes with secret scanning can specify a custom link that will display in the error message when push protection detects and blocks a potential secret. For more information, see "Protecting pushes with secret scanning."

  • Users can publish CodeQL packs to the Container registry. For more information, see Creating and working with CodeQL packs in the CodeQL CLI documentation.

  • Users on an instance with a GitHub Advanced Security license can use CodeQL packs with code scanning, including packs that are published to the instance's GitHub Container registry. For more information, see "Configuring code scanning" and