CVE-2026-63404: Faktory: Insecure predictable /tmp/redis.conf enables local Redis config hijack (network exposure / root RCE primitive)
Faktory is a language-agnostic background job server. In versions prior to 1.10.0, the embedded Redis bootstrapper is vulnerable to an insecure temporary file flaw that lets a local unprivileged user hijack the Redis configuration and escalate to root. It writes its startup configuration to a fixed, predictable, world-writable path, /tmp/redis.conf, only creating the file if it does not already exist and never validating it on later boots. Because /tmp is world-writable, a local unprivileged user can pre-create /tmp/redis.conf with attacker-chosen Redis directives before Faktory starts, and Faktory will use the planted file verbatim. Faktory only overrides the unixsocket, dir, and logfile options, leaving directives such as bind, protected-mode, requirepass, and loadmodule attacker-controlled. This lets an attacker silently expose the entire job queue over an unauthenticated network port with no visible error to the administrator. Because the official systemd unit runs Faktory, and the redis-server child it spawns, as root, an attacker can also supply a loadmodule directive to execute arbitrary native code in the root-owned Redis process, escalating from a local unprivileged user to root. This issue is fixed in version 1.10.0.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade to a fixed release to a version that resolves this vulnerability.
Fixed in 1.10.0 - Compensating control
Prevent local config hijack by ensuring Faktory/Redis cannot use the world-writable fixed path /tmp/redis.conf (e.g., restrict/replace usage of /tmp/redis.conf so it cannot be pre-created by unprivileged users).
- Compensating control
Reduce impact of exposed unauthenticated Redis directives by restricting network access to the Redis port that Faktory/embedded redis-server listens on (allow only trusted sources).
Event History
Frequently Asked Questions
Which deployments are most exposed to root-level impact?
Deployments using the official systemd unit are especially exposed because it runs Faktory and its redis-server child as root. A planted loadmodule directive can cause arbitrary native code to execute in the root-owned Redis process.
What access does an attacker need to exploit this issue?
An attacker needs local unprivileged access and must be able to create /tmp/redis.conf before Faktory starts. Faktory then uses the attacker-created configuration on startup without validating it.
Can this also expose the job queue over the network?
Yes. An attacker can control Redis directives such as bind, protected-mode, and requirepass, allowing the queue to be exposed on an unauthenticated network port without a visible administrator error.
What version resolves the vulnerable behavior?
Faktory versions prior to 1.10.0 are affected. Upgrading to version 1.10.0 or later removes the affected version range.