Skip to content
Heist/ feed
Back to feed
High

Faktory: Unrecovered panic in command handlers allows full-server denial of service

Type: advisorySources: OSV

Faktory is a language-agnostic background job server. In versions prior to 1.10.0, the server is vulnerable to an unauthenticated denial of service in which a single malformed command crashes the entire process. Its wire protocol is line-based, and several command handlers slice or index the received line at a fixed offset, such as cmd[5:] for PUSH or qs[0] for QUEUE, without checking that a payload is present. Sending a bare verb with no payload, for example PUSH, ACK, FAIL, BEAT, PUSHB, or QUEUE, triggers a Go slice or index out-of-range panic. Because the codebase has no recover() anywhere in the command-dispatch path, an unrecovered panic in a handler goroutine terminates the whole Go process rather than just that connection, instantly disconnecting every other client, worker, and in-flight job. The attack requires only a connection to the command port and completion of the trivial handshake, with no credentials when no password is configured, and can be repeated to keep the service down indefinitely. This issue is fixed in version 1.10.0.

Products
Not specified
Affected versions
Not specified
Fixed versions
Not specified
CVEs
CVE-2026-63403
Confirmed fixed CVEs
Not specified
Updated in this feed
3 Nov 2026, 16:11 UTC · Revision 1

Source evidence

Faktory: Unrecovered panic in command handlers allows full-server denial of service

core-osv · Original source

Published 25 Aug 2026, 22:04 UTC

Faktory is a language-agnostic background job server. In versions prior to 1.10.0, the server is vulnerable to an unauthenticated denial of service in which a single malformed command crashes the entire process. Its wire protocol is line-based, and several command handlers slice or index the received line at a fixed offset, such as cmd[5:] for PUSH or qs[0] for QUEUE, without checking that a payload is present. Sending a bare verb with no payload, for example PUSH, ACK, FAIL, BEAT, PUSHB, or QUEUE, triggers a Go slice or index out-of-range panic. Because the codebase has no recover() anywhere in the command-dispatch path, an unrecovered panic in a handler goroutine terminates the whole Go process rather than just that connection, instantly disconnecting every other client, worker, and in-flight job. The attack requires only a connection to the command port and completion of the trivial handshake, with no credentials when no password is configured, and can be repeated to keep the service down indefinitely. This issue is fixed in version 1.10.0.

osv:CVE-2026-63403
Complete source record
{
  "id": "0a60e79d61e8e5a4ccf3b48cd02c1b5437b233f57f55f3d7430fc92b96e59cc0",
  "url": "https://osv.dev/vulnerability/CVE-2026-63403",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "Faktory: Unrecovered panic in command handlers allows full-server denial of service",
    "summary": "Faktory is a language-agnostic background job server. In versions prior to 1.10.0, the server is vulnerable to an unauthenticated denial of service in which a single malformed command crashes the entire process. Its wire protocol is line-based, and several command handlers slice or index the received line at a fixed offset, such as cmd[5:] for PUSH or qs[0] for QUEUE, without checking that a payload is present. Sending a bare verb with no payload, for example PUSH, ACK, FAIL, BEAT, PUSHB, or QUEUE, triggers a Go slice or index out-of-range panic. Because the codebase has no recover() anywhere in the command-dispatch path, an unrecovered panic in a handler goroutine terminates the whole Go process rather than just that connection, instantly disconnecting every other client, worker, and in-flight job. The attack requires only a connection to the command port and completion of the trivial handshake, with no credentials when no password is configured, and can be repeated to keep the service down indefinitely. This issue is fixed in version 1.10.0.",
    "evidence": "osv:CVE-2026-63403",
    "products": [],
    "severity": "high",
    "structured": {
      "id": "CVE-2026-63403",
      "aliases": [
        "CVE-2026-63403",
        "GHSA-gc57-f6pg-m9h6"
      ],
      "metrics": [
        {
          "type": "CVSS_V4",
          "score": "CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N"
        }
      ],
      "affected": [
        {
          "ranges": [
            {
              "repo": "https://github.com/contribsys/faktory",
              "type": "GIT",
              "events": [
                {
                  "introduced": "0"
                },
                {
                  "fixed": "c2f17e390fc7d38b6ece82b8da23f5ca15646212"
                }
              ],
              "database_specific": {
                "extracted_events": [
                  {
                    "range": [
                      {
                        "fixed": "c2f17e390fc7d38b6ece82b8da23f5ca15646212"
                      }
                    ],
                    "source": "REFERENCES_COMMIT"
                  }
                ]
              }
            }
          ],
          "versions": [
            "v1.9.4",
            "v1.9.3",
            "v1.9.2",
            "v1.9.1",
            "v1.9.0",
            "v1.8.0",
            "v1.7.0",
            "v1.6.2",
            "v1.6.1",
            "v1.6.0",
            "v1.5.5",
            "v1.5.4",
            "v1.5.3",
            "v1.5.2",
            "v1.5.2-1",
            "v1.5.1-1",
            "v1.5.1",
            "v1.5.0",
            "v1.5.0-1",
            "v1.4.2-1",
            "v1.4.1-1",
            "v1.4.0-1",
            "v1.3.0-1",
            "v1.2.0-1",
            "v1.1.0-2",
            "v1.1.0-1",
            "v1.0.1-1",
            "v1.0.0-1",
            "v0.9.7-1",
            "v0.9.6-1",
            "v0.9.5-1",
            "v0.9.4-1",
            "v0.9.3-1",
            "v0.9.2-1",
            "v0.9.1-1",
            "v0.9.0-1",
            "v0.8.0-1",
            "v0.7.0-1",
            "v0.6.1-1",
            "v0.6.0-1"
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-63403.json"
          }
        }
      ],
      "modified": "2026-10-28T02:30:30.280693933Z",
      "provider": "osv",
      "references": [
        "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/63xxx/CVE-2026-63403.json",
        "https://github.com/contribsys/faktory/security/advisories/GHSA-gc57-f6pg-m9h6",
        "https://nvd.nist.gov/vuln/detail/CVE-2026-63403"
      ],
      "provider_metadata": {
        "cwe_ids": [
          "CWE-248"
        ],
        "cna_assigner": "GitHub_M",
        "unresolved_ranges": [
          {
            "extracted_events": [
              {
                "range": [
                  {
                    "fixed": "1.10.0"
                  }
                ],
                "source": "AFFECTED_FIELD",
                "strategy": "StringRangeExpression"
              }
            ]
          },
          {
            "extracted_events": [
              {
                "range": [
                  {
                    "fixed": "1.10.0"
                  },
                  {
                    "fixed": "1.10.0"
                  }
                ],
                "source": "DESCRIPTION"
              }
            ]
          }
        ],
        "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/63xxx/CVE-2026-63403.json"
      }
    },
    "related_cves": [
      {
        "value": "CVE-2026-63403",
        "evidence": "/id"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/severity/0/score"
  },
  "source_id": "core-osv",
  "document_id": 497177,
  "published_at": "2026-08-25T22:04:48.255+00:00"
}