From 58aae3874f304e54446d37e5cb5aa24c47300f45 Mon Sep 17 00:00:00 2001 From: Divya Chellam Date: Fri, 31 Jan 2025 12:50:58 +0000 Subject: redis: fix CVE-2024-31227 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 Signed-off-by: Armin Kuster --- .../redis/redis-7.0.13/CVE-2024-31227.patch | 33 ++++++++++++++++++++++ meta-oe/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 --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 +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 +--- + 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" -- cgit v1.2.3-54-g00ecf