GHSA-3QQ3-668M-V9MJ

Vulnerability from github – Published: 2026-06-22 16:58 – Updated: 2026-06-22 16:58
VLAI
Summary
Gogs has a Denial of Service in repository/wiki file listing web pages
Details

Summary

A malicious user with rights to create a new file on a repository or wiki page can trigger a denial of service condition in which the pages containing the listing of files will return HTTP error 500 and render the web interface unusable for the repository or wiki.

Details

The issue is present in file internal/route/repo/wiki.go and internal/route/repo/view.go where the pages try to recover commit information. If errors are returned while recovering commit information, the page will return a 500 error and stop rendering, resulting in a denial of service. In view.go the issue occurs at line 56 while a slightly different issue occurs in wiki.go at line 174 where commits[0] is dereferenced without checking if it contains value. It is possible to trigger issues in assigning the correct value to variable commits by using a specific string as part of the page title. The issue is linked to the fact that file names can contain special characters such as *, ?, [, ], etc. that will be interpreted as git's pathspec instead of a simple string. So crafting a name containing an incomplete pathspec sequence will trigger this error.

PoC

As a proof of concept consider the file name "[] and how it affects repository and wiki pages. In the following images it is shown how pages are created, the error shown in the web page right after creation and the error as logged in the console.

repo_creation

Figure 1: Creation of malicious file in repository

repo_error_web

Figure 2: Malicious file in repository causes error 500

repo_error_console

Figure 3: Console error caused by malicious file in repository

wiki_creation

Figure 4: Creation of malicious file in wiki

wiki_error_web

Figure 5: Malicious file in wiki causes error 500

wiki_error_console

Figure 6: Console error caused by malicious file in wiki

Impact

The repository and wiki pages will not render when files named with the payload are present in the repository or in the wiki. This condition will be present as long as the malicious file is present in the repository or wiki. The issue will not cause a DoS condition when using the server via CLI.

Show details on source website

{
  "affected": [
    {
      "database_specific": {
        "last_known_affected_version_range": "\u003c= 0.14.2"
      },
      "package": {
        "ecosystem": "Go",
        "name": "gogs.io/gogs"
      },
      "ranges": [
        {
          "events": [
            {
              "introduced": "0"
            },
            {
              "fixed": "0.14.3"
            }
          ],
          "type": "ECOSYSTEM"
        }
      ]
    }
  ],
  "aliases": [
    "CVE-2025-64719"
  ],
  "database_specific": {
    "cwe_ids": [
      "CWE-20"
    ],
    "github_reviewed": true,
    "github_reviewed_at": "2026-06-22T16:58:31Z",
    "nvd_published_at": null,
    "severity": "MODERATE"
  },
  "details": "### Summary\nA malicious user with rights to create a new file on a repository or wiki page can trigger a denial of service condition in which the pages containing the listing of files will return HTTP error 500 and render the web interface unusable for the repository or wiki.\n\n### Details\nThe issue is present in file `internal/route/repo/wiki.go` and `internal/route/repo/view.go` where the pages try to recover commit information. If errors are returned while recovering commit information, the page will return a 500 error and stop rendering, resulting in a denial of service.\nIn `view.go` the issue occurs at [line 56](https://github.com/gogs/gogs/blob/89f0f86c7e1a3be7f48d99e27818a79d17357558/internal/route/repo/view.go#L56) while a slightly different issue occurs in `wiki.go` at [line 174](https://github.com/gogs/gogs/blob/89f0f86c7e1a3be7f48d99e27818a79d17357558/internal/route/repo/wiki.go#L174) where `commits[0]` is dereferenced without checking if it contains value.\nIt is possible to trigger issues in assigning the correct value to variable `commits` by using a specific string as part of the page title. \nThe issue is linked to the fact that file names can contain special characters such as `*`, `?`, `[`, `]`, etc. that will be interpreted as git\u0027s pathspec instead of a simple string. So crafting a name containing an incomplete pathspec sequence will trigger this error.\n\n### PoC\nAs a proof of concept consider the file name `\"[]` and how it affects repository and wiki pages.\nIn the following images it is shown how pages are created, the error shown in the web page right after creation and the error as logged in the console.\n\n\u003cimg width=\"835\" height=\"503\" alt=\"repo_creation\" src=\"https://github.com/user-attachments/assets/cdee9625-33d9-42d3-a5fa-264fba4923ed\" /\u003e\n\n**Figure 1: Creation of malicious file in repository**\n\n\u003cimg width=\"832\" height=\"692\" alt=\"repo_error_web\" src=\"https://github.com/user-attachments/assets/53c57366-8f45-4a0f-a2ac-86f4a08467cc\" /\u003e\n\n**Figure 2: Malicious file in repository causes error 500**\n\n\u003cimg width=\"934\" height=\"56\" alt=\"repo_error_console\" src=\"https://github.com/user-attachments/assets/26427fc3-bead-4e41-a484-e2d53289a2da\" /\u003e\n\n**Figure 3: Console error caused by malicious file in repository**\n\n\u003cimg width=\"835\" height=\"503\" alt=\"wiki_creation\" src=\"https://github.com/user-attachments/assets/7a5c9836-64e3-4824-b6e5-9f9a80e7f18a\" /\u003e\n\n**Figure 4: Creation of malicious file in wiki**\n\n\u003cimg width=\"1001\" height=\"463\" alt=\"wiki_error_web\" src=\"https://github.com/user-attachments/assets/33c5a907-b81c-4157-bd37-33341412172a\" /\u003e\n\n**Figure 5: Malicious file in wiki causes error 500**\n\n\u003cimg width=\"1018\" height=\"537\" alt=\"wiki_error_console\" src=\"https://github.com/user-attachments/assets/9b0ab551-5720-4715-a2ac-f7310534f025\" /\u003e\n\n**Figure 6: Console error caused by malicious file in wiki**\n\n### Impact\nThe repository and wiki pages will not render when files named with the payload are present in the repository or in the wiki.\nThis condition will be present as long as the malicious file is present in the repository or wiki. The issue will not cause a DoS condition when using the server via CLI.",
  "id": "GHSA-3qq3-668m-v9mj",
  "modified": "2026-06-22T16:58:31Z",
  "published": "2026-06-22T16:58:31Z",
  "references": [
    {
      "type": "WEB",
      "url": "https://github.com/gogs/gogs/security/advisories/GHSA-3qq3-668m-v9mj"
    },
    {
      "type": "WEB",
      "url": "https://github.com/gogs/gogs/pull/8116"
    },
    {
      "type": "WEB",
      "url": "https://github.com/gogs/gogs/commit/ae41bab5f28e4880edcef01c91d2cbb8839ec9e4"
    },
    {
      "type": "PACKAGE",
      "url": "https://github.com/gogs/gogs"
    },
    {
      "type": "WEB",
      "url": "https://github.com/gogs/gogs/releases/tag/v0.14.3"
    }
  ],
  "schema_version": "1.4.0",
  "severity": [
    {
      "score": "CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:N/I:N/A:H",
      "type": "CVSS_V3"
    }
  ],
  "summary": "Gogs has a Denial of Service in repository/wiki file listing web pages"
}


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…