diff mbox series

[meta-oe,kirkstone,3/5] redis: fix CVE-2024-31227

Message ID 20250131125100.3348102-3-divya.chellam@windriver.com
State New
Headers show
Series [meta-oe,kirkstone,1/5] redis: fix CVE-2023-41056 | expand

Commit Message

dchellam Jan. 31, 2025, 12:50 p.m. UTC
From: Divya Chellam <divya.chellam@windriver.com>

Redis is an open source, in-memory database that persists on disk.
An authenticated with sufficient privileges may create a malformed
ACL selector which, when accessed, triggers a server panic and
subsequent denial of service. The problem exists in Redis 7 prior
to versions 7.2.6 and 7.4.1. Users are advised to upgrade. There
are no known workarounds for this vulnerability.

Reference:
https://security-tracker.debian.org/tracker/CVE-2024-31227

Upstream-patch:
https://github.com/redis/redis/commit/b351d5a3210e61cc3b22ba38a723d6da8f3c298a

Signed-off-by: Divya Chellam <divya.chellam@windriver.com>
---
 .../redis/redis-7.0.13/CVE-2024-31227.patch   | 33 +++++++++++++++++++
 .../recipes-extended/redis/redis_7.0.13.bb    |  1 +
 2 files changed, 34 insertions(+)
 create mode 100644 meta-oe/recipes-extended/redis/redis-7.0.13/CVE-2024-31227.patch
diff mbox series

Patch

diff --git a/meta-oe/recipes-extended/redis/redis-7.0.13/CVE-2024-31227.patch b/meta-oe/recipes-extended/redis/redis-7.0.13/CVE-2024-31227.patch
new file mode 100644
index 0000000000..0998fb2bfb
--- /dev/null
+++ b/meta-oe/recipes-extended/redis/redis-7.0.13/CVE-2024-31227.patch
@@ -0,0 +1,33 @@ 
+From b351d5a3210e61cc3b22ba38a723d6da8f3c298a Mon Sep 17 00:00:00 2001
+From: Oran Agra <oran@redislabs.com>
+Date: Wed, 2 Oct 2024 20:01:14 +0300
+Subject: [PATCH] Fix ACL SETUSER Read/Write key pattern selector 
+ (CVE-2024-31227)
+
+The '%' rule must contain one or both of R/W
+
+CVE: CVE-2024-31227
+
+Upstream-Status: Backport [https://github.com/redis/redis/commit/b351d5a3210e61cc3b22ba38a723d6da8f3c298a]
+
+Signed-off-by: Divya Chellam <divya.chellam@windriver.com>
+---
+ src/acl.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/acl.c b/src/acl.c
+index 6d86093..6b53d90 100644
+--- a/src/acl.c
++++ b/src/acl.c
+@@ -1036,7 +1036,7 @@ int ACLSetSelector(aclSelector *selector, const char* op, size_t oplen) {
+                     flags |= ACL_READ_PERMISSION;
+                 } else if (toupper(op[offset]) == 'W' && !(flags & ACL_WRITE_PERMISSION)) {
+                     flags |= ACL_WRITE_PERMISSION;
+-                } else if (op[offset] == '~') {
++                } else if (op[offset] == '~' && flags) {
+                     offset++;
+                     break;
+                 } else {
+-- 
+2.40.0
+
diff --git a/meta-oe/recipes-extended/redis/redis_7.0.13.bb b/meta-oe/recipes-extended/redis/redis_7.0.13.bb
index caccf01f64..6a2a7ce966 100644
--- a/meta-oe/recipes-extended/redis/redis_7.0.13.bb
+++ b/meta-oe/recipes-extended/redis/redis_7.0.13.bb
@@ -18,6 +18,7 @@  SRC_URI = "http://download.redis.io/releases/${BP}.tar.gz \
            file://0006-Define-correct-gregs-for-RISCV32.patch \
            file://CVE-2023-41056.patch \
            file://CVE-2023-45145.patch \
+           file://CVE-2024-31227.patch \
            "
 SRC_URI[sha256sum] = "97065774d5fb8388eb0d8913458decfcb167d356e40d31dd01cd30c1cc391673"