Type:
Bug
Priority:
Blocker
Resolution:
Fixed
Affects Version/s:
None
About parsec authentication, when user has an empty password, user doesn't have an authentication_string set (visible in mysql.user).
Exchanges when creating a connection results then sends unexpected data when asking for ext-salt.
example when using an empty password, packet is for example :
+--------------------------------------------------+
| 0 1 2 3 4 5 6 7 8 9 a b c d e f |
+--------------------------------------------------+------------------+
| 14 00 00 04 00 04 00 05 00 06 00 07 00 08 00 0B | ................ |
| 00 0E 00 0F 00 10 00 13 | ........ |
+--------------------------------------------------+------------------+
in place of something that begins with 'P0' like :
+--------------------------------------------------+
| 0 1 2 3 4 5 6 7 8 9 a b c d e f |
+--------------------------------------------------+------------------+
| 14 00 00 04 50 00 01 A5 ED 67 34 40 70 2A E3 8A | ....P....g4 @p *.. |
| 00 A2 BB 63 6B 9C D3 13 | ...ck... |
+--------------------------------------------------+------------------+
is caused by
MDEV-32618
PARSEC Authentication Plugin
Closed
{"report":{"fcp":1100,"ttfb":439.80000019073486,"pageVisibility":"visible","entityId":130558,"key":"jira.project.issue.view-issue","isInitial":true,"threshold":1000,"elementTimings":{},"userDeviceMemory":8,"userDeviceProcessors":64,"apdex":0.5,"journeyId":"7eedea32-3413-480e-ac7e-8b03ae07dd51","navigationType":0,"readyForUser":1174,"redirectCount":0,"resourceLoadedEnd":1094,"resourceLoadedStart":445.5,"resourceTiming":[{"duration":146.5,"initiatorType":"link","name":"https://jira.mariadb.org/s/2c21342762a6a02add1c328bed317ffd-CDN/lu2cib/820016/12ta74/0a8bac35585be7fc6c9cc5a0464cd4cf/_/download/contextbatch/css/_super/batch.css","startTime":445.5,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":445.5,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":592,"responseStart":0,"secureConnectionStart":0},{"duration":146.69999980926514,"initiatorType":"link","name":"https://jira.mariadb.org/s/7ebd35e77e471bc30ff0eba799ebc151-CDN/lu2cib/820016/12ta74/2bf333562ca6724060a9d5f1535471f6/_/download/contextbatch/css/jira.browse.project,project.issue.navigator,jira.view.issue,jira.general,jira.global,atl.general,-_super/batch.css?agile_global_admin_condition=true&jag=true&jira.create.linked.issue=true&slack-enabled=true","startTime":445.69999980926514,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":445.69999980926514,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":592.3999996185303,"responseStart":0,"secureConnectionStart":0},{"duration":155.0999994277954,"initiatorType":"script","name":"https://jira.mariadb.org/s/0917945aaa57108d00c5076fea35e069-CDN/lu2cib/820016/12ta74/0a8bac35585be7fc6c9cc5a0464cd4cf/_/download/contextbatch/js/_super/batch.js?locale=en","startTime":446,"connectEnd":446,"connectStart":446,"domainLookupEnd":446,"domainLookupStart":446,"fetchStart":446,"redirectEnd":0,"redirectStart":0,"requestStart":446,"responseEnd":601.0999994277954,"responseStart":601.0999994277954,"secureConnectionStart":446},{"duration":222.5,"initiatorType":"script","name":"https://jira.mariadb.org/s/2d8175ec2fa4c816e8023260bd8c1786-CDN/lu2cib/820016/12ta74/2bf333562ca6724060a9d5f1535471f6/_/download/contextbatch/js/jira.browse.project,project.issue.navigator,jira.view.issue,jira.general,jira.global,atl.general,-_super/batch.js?agile_global_admin_condition=true&jag=true&jira.create.linked.issue=true&locale=en&slack-enabled=true","startTime":446.0999994277954,"connectEnd":446.0999994277954,"connectStart":446.0999994277954,"domainLookupEnd":446.0999994277954,"domainLookupStart":446.0999994277954,"fetchStart":446.0999994277954,"redirectEnd":0,"redirectStart":0,"requestStart":446.0999994277954,"responseEnd":668.5999994277954,"responseStart":668.5999994277954,"secureConnectionStart":446.0999994277954},{"duration":225.9000005722046,"initiatorType":"script","name":"https://jira.mariadb.org/s/a9324d6758d385eb45c462685ad88f1d-CDN/lu2cib/820016/12ta74/c92c0caa9a024ae85b0ebdbed7fb4bd7/_/download/contextbatch/js/atl.global,-_super/batch.js?locale=en","startTime":446.3999996185303,"connectEnd":446.3999996185303,"connectStart":446.3999996185303,"domainLookupEnd":446.3999996185303,"domainLookupStart":446.3999996185303,"fetchStart":446.3999996185303,"redirectEnd":0,"redirectStart":0,"requestStart":446.3999996185303,"responseEnd":672.3000001907349,"responseStart":672.3000001907349,"secureConnectionStart":446.3999996185303},{"duration":226.20000076293945,"initiatorType":"script","name":"https://jira.mariadb.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/lu2cib/820016/12ta74/1.0/_/download/batch/jira.webresources:calendar-en/jira.webresources:calendar-en.js","startTime":446.5999994277954,"connectEnd":446.5999994277954,"connectStart":446.5999994277954,"domainLookupEnd":446.5999994277954,"domainLookupStart":446.5999994277954,"fetchStart":446.5999994277954,"redirectEnd":0,"redirectStart":0,"requestStart":446.5999994277954,"responseEnd":672.8000001907349,"responseStart":672.8000001907349,"secureConnectionStart":446.5999994277954},{"duration":226.5,"initiatorType":"script","name":"https://jira.mariadb.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/lu2cib/820016/12ta74/1.0/_/download/batch/jira.webresources:calendar-localisation-moment/jira.webresources:calendar-localisation-moment.js","startTime":446.69999980926514,"connectEnd":446.69999980926514,"connectStart":446.69999980926514,"domainLookupEnd":446.69999980926514,"domainLookupStart":446.69999980926514,"fetchStart":446.69999980926514,"redirectEnd":0,"redirectStart":0,"requestStart":446.69999980926514,"responseEnd":673.1999998092651,"responseStart":673.1999998092651,"secureConnectionStart":446.69999980926514},{"duration":295.30000019073486,"initiatorType":"link","name":"https://jira.mariadb.org/s/b04b06a02d1959df322d9cded3aeecc1-CDN/lu2cib/820016/12ta74/a2ff6aa845ffc9a1d22fe23d9ee791fc/_/download/contextbatch/css/jira.global.look-and-feel,-_super/batch.css","startTime":446.8999996185303,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":446.8999996185303,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":742.1999998092651,"responseStart":0,"secureConnectionStart":0},{"duration":226.69999980926514,"initiatorType":"script","name":"https://jira.mariadb.org/rest/api/1.0/shortcuts/820016/47140b6e0a9bc2e4913da06536125810/shortcuts.js?context=issuenavigation&context=issueaction","startTime":447,"connectEnd":447,"connectStart":447,"domainLookupEnd":447,"domainLookupStart":447,"fetchStart":447,"redirectEnd":0,"redirectStart":0,"requestStart":447,"responseEnd":673.6999998092651,"responseStart":673.6999998092651,"secureConnectionStart":447},{"duration":295.30000019073486,"initiatorType":"link","name":"https://jira.mariadb.org/s/3ac36323ba5e4eb0af2aa7ac7211b4bb-CDN/lu2cib/820016/12ta74/d176f0986478cc64f24226b3d20c140d/_/download/contextbatch/css/com.atlassian.jira.projects.sidebar.init,-_super,-project.issue.navigator,-jira.view.issue/batch.css?jira.create.linked.issue=true","startTime":447.0999994277954,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":447.0999994277954,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":742.3999996185303,"responseStart":0,"secureConnectionStart":0},{"duration":227,"initiatorType":"script","name":"https://jira.mariadb.org/s/5d5e8fe91fbc506585e83ea3b62ccc4b-CDN/lu2cib/820016/12ta74/d176f0986478cc64f24226b3d20c140d/_/download/contextbatch/js/com.atlassian.jira.projects.sidebar.init,-_super,-project.issue.navigator,-jira.view.issue/batch.js?jira.create.linked.issue=true&locale=en","startTime":447.30000019073486,"connectEnd":447.30000019073486,"connectStart":447.30000019073486,"domainLookupEnd":447.30000019073486,"domainLookupStart":447.30000019073486,"fetchStart":447.30000019073486,"redirectEnd":0,"redirectStart":0,"requestStart":447.30000019073486,"responseEnd":674.3000001907349,"responseStart":674.3000001907349,"secureConnectionStart":447.30000019073486},{"duration":485.19999980926514,"initiatorType":"script","name":"https://jira.mariadb.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/lu2cib/820016/12ta74/1.0/_/download/batch/jira.webresources:bigpipe-js/jira.webresources:bigpipe-js.js","startTime":448.19999980926514,"connectEnd":448.19999980926514,"connectStart":448.19999980926514,"domainLookupEnd":448.19999980926514,"domainLookupStart":448.19999980926514,"fetchStart":448.19999980926514,"redirectEnd":0,"redirectStart":0,"requestStart":448.19999980926514,"responseEnd":933.3999996185303,"responseStart":933.3999996185303,"secureConnectionStart":448.19999980926514},{"duration":641,"initiatorType":"script","name":"https://jira.mariadb.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/lu2cib/820016/12ta74/1.0/_/download/batch/jira.webresources:bigpipe-init/jira.webresources:bigpipe-init.js","startTime":448.30000019073486,"connectEnd":448.30000019073486,"connectStart":448.30000019073486,"domainLookupEnd":448.30000019073486,"domainLookupStart":448.30000019073486,"fetchStart":448.30000019073486,"redirectEnd":0,"redirectStart":0,"requestStart":448.30000019073486,"responseEnd":1089.3000001907349,"responseStart":1089.3000001907349,"secureConnectionStart":448.30000019073486},{"duration":180.10000038146973,"initiatorType":"xmlhttprequest","name":"https://jira.mariadb.org/rest/webResources/1.0/resources","startTime":753.6999998092651,"connectEnd":753.6999998092651,"connectStart":753.6999998092651,"domainLookupEnd":753.6999998092651,"domainLookupStart":753.6999998092651,"fetchStart":753.6999998092651,"redirectEnd":0,"redirectStart":0,"requestStart":753.6999998092651,"responseEnd":933.8000001907349,"responseStart":933.8000001907349,"secureConnectionStart":753.6999998092651},{"duration":89.39999961853027,"initiatorType":"link","name":"https://jira.mariadb.org/s/d5715adaadd168a9002b108b2b039b50-CDN/lu2cib/820016/12ta74/be4b45e9cec53099498fa61c8b7acba4/_/download/contextbatch/css/jira.project.sidebar,-_super,-project.issue.navigator,-jira.general,-jira.browse.project,-jira.view.issue,-jira.global,-atl.general,-com.atlassian.jira.projects.sidebar.init/batch.css?agile_global_admin_condition=true&jag=true&jira.create.linked.issue=true&slack-enabled=true","startTime":1004.5,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":1004.5,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":1093.8999996185303,"responseStart":0,"secureConnectionStart":0},{"duration":88.90000057220459,"initiatorType":"link","name":"https://jira.mariadb.org/s/50bc9be5bfead1a25e72c1a9338c94f6-CDN/lu2cib/820016/12ta74/03ec8e95fb0700cf309083e2358eb54b/_/download/contextbatch/css/com.atlassian.jira.plugins.jira-development-integration-plugin:0,com.atlassian.jira.plugins.jira-quicksearch-plugin:5,-_super,-jira.view.issue,-jira.global,-jira.general,-jira.browse.project,-project.issue.navigator,-atl.general/batch.css?agile_global_admin_condition=true&jag=true&jira.create.linked.issue=true&slack-enabled=true","startTime":1005.0999994277954,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":1005.0999994277954,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":1094,"responseStart":0,"secureConnectionStart":0}],"fetchStart":0,"domainLookupStart":0,"domainLookupEnd":0,"connectStart":0,"connectEnd":0,"requestStart":266,"responseStart":440,"responseEnd":442,"domLoading":443,"domInteractive":1229,"domContentLoadedEventStart":1229,"domContentLoadedEventEnd":1275,"domComplete":1533,"loadEventStart":1533,"loadEventEnd":1535,"userAgent":"Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)","marks":[{"name":"bigPipe.sidebar-id.start","time":1210.0999994277954},{"name":"bigPipe.sidebar-id.end","time":1211},{"name":"bigPipe.activity-panel-pipe-id.start","time":1211.0999994277954},{"name":"bigPipe.activity-panel-pipe-id.end","time":1212.3000001907349},{"name":"activityTabFullyLoaded","time":1293.3999996185303}],"measures":[],"correlationId":"cb535704503977","effectiveType":"4g","downlink":9.2,"rtt":0,"serverDuration":92,"dbReadsTimeInMs":9,"dbConnsTimeInMs":16,"applicationHash":"9d11dbea5f4be3d4cc21f03a88dd11d8c8687422","experiments":[]}}
Hello Sergei!
Since hash_password is not called for an empty password, a password derivation is not stored in the database, so I had to work around this.
The proposed fix for 11.6 just calculates a derivation for each login attempt:
https://github.com/MariaDB/server/commit/9e23d9cf901504c0a9c949f1d8ebded0d8675bd9
Ironically, the intention to derive less turns upside down here.
The other downside of this approach is that the salt will be new for each login, so it can't be pre-saved.
I think we can make a different fix for a (next) major version, which calls hash_password for empty passwords, but I'm afraid to do so in 11.6 plugin-wise.
Maybe we'll introduce some flag for a plugin to control this, so that old password plugins won't be affected.