Description
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.
Published: 2026-08-25
Score: 8.7 High
EPSS: < 1% Very Low
KEV: No
Impact: Denial of Service
Action: Immediate Patch
AI Analysis

Impact

Faktory, a language‑agnostic background job server, contains a flaw where certain command handlers perform unsanitized slicing or indexing of incoming messages. When a client sends a bare verb such as PUSH or QUEUE without the expected payload, the Go runtime panics due to an out‑of‑range index. Because the server’s dispatch path contains no recover logic, the panic propagates to the entire process, shutting down Faktory and disconnecting every connected client. This results in a complete denial of service that can be repeatedly triggered without authentication or any credentials.

Affected Systems

All Faktory installations running versions earlier than 1.10.0 are vulnerable. The affected product is Contribsys Faktory; no specific sub‑component version data is provided beyond the mention that the issue is fixed in 1.10.0.

Risk and Exploitability

The CVSS score of 8.7 reflects a high severity for a denial‑of‑service vulnerability. The EPSS score is not available, and the vulnerability is not listed in the CISA KEV catalog. An attacker only needs to establish an unauthenticated connection to Faktory’s command port and perform a trivial handshake to trigger the panic. Because the flaw does not require privileged credentials, it can be abused from any network location that can reach the port, and the service remains down until a restart or code update occurs. If an organization relies on Faktory for critical job processing, this vulnerability poses a significant availability risk to operations.

Generated by OpenCVE AI on August 26, 2026 at 01:22 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade Faktory to version 1.10.0 or later, which implements bounds checks and adds recover handling in command dispatch.
  • If an upgrade cannot be performed immediately, limit access to Faktory’s command port by using firewalls or VPN, and enable any available authentication mechanisms to restrict who can issue commands.
  • Continuously monitor server logs for repeated empty command attempts and set alerts to detect potential denial‑of‑service attacks, ensuring rapid response if the service becomes unavailable.

Generated by OpenCVE AI on August 26, 2026 at 01:22 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Wed, 26 Aug 2026 15:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'yes', 'Exploitation': 'poc', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Wed, 26 Aug 2026 02:00:00 +0000

Type Values Removed Values Added
First Time appeared Contribsys
Contribsys faktory
Vendors & Products Contribsys
Contribsys faktory

Tue, 25 Aug 2026 22:15:00 +0000

Type Values Removed Values Added
Description 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.
Title Faktory: Unrecovered panic in command handlers allows full-server denial of service
Weaknesses CWE-248
References
Metrics cvssV4_0

{'score': 8.7, 'vector': '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'}


Subscriptions

Contribsys Faktory
cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-08-26T14:31:10.402Z

Reserved: 2026-07-16T19:20:28.987Z

Link: CVE-2026-63403

cve-icon Vulnrichment

Updated: 2026-08-26T14:30:35.010Z

cve-icon NVD

Status : Deferred

Published: 2026-08-25T22:17:04.617

Modified: 2026-09-09T21:09:13.080

Link: CVE-2026-63403

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-26T01:45:03Z

Weaknesses