Type:
Bug
Priority:
Major
Resolution:
Fixed
Affects Version/s:
3.4
Environment:
Ubuntu 23.10
If the server sends a column definition packet one of whose
field lengths is 0xfb, net_field_length() returns NULL_LENGTH,
and in response mthd_my_read_rows() sets cur->data[field] = 0.
Later, unpack_fields() says
uint length= (uint)(row->data[i+1] - row->data[i] - 1);
if (!row->data[i] || row->data[i][length])
goto error;
since row->data[i+1] can be zero, length can be set to something
unexpected, and row->data[i] [length] may be an out of bounds read.
I've attached a demo server.
$ mariadb --version
mariadb from 11.6.0-MariaDB, client 15.2 for Linux (x86_64) using readline 5.1
$ cc mc6a.c
$ ./a.out &
$ echo 'SELECT * FROM t;' | mariadb --host=127.0.0.1 --ssl=off d
Segmentation fault (core dumped)
Program terminated with signal SIGSEGV, Segmentation fault.
#0 0x00005624146ec687 in unpack_fields (mysql=0x562414c09000 <mysql>, data=0x562415e5ca50, alloc=0x562414c09300 <mysql+768>, fields=1,
default_value=1 '\001') at /home/rtm/maria/server/libmariadb/libmariadb/mariadb_lib.c:1068
1068 if (!row->data[i] || row->data[i][length])
(gdb) where
#0 0x00005624146ec687 in unpack_fields (mysql=0x562414c09000 <mysql>, data=0x562415e5ca50, alloc=0x562414c09300 <mysql+768>, fields=1,
default_value=1 '\001') at /home/rtm/maria/server/libmariadb/libmariadb/mariadb_lib.c:1068
#1 0x00005624146f2711 in mthd_my_read_query_result (mysql=0x562414c09000 <mysql>) at /home/rtm/maria/server/libmariadb/libmariadb/mariadb_lib.c:2892
#2 0x00005624146f2ad8 in mysql_real_query (mysql=0x562414c09000 <mysql>, query=0x562415e56138 "SELECT * FROM t", length=15)
at /home/rtm/maria/server/libmariadb/libmariadb/mariadb_lib.c:2959
#3 0x00005624146dd3a2 in mysql_real_query_for_lazy (buf=0x562415e56138 "SELECT * FROM t", length=15) at /home/rtm/maria/server/client/mysql.cc:3209
#4 0x00005624146de2e9 in com_go (buffer=0x562414c095a0 <glob_buffer>) at /home/rtm/maria/server/client/mysql.cc:3480
#5 0x00005624146dbc1b in add_line (buffer=..., line=0x562415e55098 "SELECT * FROM t;", line_length=16, in_string=0x7ffe6265a8c6 "",
ml_comment=0x7ffe6265a8c7, truncated=false) at /home/rtm/maria/server/client/mysql.cc:2643
#6 0x00005624146dad87 in read_and_execute (interactive=false) at /home/rtm/maria/server/client/mysql.cc:2338
#7 0x00005624146d9534 in main (argc=12, argv=0x562415e533e0) at /home/rtm/maria/server/client/mysql.cc:1397
(gdb) print row->data[i]
$1 = 0x562415eef89c "c"
(gdb) print row->data[i+1]
$2 = 0x0
(gdb) print length
$3 = 3926984547
{"report":{"fcp":658.8999999761581,"ttfb":166.60000002384186,"pageVisibility":"visible","entityId":129671,"key":"jira.project.issue.view-issue","isInitial":true,"threshold":1000,"elementTimings":{},"userDeviceMemory":8,"userDeviceProcessors":32,"apdex":1,"journeyId":"ba378974-6776-430d-aa45-9b0834ad606c","navigationType":0,"readyForUser":718.7999999523163,"redirectCount":0,"resourceLoadedEnd":792,"resourceLoadedStart":175.19999992847443,"resourceTiming":[{"duration":11.400000095367432,"initiatorType":"link","name":"https://jira.mariadb.org/s/2c21342762a6a02add1c328bed317ffd-CDN/lu2bu7/820016/12ta74/0a8bac35585be7fc6c9cc5a0464cd4cf/_/download/contextbatch/css/_super/batch.css","startTime":175.19999992847443,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":175.19999992847443,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":186.60000002384186,"responseStart":0,"secureConnectionStart":0},{"duration":11.600000023841858,"initiatorType":"link","name":"https://jira.mariadb.org/s/7ebd35e77e471bc30ff0eba799ebc151-CDN/lu2bu7/820016/12ta74/8679b4946efa1a0bb029a3a22206fb5d/_/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":175.5,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":175.5,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":187.10000002384186,"responseStart":0,"secureConnectionStart":0},{"duration":66.90000009536743,"initiatorType":"script","name":"https://jira.mariadb.org/s/fbf975c0cce4b1abf04784eeae9ba1f4-CDN/lu2bu7/820016/12ta74/0a8bac35585be7fc6c9cc5a0464cd4cf/_/download/contextbatch/js/_super/batch.js?locale=en","startTime":175.69999992847443,"connectEnd":175.69999992847443,"connectStart":175.69999992847443,"domainLookupEnd":175.69999992847443,"domainLookupStart":175.69999992847443,"fetchStart":175.69999992847443,"redirectEnd":0,"redirectStart":0,"requestStart":175.69999992847443,"responseEnd":242.60000002384186,"responseStart":242.60000002384186,"secureConnectionStart":175.69999992847443},{"duration":139.5,"initiatorType":"script","name":"https://jira.mariadb.org/s/099b33461394b8015fc36c0a4b96e19f-CDN/lu2bu7/820016/12ta74/8679b4946efa1a0bb029a3a22206fb5d/_/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":176.69999992847443,"connectEnd":176.69999992847443,"connectStart":176.69999992847443,"domainLookupEnd":176.69999992847443,"domainLookupStart":176.69999992847443,"fetchStart":176.69999992847443,"redirectEnd":0,"redirectStart":0,"requestStart":176.69999992847443,"responseEnd":316.1999999284744,"responseStart":316.1999999284744,"secureConnectionStart":176.69999992847443},{"duration":143.10000002384186,"initiatorType":"script","name":"https://jira.mariadb.org/s/94c15bff32baef80f4096a08aceae8bc-CDN/lu2bu7/820016/12ta74/c92c0caa9a024ae85b0ebdbed7fb4bd7/_/download/contextbatch/js/atl.global,-_super/batch.js?locale=en","startTime":176.79999995231628,"connectEnd":176.79999995231628,"connectStart":176.79999995231628,"domainLookupEnd":176.79999995231628,"domainLookupStart":176.79999995231628,"fetchStart":176.79999995231628,"redirectEnd":0,"redirectStart":0,"requestStart":176.79999995231628,"responseEnd":319.89999997615814,"responseStart":319.89999997615814,"secureConnectionStart":176.79999995231628},{"duration":143.70000004768372,"initiatorType":"script","name":"https://jira.mariadb.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/lu2bu7/820016/12ta74/1.0/_/download/batch/jira.webresources:calendar-en/jira.webresources:calendar-en.js","startTime":176.89999997615814,"connectEnd":176.89999997615814,"connectStart":176.89999997615814,"domainLookupEnd":176.89999997615814,"domainLookupStart":176.89999997615814,"fetchStart":176.89999997615814,"redirectEnd":0,"redirectStart":0,"requestStart":176.89999997615814,"responseEnd":320.60000002384186,"responseStart":320.60000002384186,"secureConnectionStart":176.89999997615814},{"duration":144.29999995231628,"initiatorType":"script","name":"https://jira.mariadb.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/lu2bu7/820016/12ta74/1.0/_/download/batch/jira.webresources:calendar-localisation-moment/jira.webresources:calendar-localisation-moment.js","startTime":176.89999997615814,"connectEnd":176.89999997615814,"connectStart":176.89999997615814,"domainLookupEnd":176.89999997615814,"domainLookupStart":176.89999997615814,"fetchStart":176.89999997615814,"redirectEnd":0,"redirectStart":0,"requestStart":176.89999997615814,"responseEnd":321.1999999284744,"responseStart":321.1999999284744,"secureConnectionStart":176.89999997615814},{"duration":144.89999997615814,"initiatorType":"link","name":"https://jira.mariadb.org/s/b04b06a02d1959df322d9cded3aeecc1-CDN/lu2bu7/820016/12ta74/a2ff6aa845ffc9a1d22fe23d9ee791fc/_/download/contextbatch/css/jira.global.look-and-feel,-_super/batch.css","startTime":177.10000002384186,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":177.10000002384186,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":322,"responseStart":0,"secureConnectionStart":0},{"duration":144.70000004768372,"initiatorType":"script","name":"https://jira.mariadb.org/rest/api/1.0/shortcuts/820016/47140b6e0a9bc2e4913da06536125810/shortcuts.js?context=issuenavigation&context=issueaction","startTime":177.19999992847443,"connectEnd":177.19999992847443,"connectStart":177.19999992847443,"domainLookupEnd":177.19999992847443,"domainLookupStart":177.19999992847443,"fetchStart":177.19999992847443,"redirectEnd":0,"redirectStart":0,"requestStart":177.19999992847443,"responseEnd":321.89999997615814,"responseStart":321.89999997615814,"secureConnectionStart":177.19999992847443},{"duration":145.30000007152557,"initiatorType":"link","name":"https://jira.mariadb.org/s/3ac36323ba5e4eb0af2aa7ac7211b4bb-CDN/lu2bu7/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":177.29999995231628,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":177.29999995231628,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":322.60000002384186,"responseStart":0,"secureConnectionStart":0},{"duration":145.30000007152557,"initiatorType":"script","name":"https://jira.mariadb.org/s/3339d87fa2538a859872f2df449bf8d0-CDN/lu2bu7/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":177.29999995231628,"connectEnd":177.29999995231628,"connectStart":177.29999995231628,"domainLookupEnd":177.29999995231628,"domainLookupStart":177.29999995231628,"fetchStart":177.29999995231628,"redirectEnd":0,"redirectStart":0,"requestStart":177.29999995231628,"responseEnd":322.60000002384186,"responseStart":322.60000002384186,"secureConnectionStart":177.29999995231628},{"duration":594.1999999284744,"initiatorType":"script","name":"https://jira.mariadb.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/lu2bu7/820016/12ta74/1.0/_/download/batch/jira.webresources:bigpipe-js/jira.webresources:bigpipe-js.js","startTime":178,"connectEnd":178,"connectStart":178,"domainLookupEnd":178,"domainLookupStart":178,"fetchStart":178,"redirectEnd":0,"redirectStart":0,"requestStart":178,"responseEnd":772.1999999284744,"responseStart":772.1999999284744,"secureConnectionStart":178},{"duration":594.3999999761581,"initiatorType":"script","name":"https://jira.mariadb.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/lu2bu7/820016/12ta74/1.0/_/download/batch/jira.webresources:bigpipe-init/jira.webresources:bigpipe-init.js","startTime":178.10000002384186,"connectEnd":178.10000002384186,"connectStart":178.10000002384186,"domainLookupEnd":178.10000002384186,"domainLookupStart":178.10000002384186,"fetchStart":178.10000002384186,"redirectEnd":0,"redirectStart":0,"requestStart":178.10000002384186,"responseEnd":772.5,"responseStart":772.5,"secureConnectionStart":178.10000002384186},{"duration":311.1999999284744,"initiatorType":"xmlhttprequest","name":"https://jira.mariadb.org/rest/webResources/1.0/resources","startTime":460.5,"connectEnd":460.5,"connectStart":460.5,"domainLookupEnd":460.5,"domainLookupStart":460.5,"fetchStart":460.5,"redirectEnd":0,"redirectStart":0,"requestStart":460.5,"responseEnd":771.6999999284744,"responseStart":771.6999999284744,"secureConnectionStart":460.5},{"duration":139.39999997615814,"initiatorType":"script","name":"https://www.google-analytics.com/analytics.js","startTime":633.7999999523163,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":633.7999999523163,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":773.1999999284744,"responseStart":0,"secureConnectionStart":0},{"duration":9.699999928474426,"initiatorType":"link","name":"https://jira.mariadb.org/s/d5715adaadd168a9002b108b2b039b50-CDN/lu2bu7/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":775,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":775,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":784.6999999284744,"responseStart":0,"secureConnectionStart":0},{"duration":9.100000023841858,"initiatorType":"script","name":"https://jira.mariadb.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/lu2bu7/820016/12ta74/e65b778d185daf5aee24936755b43da6/_/download/contextbatch/js/browser-metrics-plugin.contrib,-_super,-project.issue.navigator,-jira.view.issue,-atl.general/batch.js?agile_global_admin_condition=true&jag=true&jira.create.linked.issue=true&slack-enabled=true","startTime":775.7999999523163,"connectEnd":775.7999999523163,"connectStart":775.7999999523163,"domainLookupEnd":775.7999999523163,"domainLookupStart":775.7999999523163,"fetchStart":775.7999999523163,"redirectEnd":0,"redirectStart":0,"requestStart":775.7999999523163,"responseEnd":784.8999999761581,"responseStart":784.8999999761581,"secureConnectionStart":775.7999999523163},{"duration":15.800000071525574,"initiatorType":"script","name":"https://jira.mariadb.org/s/f51ef5507eea4c158f257c66c93b2a3f-CDN/lu2bu7/820016/12ta74/be4b45e9cec53099498fa61c8b7acba4/_/download/contextbatch/js/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.js?agile_global_admin_condition=true&jag=true&jira.create.linked.issue=true&locale=en&slack-enabled=true","startTime":776.1999999284744,"connectEnd":776.1999999284744,"connectStart":776.1999999284744,"domainLookupEnd":776.1999999284744,"domainLookupStart":776.1999999284744,"fetchStart":776.1999999284744,"redirectEnd":0,"redirectStart":0,"requestStart":776.1999999284744,"responseEnd":792,"responseStart":792,"secureConnectionStart":776.1999999284744}],"fetchStart":0,"domainLookupStart":0,"domainLookupEnd":0,"connectStart":0,"connectEnd":0,"requestStart":39,"responseStart":166,"responseEnd":171,"domLoading":169,"domInteractive":860,"domContentLoadedEventStart":860,"domContentLoadedEventEnd":900,"domComplete":1268,"loadEventStart":1268,"loadEventEnd":1269,"userAgent":"Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)","marks":[{"name":"bigPipe.sidebar-id.start","time":830.1000000238419},{"name":"bigPipe.sidebar-id.end","time":831},{"name":"bigPipe.activity-panel-pipe-id.start","time":831.1000000238419},{"name":"bigPipe.activity-panel-pipe-id.end","time":833.5},{"name":"activityTabFullyLoaded","time":912.5}],"measures":[],"correlationId":"71f0b79fb7a8bc","effectiveType":"4g","downlink":9,"rtt":0,"serverDuration":72,"dbReadsTimeInMs":9,"dbConnsTimeInMs":16,"applicationHash":"9d11dbea5f4be3d4cc21f03a88dd11d8c8687422","experiments":[]}}