mirror of
https://github.com/openembedded/meta-openembedded.git
synced 2026-04-10 20:28:17 +00:00
python3-django: fix CVE-2024-24680
An issue was discovered in Django 3.2 before 3.2.24, 4.2 before 4.2.10, and Django 5.0 before 5.0.2. The intcomma template filter was subject to a potential denial-of-service attack when used with very long strings. Since, there is no ptest available for python3-django so have not tested the patch changes at runtime. References: https://security-tracker.debian.org/tracker/CVE-2024-24680 https://docs.djangoproject.com/en/dev/releases/4.2.10/ Signed-off-by: Rahul Janani Pandi <RahulJanani.Pandi@windriver.com> Signed-off-by: Armin Kuster <akuster808@gmail.com>
This commit is contained in:
committed by
Armin Kuster
parent
bd7b2ebf21
commit
ac06a65404
@@ -0,0 +1,48 @@
|
||||
From 572ea07e84b38ea8de0551f4b4eda685d91d09d2
|
||||
From: Adam Johnson <me@adamj.eu>
|
||||
Date: Mon Jan 22 13:21:13 2024 +0000
|
||||
Subject: [PATCH] Fixed CVE-2024-24680 -- Mitigated potential DoS in intcomma
|
||||
template filter
|
||||
|
||||
Thanks Seokchan Yoon for the report.
|
||||
|
||||
Co-authored-by: Mariusz Felisiak <felisiak.mariusz@gmail.com>
|
||||
Co-authored-by: Natalia <124304+nessita@users.noreply.github.com>
|
||||
Co-authored-by: Shai Berger <shai@platonix.com>
|
||||
|
||||
CVE: CVE-2024-24680
|
||||
|
||||
Upstream-Status: Backport [https://github.com/django/django/commit/572ea07e84b38ea8de0551f4b4eda685d91d09d2]
|
||||
|
||||
Signed-off-by: Rahul Janani Pandi <RahulJanani.Pandi@windriver.com>
|
||||
---
|
||||
django/contrib/humanize/templatetags/humanize.py | 13 +++++++------
|
||||
1 file changed, 7 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/django/contrib/humanize/templatetags/humanize.py b/django/contrib/humanize/templatetags/humanize.py
|
||||
index 194c7e8..ee22a45 100644
|
||||
--- a/django/contrib/humanize/templatetags/humanize.py
|
||||
+++ b/django/contrib/humanize/templatetags/humanize.py
|
||||
@@ -71,13 +71,14 @@ def intcomma(value, use_l10n=True):
|
||||
return intcomma(value, False)
|
||||
else:
|
||||
return number_format(value, force_grouping=True)
|
||||
- orig = str(value)
|
||||
- new = re.sub(r"^(-?\d+)(\d{3})", r'\g<1>,\g<2>', orig)
|
||||
- if orig == new:
|
||||
- return new
|
||||
- else:
|
||||
- return intcomma(new, use_l10n)
|
||||
|
||||
+ result = str(value)
|
||||
+ match = re.match(r"-?\d+", result)
|
||||
+ if match:
|
||||
+ prefix = match[0]
|
||||
+ prefix_with_commas = re.sub(r"\d{3}", r"\g<0>,", prefix[::-1])[::-1]
|
||||
+ result = prefix_with_commas + result[len(prefix) :]
|
||||
+ return result
|
||||
|
||||
# A tuple of standard large number to their converters
|
||||
intword_converters = (
|
||||
--
|
||||
2.40.0
|
||||
Reference in New Issue
Block a user