CVE-2021-29477
Vulnerability in the STRALGO LCS command
Redis is an open source (BSD licensed), in-memory data structure store, used as a database, cache, and message broker. An integer overflow bug in Redis version 6.0 or newer could be exploited using the STRALGO LCS command to corrupt the heap and potentially result with remote code execution. The problem is fixed in version 6.2.3 and 6.0.13. An additional workaround to mitigate the problem without patching the redis-server executable is to use ACL configuration to prevent clients from using the STRALGO LCS command.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- High
- Privileges needed
- Low
- User interaction
- None
What an attacker can affect
- Confidentiality
- High
- Integrity
- High
- Availability
- High
Exploit likelihood
What each source reports
CVE List Score used
7.5
Vulnerability in the STRALGO LCS command
Redis is an open source (BSD licensed), in-memory data structure store, used as a database, cache, and message broker. An integer overflow bug in Redis version 6.0 or newer could be exploited using the STRALGO LCS command to corrupt the heap and potentially result with remote code execution. The problem is fixed in version 6.2.3 and 6.0.13. An additional workaround to mitigate the problem without patching the redis-server executable is to use ACL configuration to prevent clients from using the STRALGO LCS command.
- Record
CVE-2021-29477- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H - Weakness
- CWE-190
- Updated
- 2026-11-02
EUVDEUVD-2021-16084
7.5
Redis is an open source (BSD licensed), in-memory data structure store, used as a database, cache, and message broker. An integer overflow bug in Redis version 6.0 or newer could be exploited using the STRALGO LCS command to corrupt the heap and potentially result with remote code execution. The problem is fixed in version 6.2.3 and 6.0.13. An additional workaround to mitigate the problem without patching the redis-server executable is to use ACL configuration to prevent clients from using the STRALGO LCS command.
- Record
EUVD-2021-16084- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H - Updated
- 2026-11-03
NVD
7.5
Redis is an open source (BSD licensed), in-memory data structure store, used as a database, cache, and message broker. An integer overflow bug in Redis version 6.0 or newer could be exploited using the STRALGO LCS command to corrupt the heap and potentially result with remote code execution. The problem is fixed in version 6.2.3 and 6.0.13. An additional workaround to mitigate the problem without patching the redis-server executable is to use ACL configuration to prevent clients from using the STRALGO LCS command.
- Record
CVE-2021-29477- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H - CVSS 3.1
- 8.8 High
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H - CVSS 2.0
- 6.5 Medium
AV:N/AC:L/Au:S/C:P/I:P/A:P - Weakness
- CWE-190
- Updated
- 2026-11-02
OSVALPINE-CVE-2021-29477
8.8
Redis is an open source (BSD licensed), in-memory data structure store, used as a database, cache, and message broker. An integer overflow bug in Redis version 6.0 or newer could be exploited using the STRALGO LCS command to corrupt the heap and potentially result with remote code execution. The problem is fixed in version 6.2.3 and 6.0.13. An additional workaround to mitigate the problem without patching the redis-server executable is to use ACL configuration to prevent clients from using the STRALGO LCS command.
- Record
ALPINE-CVE-2021-29477- CVSS 3.1
- 8.8 High
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
OSVBELL-CVE-2021-29477
8.8
CVE-2021-29477 does not affect BellSoft software
- Record
BELL-CVE-2021-29477- CVSS 3.1
- 8.8 High
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
OSV
8.8
Redis is an open source (BSD licensed), in-memory data structure store, used as a database, cache, and message broker. An integer overflow bug in Redis version 6.0 or newer could be exploited using the STRALGO LCS command to corrupt the heap and potentially result with remote code execution. The problem is fixed in version 6.2.3 and 6.0.13. An additional workaround to mitigate the problem without patching the redis-server executable is to use ACL configuration to prevent clients from using the STRALGO LCS command.
- Record
CVE-2021-29477- CVSS 3.1
- 8.8 High
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
Show 8 moreShow less
OSVDEBIAN-CVE-2021-29477
8.8
Redis is an open source (BSD licensed), in-memory data structure store, used as a database, cache, and message broker. An integer overflow bug in Redis version 6.0 or newer could be exploited using the STRALGO LCS command to corrupt the heap and potentially result with remote code execution. The problem is fixed in version 6.2.3 and 6.0.13. An additional workaround to mitigate the problem without patching the redis-server executable is to use ACL configuration to prevent clients from using the STRALGO LCS command.
- Record
DEBIAN-CVE-2021-29477- CVSS 3.1
- 8.8 High
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
OSVOESA-2022-1883
8.8
redis6 security update
Redis is an advanced key-value store. It is often referred to as a data structure server since keys can contain strings, hashes, lists, sets and sorted sets. You can run atomic operations on these types, like appending to a string; incrementing the value in a hash; pushing to a list; computing set intersection, union and difference; or getting the member with highest ranking in a sorted set. In order to achieve its outstanding performance, Redis works with an in-memory dataset. Depending on your use case, you can persist it either by dumping the dataset to disk every once in a while, or by appending each command to a log. Redis also supports trivial-to-setup master-slave replication, with very fast non-blocking first synchronization, auto-reconnection on net split and so forth. Other features include Transactions, Pub/Sub, Lua scripting, Keys with a limited time-to-live, and configuration settings to make Redis behave like a cache. You can use Redis from most programming languages also.
Security Fix(es):
Redis is an open source (BSD licensed), in-memory data structure store, used as a database, cache, and message broker. An integer overflow bug in Redis version 6.0 or newer could be exploited using the STRALGO LCS command to corrupt the heap and potentially result with remote code execution. The problem is fixed in version 6.2.3 and 6.0.13. An additional workaround to mitigate the problem without patching the redis-server executable is to use ACL configuration to prevent clients from using the STRALGO LCS command.(CVE-2021-29477)
- Record
OESA-2022-1883- CVSS 3.1
- 8.8 High
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
OSVRHSA-2021:2034
8.8
Red Hat Security Advisory: redis:6 security update
- Record
RHSA-2021:2034- CVSS 3.1
- 8.8 High
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
OSVRLSA-2021:2034
8.8
Important: redis:6 security update
Redis is an advanced key-value store. It is often referred to as a data-structure server since keys can contain strings, hashes, lists, sets, and sorted sets. For performance, Redis works with an in-memory data set. You can persist it either by dumping the data set to disk every once in a while, or by appending each command to a log.
Security Fix(es):
- redis: Integer overflow via STRALGO LCS command (CVE-2021-29477)
For more details about the security issue(s), including the impact, a CVSS score, acknowledgments, and other related information, refer to the CVE page(s) listed in the References section.
- Record
RLSA-2021:2034- CVSS 3.1
- 8.8 High
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
OSVMGASA-2021-0373 No score
Updated redis package fixes security vulnerabilities
An integer overflow bug in Redis version 6.0 or newer could be exploited using
the STRALGO LCS command to corrupt the heap and potentially result with
remote code execution (CVE-2021-29477).
An integer overflow bug in Redis 6.2 before 6.2.3 could be exploited to corrupt the heap and potentially result with remote code execution (CVE-2021-29478).
A vulnerability involving out-of-bounds read and integer overflow to buffer
overflow exists starting with version 2.2 and prior to versions 5.0.13, 6.0.15
and 6.2.5. On 32-bit systems, Redis *BIT* command are vulnerable to integer
overflow that can potentially be exploited to corrupt the heap, leak arbitrary
heap contents or trigger remote code execution (CVE-2021-32761).
- Record
MGASA-2021-0373- Updated
- 2026-11-02
OSVopenSUSE-SU-2021:0682-1 No score
Security update for redis
This update for redis fixes the following issues:
redis 6.0.13
- CVE-2021-29477: Integer overflow in STRALGO LCS command (boo#1185729)
- CVE-2021-29478: Integer overflow in COPY command for large intsets (boo#1185730)
- Cluster: Skip unnecessary check which may prevent failure detection
- Fix performance regression in BRPOP on Redis 6.0
- Fix edge-case when a module client is unblocked
redis 6.0.12:
- Fix compilation error on non-glibc systems if jemalloc is not used
redis 6.0.11:
- CVE-2021-21309: Avoid 32-bit overflows when proto-max-bulk-len is set high (boo#1182657)
- Fix handling of threaded IO and CLIENT PAUSE (failover), could lead to data loss or a crash
- Fix the selection of a random element from large hash tables
- Fix broken protocol in client tracking tracking-redir-broken message
- XINFO able to access expired keys on a replica
- Fix broken protocol in redis-benchmark when used with -a or --dbnum
- Avoid assertions (on older kernels) when testing arm64 CoW bug
- CONFIG REWRITE should honor umask settings
- Fix firstkey,lastkey,step in COMMAND command for some commands
- RM_ZsetRem: Delete key if empty, the bug could leave empty zset keys
redis 6.0.10:
Command behavior changes:
- SWAPDB invalidates WATCHed keys (#8239)
- SORT command behaves differently when used on a writable replica (#8283)
- EXISTS should not alter LRU (#8016) In Redis 5.0 and 6.0 it would have touched the LRU/LFU of the key.
- OBJECT should not reveal logically expired keys (#8016) Will now behave the same TYPE or any other non-DEBUG command.
- GEORADIUS[BYMEMBER] can fail with -OOM if Redis is over the memory limit (#8107)
Other behavior changes:
- Sentinel: Fix missing updates to the config file after SENTINEL SET command (#8229)
- CONFIG REWRITE is atomic and safer, but requires write access to the config file's folder (#7824, #8051) This change was already present in 6.0.9, but was missing from the release notes.
Bug fixes with compatibility implications (bugs introduced in Redis 6.0):
- Fix RDB CRC64 checksum on big-endian systems (#8270) If you're using big-endian please consider the compatibility implications with RESTORE, replication and persistence.
- Fix wrong order of key/value in Lua's map response (#8266) If your scripts use redis.setresp() or return a map (new in Redis 6.0), please consider the implications.
Bug fixes:
- Fix an issue where a forked process deletes the parent's pidfile (#8231)
- Fix crashes when enabling io-threads-do-reads (#8230)
- Fix a crash in redis-cli after executing cluster backup (#8267)
- Handle output buffer limits for module blocked clients (#8141) Could result in a module sending reply to a blocked client to go beyond the limit.
- Fix setproctitle related crashes. (#8150, #8088) Caused various crashes on startup, mainly on Apple M1 chips or under instrumentation.
- Backup/restore cluster mode keys to slots map for repl-diskless-load=swapdb (#8108) In cluster mode with repl-diskless-load, when loading failed, slot map wouldn't have been restored.
- Fix oom-score-adj-values range, and bug when used in config file (#8046) Enabling setting this in the config file in a line after enabling it, would have been buggy.
- Reset average ttl when empty databases (#8106) Just causing misleading metric in INFO
- Disable rehash when Redis has child process (#8007) This could have caused excessive CoW during BGSAVE, replication or AOFRW.
- Further improved ACL algorithm for picking categories (#7966) Output of ACL GETUSER is now more similar to the one provided by ACL SETUSER.
- Fix bug with module GIL being released prematurely (#8061) Could in theory (and rarely) cause multi-threaded modules to corrupt memory.
- Reduce effect of client tracking causing feedback loop in key eviction (#8100)
- Fix cluster access to unaligned memory (SIGBUS on old ARM) (#7958)
- Fix saving of strings larger than 2GB into RDB files (#8306)
Additional improvements:
- Avoid…
- Record
openSUSE-SU-2021:0682-1- Updated
- 2026-11-02
OSVopenSUSE-SU-2024:11299-1 No score
redis-6.2.5-1.2 on GA media
These are all security issues fixed in the redis-6.2.5-1.2 package on the GA media of openSUSE Tumbleweed.
- Record
openSUSE-SU-2024:11299-1- Updated
- 2026-11-02
OSVSUSE-SU-2021:1652-1 No score
Security update for redis
This update for redis fixes the following issues:
redis was updated to 6.0.13:
- CVE-2021-29477: Integer overflow in STRALGO LCS command (bsc#1185729)
- CVE-2021-29478: Integer overflow in COPY command for large intsets (bsc#1185730)
- Cluster: Skip unnecessary check which may prevent failure detection
- Fix performance regression in BRPOP on Redis 6.0
- Fix edge-case when a module client is unblocked
redis 6.0.12:
- Fix compilation error on non-glibc systems if jemalloc is not used
redis 6.0.11:
- CVE-2021-21309: Avoid 32-bit overflows when proto-max-bulk-len is set high (bsc#1182657)
- Fix handling of threaded IO and CLIENT PAUSE (failover), could lead to data loss or a crash
- Fix the selection of a random element from large hash tables
- Fix broken protocol in client tracking tracking-redir-broken message
- XINFO able to access expired keys on a replica
- Fix broken protocol in redis-benchmark when used with -a or --dbnum
- Avoid assertions (on older kernels) when testing arm64 CoW bug
- CONFIG REWRITE should honor umask settings
- Fix firstkey,lastkey,step in COMMAND command for some commands
- RM_ZsetRem: Delete key if empty, the bug could leave empty zset keys
- Switch systemd type of the sentinel service from notify to simple. This can be reverted when updating to 6.2 which fixes https://github.com/redis/redis/issues/7284 .
- Record
SUSE-SU-2021:1652-1- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
redisAlpine:v3.13 |
6.0.0 up to 6.0.13-r0 | 6.0.13-r0 |
redisDebian:12 |
before 5:6.0.13-1 | 5:6.0.13-1 |
redisDebian:13 |
before 5:6.0.13-1 | 5:6.0.13-1 |
redisDebian:14 |
before 5:6.0.13-1 | 5:6.0.13-1 |
redisMageia:8 From an advisory covering 3 CVEs |
before 6.0.15-1.mga8 | 6.0.15-1.mga8 |
redis6openEuler:20.03-LTS-SP1 |
before 6.2.7-1.oe1 | 6.2.7-1.oe1 |
redis6openEuler:20.03-LTS-SP3 |
before 6.2.7-1.oe1 | 6.2.7-1.oe1 |
redis6openEuler:22.03-LTS |
before 6.2.7-1.oe2203 | 6.2.7-1.oe2203 |
redisRed Hat:enterprise_linux:8::appstream |
before 0:6.0.9-3.module+el8.4.0+10984+ed187465 | 0:6.0.9-3.module+el8.4.0+10984+ed187465 |
redis-debuginfoRed Hat:enterprise_linux:8::appstream |
before 0:6.0.9-3.module+el8.4.0+10984+ed187465 | 0:6.0.9-3.module+el8.4.0+10984+ed187465 |
Show 8 moreShow less
| Package | Affected | Fixed |
|---|---|---|
redis-debugsourceRed Hat:enterprise_linux:8::appstream |
before 0:6.0.9-3.module+el8.4.0+10984+ed187465 | 0:6.0.9-3.module+el8.4.0+10984+ed187465 |
redis-develRed Hat:enterprise_linux:8::appstream |
before 0:6.0.9-3.module+el8.4.0+10984+ed187465 | 0:6.0.9-3.module+el8.4.0+10984+ed187465 |
redis-docRed Hat:enterprise_linux:8::appstream |
before 0:6.0.9-3.module+el8.4.0+10984+ed187465 | 0:6.0.9-3.module+el8.4.0+10984+ed187465 |
redisRocky Linux:8 |
before 0:6.0.9-3.module+el8.4.0+395+8d498eeb | 0:6.0.9-3.module+el8.4.0+395+8d498eeb |
redisSUSE:Linux Enterprise Module for Server Applications 15 SP2 From an advisory covering 3 CVEs |
before 6.0.13-1.10.1 | 6.0.13-1.10.1 |
redisSUSE:Linux Enterprise Module for Server Applications 15 SP3 From an advisory covering 3 CVEs |
before 6.0.13-1.10.1 | 6.0.13-1.10.1 |
redisopenSUSE:Leap 15.2 From an advisory covering 3 CVEs |
before 6.0.13-lp152.2.3.1 | 6.0.13-lp152.2.3.1 |
redisopenSUSE:Tumbleweed From an advisory covering 9 CVEs |
before 6.2.5-1.2 | 6.2.5-1.2 |
History
| Recorded | Changed | Sources |
|---|---|---|
| affected, facts | ||
| aliases | EUVD | |
| first indexed | CVE List, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2021-29477 is a high vulnerability (CVSS 7.5) in Redis, published May 4, 2021. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 4.00%, the 90th percentile. Fixed in redis 6.0.13-r0.
References
github.com/redis/redis/security/advisories/GHSA-vqxj-26vj-996g
redis.io
lists.fedoraproject.org/archives/list/package-announce%40lists.fedoraproject.org/message/EZJ6JGQ2ETZB2DWTQSGCOGG7EF3ILV4V
lists.fedoraproject.org/archives/list/package-announce%40lists.fedoraproject.org/message/BPWBIZXA67JFIB63W2CNVVILCGIC2ME5
lists.fedoraproject.org/archives/list/package-announce%40lists.fedoraproject.org/message/BHWOF7CBVUGDK3AN6H3BN3VNTH2TDUZZ
lists.fedoraproject.org/archives/list/package-announce%40lists.fedoraproject.org/message/SN7INTZFE34MIQJO7WDDTIY5LIBGN6GI
Show 35 moreShow less
security.gentoo.org/glsa/202107-20
security.alpinelinux.org/vuln/CVE-2021-29477
docs.bell-sw.com/security/cves/CVE-2021-29477
security-tracker.debian.org/tracker/CVE-2021-29477
advisories.mageia.org/MGASA-2021-0373.html
bugs.mageia.org/show_bug.cgi?id=29036
lists.fedoraproject.org/archives/list/[email protected]/thread/BPWBIZXA67JFIB63W2CNVVILCGIC2ME5
lists.fedoraproject.org/archives/list/[email protected]/thread/BHWOF7CBVUGDK3AN6H3BN3VNTH2TDUZZ
lists.fedoraproject.org/archives/list/[email protected]/thread/SN7INTZFE34MIQJO7WDDTIY5LIBGN6GI
debian.org/lts/security/2021/dla-2717
github.com/redis/redis/security/advisories/GHSA-8wxq-j7rp-g8wj
openeuler.org/en/security/safety-bulletin/detail.html?id=openEuler-SA-2022-1883
nvd.nist.gov/vuln/detail/CVE-2021-29477
access.redhat.com/errata/RHSA-2021:2034
access.redhat.com/security/updates/classification
bugzilla.redhat.com/show_bug.cgi?id=1957410
security.access.redhat.com/data/csaf/v2/advisories/2021/rhsa-2021_2034.json
access.redhat.com/security/cve/CVE-2021-29477
cve.org/CVERecord?id=CVE-2021-29477
errata.rockylinux.org/RLSA-2021:2034
suse.com/support/update/announcement/2021/suse-su-20211652-1
bugzilla.suse.com/1182657
bugzilla.suse.com/1185729
bugzilla.suse.com/1185730
suse.com/security/cve/CVE-2021-21309
suse.com/security/cve/CVE-2021-29477
suse.com/security/cve/CVE-2021-29478
lists.opensuse.org/archives/list/[email protected]/thread/Z32YY6DUIFNGIYRC6JPVBZ2WTPYN5SOY
bugzilla.suse.com/1178205
suse.com/security/cve/CVE-2015-8080
suse.com/security/cve/CVE-2016-10517
suse.com/security/cve/CVE-2017-15047
suse.com/security/cve/CVE-2018-11218
suse.com/security/cve/CVE-2021-32625
suse.com/security/cve/CVE-2021-32761
Left out here: the rest of 1 source description. The JSON record has them.