From e1537fe80978e265603b5f2ec0d02e787c2ce52c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miroslav=20=C5=A0tampar?= Date: Wed, 23 Sep 2026 09:12:03 +0200 Subject: [PATCH 1/2] Fixes #6127 --- lib/core/settings.py | 2 +- plugins/dbms/mysql/connector.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/core/settings.py b/lib/core/settings.py index ef6247e85b6..afaab12cbf5 100644 --- a/lib/core/settings.py +++ b/lib/core/settings.py @@ -20,7 +20,7 @@ from thirdparty import six # sqlmap version (...) -VERSION = "1.10.9.20" +VERSION = "1.10.9.21" TYPE = "dev" if VERSION.count('.') > 2 and VERSION.split('.')[-1] != '0' else "stable" TYPE_COLORS = {"dev": 33, "stable": 90, "pip": 34} VERSION_STRING = "sqlmap/%s#%s" % ('.'.join(VERSION.split('.')[:-1]) if VERSION.count('.') > 2 and VERSION.split('.')[-1] == '0' else VERSION, TYPE) diff --git a/plugins/dbms/mysql/connector.py b/plugins/dbms/mysql/connector.py index bfa87d4239c..2bdc706d0c4 100644 --- a/plugins/dbms/mysql/connector.py +++ b/plugins/dbms/mysql/connector.py @@ -34,7 +34,7 @@ def connect(self): try: self.connector = pymysql.connect(host=self.hostname, user=self.user, passwd=self.password, db=self.db, port=self.port, connect_timeout=conf.timeout, use_unicode=True) - except (pymysql.OperationalError, pymysql.InternalError, pymysql.ProgrammingError, struct.error) as ex: + except (pymysql.OperationalError, pymysql.InternalError, pymysql.ProgrammingError, struct.error, UnicodeEncodeError) as ex: raise SqlmapConnectionException(getSafeExString(ex)) self.initCursor() From 8ac458c6bc81b0d8d22bf9fa4ca13b5317992fb3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miroslav=20=C5=A0tampar?= Date: Wed, 23 Sep 2026 09:25:22 +0200 Subject: [PATCH 2/2] Fixes #6128 --- lib/core/agent.py | 6 +++++- lib/core/settings.py | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/lib/core/agent.py b/lib/core/agent.py index 0501e95c222..22184524c92 100644 --- a/lib/core/agent.py +++ b/lib/core/agent.py @@ -113,7 +113,11 @@ def payload(self, place=None, parameter=None, value=None, newValue=None, where=N paramDict = conf.paramDict[place] origValue = getUnicode(paramDict[parameter]) newValue = getUnicode(newValue) if newValue else newValue - base64Encoding = re.sub(r" \(.+", "", parameter) in conf.base64Parameter + try: + # Dirty patch for Python 3.14.7 re.sub() regression (e.g. https://github.com/sqlmapproject/sqlmap/issues/6128) + base64Encoding = re.sub(r" \(.+", "", parameter) in conf.base64Parameter + except TypeError: + base64Encoding = False if place == PLACE.URI or BOUNDED_INJECTION_MARKER in origValue: paramString = origValue diff --git a/lib/core/settings.py b/lib/core/settings.py index afaab12cbf5..e7c1a39501b 100644 --- a/lib/core/settings.py +++ b/lib/core/settings.py @@ -20,7 +20,7 @@ from thirdparty import six # sqlmap version (...) -VERSION = "1.10.9.21" +VERSION = "1.10.9.22" TYPE = "dev" if VERSION.count('.') > 2 and VERSION.split('.')[-1] != '0' else "stable" TYPE_COLORS = {"dev": 33, "stable": 90, "pip": 34} VERSION_STRING = "sqlmap/%s#%s" % ('.'.join(VERSION.split('.')[:-1]) if VERSION.count('.') > 2 and VERSION.split('.')[-1] == '0' else VERSION, TYPE)