CVE-2024-31449
NoneCVSS
—
EPSS
4.5%
Published
Oct 7, 2024
CISA due date
—
Cloudanix analysis
An authorized user could run a specially made script that lets them take over the database server and potentially the whole system.
- Exploitation
- Remote Authenticated
- Attacker needs
- Low Privilege
- Complexity
- Moderate
- Impact
- Remote Code Execution
- Component
- Network Service
- Class
- Buffer Overflow
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
An authenticated user can supply a crafted Lua script that triggers a stack buffer overflow in the bit library, enabling potential remote code execution on the Redis server.
Why it matters to the business
Successful exploitation could allow an attacker to execute arbitrary code, leading to database compromise, data theft, or system takeover; the issue affects widely used database and proxy deployments with no known workarounds, though exploitation requires authentication and current threat activity remains low.
How an attack unfolds
An attacker first obtains valid credentials, then submits a malicious Lua script through the Redis scripting interface that overflows the bit library stack buffer to achieve code execution.
How to fix it
Upgrade Redis to version 6.2.16, 7.2.6, or 7.4.1; upgrade Traefik v2 to 2.10.6 and Traefik v3 to 3.0.0-beta5. No workarounds exist; apply the exact fixed commits or releases listed for each component.
How to confirm the fix worked
Verify the running Redis or Traefik binary version matches a fixed release; attempt to reproduce the overflow with a test Lua bit script in a non-production environment to confirm the vulnerability is no longer present.
Typical attack path
- Obtain valid Redis authentication credentials
- Connect to the Redis instance and issue a crafted EVAL or EVALSHA command containing malicious Lua bit operations
- Trigger the stack buffer overflow to redirect execution flow
- Execute arbitrary code on the host
How to detect it
Review Redis command logs and slow-log entries for unusual Lua scripts containing bit library calls; correlate with authentication events and look for post-exploitation process anomalies on the host.
What your security team should do
- Immediately schedule upgrades to the listed fixed versions for all Redis and dependent Traefik instances
- Restrict Lua scripting permissions to the minimum required accounts
- Monitor authentication and command logs for anomalous EVAL usage until patching is complete
- Review downstream dependents for transitive exposure given the ecosystem prevalence
The record
Redis is an open source, in-memory database that persists on disk. An authenticated user may use a specially crafted Lua script to trigger a stack buffer overflow in the bit library, which may potentially lead to remote code execution. The problem exists in all versions of Redis with Lua scripting. This problem has been fixed in Redis versions 6.2.16, 7.2.6, and 7.4.1. Users are advised to upgrade. There are no known workarounds for this vulnerability.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| AlmaLinux:8 | redis | 0 | 6.2.17-1.module_el8.10.0+3946+3de613d5 |
| AlmaLinux:8 | redis-devel | 0 | 6.2.17-1.module_el8.10.0+3946+3de613d5 |
| AlmaLinux:8 | redis-doc | 0 | 6.2.17-1.module_el8.10.0+3946+3de613d5 |
| AlmaLinux:9 | redis | 0 | 6.2.17-1.el9_5 |
| AlmaLinux:9 | redis | 0 | 7.2.6-1.module_el9.5.0+130+36ae7635 |
| AlmaLinux:9 | redis-devel | 0 | 6.2.17-1.el9_5 |
| AlmaLinux:9 | redis-devel | 0 | 7.2.6-1.module_el9.5.0+130+36ae7635 |
| AlmaLinux:9 | redis-doc | 0 | 6.2.17-1.el9_5 |
| AlmaLinux:9 | redis-doc | 0 | 7.2.6-1.module_el9.5.0+130+36ae7635 |
| Alpine:v3.15 | redis | 0 | 6.2.18-r0 |
| Alpine:v3.17 | redis | 0 | 7.0.15-r1 |
| Alpine:v3.18 | redis | 0 | 7.0.15-r1 |
| Alpine:v3.19 | redis | 0 | 7.2.4-r1 |
| Alpine:v3.20 | valkey | 0 | 7.2.7-r0 |
| Alpine:v3.21 | valkey | 0 | 7.2.7-r0 |
| Alpine:v3.22 | valkey | 0 | 7.2.7-r0 |
| Bitnami | keydb | 2.6.0 | 6.2.16 |
| Bitnami | keydb | 2.6.0 | 6.3.4 |
| Bitnami | redis | 2.6.0 | 6.2.16 |
| Bitnami | valkey | 0 | 7.2.7 |
| Bitnami | valkey | 2.6.0 | 6.2.16 |
| Chainguard | py3-redis | 0 | 0 |
| Chainguard | py3.10-redis | 0 | 0 |
| Chainguard | py3.11-redis | 0 | 0 |
| Chainguard | py3.12-redis | 0 | 0 |
| Chainguard | py3.13-redis | 0 | 0 |
| Chainguard | redis-6.2 | 0 | 6.2.16-r0 |
| Chainguard | redis-6.2-bitnami-compat | 0 | 6.2.16-r0 |
| Chainguard | redis-6.2-iamguarded-compat | 0 | 6.2.16-r0 |
| Chainguard | redis-6.2.10-benchmark | 0 | 6.2.10-r40 |
| Chainguard | redis-6.2.10-cli | 0 | 6.2.10-r40 |
| Chainguard | redis-7.2 | 0 | 7.2.6-r0 |
| Chainguard | redis-7.2-bitnami-compat | 0 | 7.4.1-r0 |
| Chainguard | redis-7.2-iamguarded-compat | 0 | 7.2.12-r2 |
| Chainguard | redis-7.4 | 0 | 7.4.1-r0 |
| Chainguard | redis-7.4-bitnami-compat | 0 | 7.4.1-r0 |
| Chainguard | redis-7.4-iamguarded-compat | 0 | 7.4.1-r0 |
| Chainguard | redis-benchmark-6.2 | 0 | 6.2.16-r0 |
| Chainguard | redis-benchmark-7.2 | 0 | 7.2.12-r2 |
| Chainguard | redis-benchmark-7.4 | 0 | 7.4.1-r0 |
| Chainguard | redis-check-aof-6.2 | 0 | 6.2.16-r0 |
| Chainguard | redis-check-rdb-6.2 | 0 | 6.2.16-r0 |
| Chainguard | redis-cli-6.2 | 0 | 6.2.16-r0 |
| Chainguard | redis-cli-7.2 | 0 | 7.4.1-r0 |
| Chainguard | redis-cli-7.4 | 0 | 7.4.1-r0 |
| Chainguard | redis-cluster-6.2-bitnami-compat | 0 | 6.2.16-r0 |
| Chainguard | redis-cluster-6.2-iamguarded-compat | 0 | 6.2.16-r0 |
| Chainguard | redis-cluster-7.2-bitnami-compat | 0 | 7.4.1-r0 |
| Chainguard | redis-cluster-7.2-iamguarded-compat | 0 | 7.2.12-r2 |
| Chainguard | redis-cluster-7.4-bitnami-compat | 0 | 7.4.1-r0 |
| Chainguard | redis-cluster-7.4-iamguarded-compat | 0 | 7.4.1-r0 |
| Chainguard | redis-sentinel-6.2 | 0 | 6.2.16-r0 |
| Chainguard | redis-sentinel-6.2-bitnami-compat | 0 | 6.2.16-r0 |
| Chainguard | redis-sentinel-6.2-iamguarded-compat | 0 | 6.2.16-r0 |
| Chainguard | redis-sentinel-7.2-bitnami-compat | 0 | 7.4.1-r0 |
| Chainguard | redis-sentinel-7.2-iamguarded-compat | 0 | 7.2.12-r2 |
| Chainguard | redis-sentinel-7.4-bitnami-compat | 0 | 7.4.1-r0 |
| Chainguard | redis-sentinel-7.4-iamguarded-compat | 0 | 7.4.1-r0 |
| Debian:11 | redis | 0 | No fix |
| Debian:12 | redis | 0 | No fix |
| Debian:13 | redict | 0 | 7.3.1+ds-1 |
| Debian:13 | redis | 0 | No fix |
| Debian:13 | redis | 0 | 5:7.0.15-2 |
| Debian:13 | valkey | 0 | No fix |
| Debian:13 | valkey | 0 | 8.0.1+dfsg1-1 |
| Debian:14 | redict | 0 | 7.3.1+ds-1 |
| Debian:14 | redis | 0 | 5:7.0.15-2 |
| Debian:14 | valkey | 0 | 8.0.1+dfsg1-1 |
| Mageia:9 | redis | 0 | 7.0.14-1.1.mga9 |
| Red Hat:enterprise_linux:9::appstream | redis | 0 | 0:7.2.6-1.module+el9.5.0+22422+63e067d8 |
| Red Hat:enterprise_linux:9::appstream | redis-debuginfo | 0 | 0:7.2.6-1.module+el9.5.0+22422+63e067d8 |
| Red Hat:enterprise_linux:9::appstream | redis-debugsource | 0 | 0:7.2.6-1.module+el9.5.0+22422+63e067d8 |
| Red Hat:enterprise_linux:9::appstream | redis-devel | 0 | 0:7.2.6-1.module+el9.5.0+22422+63e067d8 |
| Red Hat:enterprise_linux:9::appstream | redis-doc | 0 | 0:7.2.6-1.module+el9.5.0+22422+63e067d8 |
| Rocky Linux:8 | redis | 0 | 0:6.2.17-1.module+el8.10.0+1923+5b85c6a7 |
| Rocky Linux:9 | redis | 0 | 0:6.2.17-1.el9_5 |
| SUSE:Enterprise Storage 7.1 | redis | 0 | 6.0.14-150200.6.32.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP3-LTSS | redis | 0 | 6.0.14-150200.6.32.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP4-ESPOS | redis | 0 | 6.2.6-150400.3.28.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP4-LTSS | redis | 0 | 6.2.6-150400.3.28.1 |
| SUSE:Linux Enterprise Module for Server Applications 15 SP5 | redis | 0 | 6.2.6-150400.3.28.1 |
| SUSE:Linux Enterprise Module for Server Applications 15 SP5 | redis7 | 0 | 7.0.8-150500.3.12.1 |
| SUSE:Linux Enterprise Module for Server Applications 15 SP6 | redis | 0 | 7.2.4-150600.3.3.1 |
| SUSE:Linux Enterprise Module for Server Applications 15 SP6 | redis7 | 0 | 7.0.8-150600.8.3.1 |
| SUSE:Linux Enterprise Server 15 SP3-LTSS | redis | 0 | 6.0.14-150200.6.32.1 |
| SUSE:Linux Enterprise Server 15 SP4-LTSS | redis | 0 | 6.2.6-150400.3.28.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP3 | redis | 0 | 6.0.14-150200.6.32.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP4 | redis | 0 | 6.2.6-150400.3.28.1 |
| SUSE:Manager Proxy 4.3 | redis | 0 | 6.2.6-150400.3.28.1 |
| SUSE:Manager Server 4.3 | redis | 0 | 6.2.6-150400.3.28.1 |
| Ubuntu:20.04:LTS | redis | 0 | No fix |
| Ubuntu:22.04:LTS | redis | 0 | No fix |
| Ubuntu:24.04:LTS | redis | 0 | No fix |
| Ubuntu:24.10 | redis | 0 | No fix |
| Ubuntu:25.04 | redis | 0 | No fix |
| Ubuntu:25.10 | redis | 0 | No fix |
| Ubuntu:Pro:14.04:LTS | redis | 0 | No fix |
| Ubuntu:Pro:16.04:LTS | redis | 0 | No fix |
| Ubuntu:Pro:18.04:LTS | redis | 0 | No fix |
| Ubuntu:Pro:20.04:LTS | redis | 0 | No fix |
| Ubuntu:Pro:22.04:LTS | redis | 0 | No fix |
| Wolfi | redis-6.2 | 0 | 6.2.16-r0 |
| Wolfi | redis-6.2-bitnami-compat | 0 | 6.2.16-r0 |
| Wolfi | redis-7.2 | 0 | 7.2.6-r0 |
| Wolfi | redis-7.2-bitnami-compat | 0 | 7.4.1-r0 |
| Wolfi | redis-7.4 | 0 | 7.4.1-r0 |
| Wolfi | redis-benchmark-6.2 | 0 | 6.2.16-r0 |
| Wolfi | redis-benchmark-7.2 | 0 | 7.2.12-r2 |
| Wolfi | redis-check-aof-6.2 | 0 | 6.2.16-r0 |
| Wolfi | redis-check-rdb-6.2 | 0 | 6.2.16-r0 |
| Wolfi | redis-cli-6.2 | 0 | 6.2.16-r0 |
| Wolfi | redis-cli-7.2 | 0 | 7.4.1-r0 |
| Wolfi | redis-cluster-6.2-bitnami-compat | 0 | 6.2.16-r0 |
| Wolfi | redis-cluster-7.2-bitnami-compat | 0 | 7.4.1-r0 |
| Wolfi | redis-sentinel-6.2 | 0 | 6.2.16-r0 |
| Wolfi | redis-sentinel-6.2-bitnami-compat | 0 | 6.2.16-r0 |
| Wolfi | redis-sentinel-7.2-bitnami-compat | 0 | 7.4.1-r0 |
| openSUSE:Leap 15.5 | redis | 0 | 6.2.6-150400.3.28.1 |
| openSUSE:Leap 15.5 | redis7 | 0 | 7.0.8-150500.3.12.1 |
| openSUSE:Leap 15.6 | redis | 0 | 7.2.4-150600.3.3.1 |
| openSUSE:Leap 15.6 | redis7 | 0 | 7.0.8-150600.8.3.1 |
| openSUSE:Tumbleweed | redis | 0 | 8.0.2-1.1 |
| openSUSE:Tumbleweed | valkey | 0 | 8.0.1-1.1 |
Related vulnerabilities
- CVE-2025-49844 Redis is an open source, in-memory database that persists on disk. Also affects redis
- CVE-2024-46981 Redis is an open source, in-memory database that persists on disk. Also affects redis
- CVE-2024-31228 Redis is an open source, in-memory database that persists on disk. Also affects redis
- CVE-2024-51741 Redis is an open source, in-memory database that persists on disk. Also affects redis
- CVE-2024-31227 Redis is an open source, in-memory database that persists on disk. Also affects redis
- CVE-2025-62507 Redis: Bug in XACKDEL may lead to stack overflow and potential RCE Also affects keydb
- CVE-2022-0543 It was discovered, that redis, a persistent key-value database, due to a packaging issue… Also affects redis-6.2
- CVE-2016-8339 A buffer overflow in Redis 3.2.x prior to 3.2.4 causes arbitrary code execution when a… Also affects redis