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
Transition
Time In Source Status
Execution Times
Open
In Progress
173d 14h 36m
1
In Progress
Closed
2d 1h 54m
1
{"report":{"fcp":1020.3999998569489,"ttfb":180.89999985694885,"pageVisibility":"visible","entityId":129671,"key":"jira.project.issue.view-issue","isInitial":true,"threshold":1000,"elementTimings":{},"userDeviceMemory":8,"userDeviceProcessors":64,"apdex":0.5,"journeyId":"554ff28a-ec16-4bcb-99e5-5094e9a7e36a","navigationType":0,"readyForUser":1120.1999998092651,"redirectCount":0,"resourceLoadedEnd":707.2999999523163,"resourceLoadedStart":192.89999985694885,"resourceTiming":[{"duration":37,"initiatorType":"link","name":"https://jira.mariadb.org/s/2c21342762a6a02add1c328bed317ffd-CDN/lu2bu7/820016/12ta74/0a8bac35585be7fc6c9cc5a0464cd4cf/_/download/contextbatch/css/_super/batch.css","startTime":192.89999985694885,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":192.89999985694885,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":229.89999985694885,"responseStart":0,"secureConnectionStart":0},{"duration":37.299999952316284,"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":193.09999990463257,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":193.09999990463257,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":230.39999985694885,"responseStart":0,"secureConnectionStart":0},{"duration":327.89999985694885,"initiatorType":"script","name":"https://jira.mariadb.org/s/fbf975c0cce4b1abf04784eeae9ba1f4-CDN/lu2bu7/820016/12ta74/0a8bac35585be7fc6c9cc5a0464cd4cf/_/download/contextbatch/js/_super/batch.js?locale=en","startTime":193.29999995231628,"connectEnd":193.29999995231628,"connectStart":193.29999995231628,"domainLookupEnd":193.29999995231628,"domainLookupStart":193.29999995231628,"fetchStart":193.29999995231628,"redirectEnd":0,"redirectStart":0,"requestStart":247.19999980926514,"responseEnd":521.1999998092651,"responseStart":282.19999980926514,"secureConnectionStart":193.29999995231628},{"duration":513.9000000953674,"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":193.39999985694885,"connectEnd":193.39999985694885,"connectStart":193.39999985694885,"domainLookupEnd":193.39999985694885,"domainLookupStart":193.39999985694885,"fetchStart":193.39999985694885,"redirectEnd":0,"redirectStart":0,"requestStart":247.5,"responseEnd":707.2999999523163,"responseStart":319.09999990463257,"secureConnectionStart":193.39999985694885},{"duration":102.40000009536743,"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":193.59999990463257,"connectEnd":193.59999990463257,"connectStart":193.59999990463257,"domainLookupEnd":193.59999990463257,"domainLookupStart":193.59999990463257,"fetchStart":193.59999990463257,"redirectEnd":0,"redirectStart":0,"requestStart":247.69999980926514,"responseEnd":296,"responseStart":289.89999985694885,"secureConnectionStart":193.59999990463257},{"duration":107,"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":193.59999990463257,"connectEnd":193.59999990463257,"connectStart":193.59999990463257,"domainLookupEnd":193.59999990463257,"domainLookupStart":193.59999990463257,"fetchStart":193.59999990463257,"redirectEnd":0,"redirectStart":0,"requestStart":247.89999985694885,"responseEnd":300.59999990463257,"responseStart":292.7999999523163,"secureConnectionStart":193.59999990463257},{"duration":98.59999990463257,"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":193.79999995231628,"connectEnd":193.79999995231628,"connectStart":193.79999995231628,"domainLookupEnd":193.79999995231628,"domainLookupStart":193.79999995231628,"fetchStart":193.79999995231628,"redirectEnd":0,"redirectStart":0,"requestStart":248,"responseEnd":292.39999985694885,"responseStart":281.09999990463257,"secureConnectionStart":193.79999995231628},{"duration":49,"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":193.89999985694885,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":193.89999985694885,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":242.89999985694885,"responseStart":0,"secureConnectionStart":0},{"duration":101.70000004768372,"initiatorType":"script","name":"https://jira.mariadb.org/rest/api/1.0/shortcuts/820016/47140b6e0a9bc2e4913da06536125810/shortcuts.js?context=issuenavigation&context=issueaction","startTime":194.09999990463257,"connectEnd":194.09999990463257,"connectStart":194.09999990463257,"domainLookupEnd":194.09999990463257,"domainLookupStart":194.09999990463257,"fetchStart":194.09999990463257,"redirectEnd":0,"redirectStart":0,"requestStart":255.09999990463257,"responseEnd":295.7999999523163,"responseStart":289.09999990463257,"secureConnectionStart":194.09999990463257},{"duration":49.5,"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":194.19999980926514,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":194.19999980926514,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":243.69999980926514,"responseStart":0,"secureConnectionStart":0},{"duration":107.59999990463257,"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":194.29999995231628,"connectEnd":194.29999995231628,"connectStart":194.29999995231628,"domainLookupEnd":194.29999995231628,"domainLookupStart":194.29999995231628,"fetchStart":194.29999995231628,"redirectEnd":0,"redirectStart":0,"requestStart":256.19999980926514,"responseEnd":301.89999985694885,"responseStart":294.59999990463257,"secureConnectionStart":194.29999995231628},{"duration":451.2000000476837,"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":195.09999990463257,"connectEnd":195.09999990463257,"connectStart":195.09999990463257,"domainLookupEnd":195.09999990463257,"domainLookupStart":195.09999990463257,"fetchStart":195.09999990463257,"redirectEnd":0,"redirectStart":0,"requestStart":307.2999999523163,"responseEnd":646.2999999523163,"responseStart":624.6999998092651,"secureConnectionStart":195.09999990463257},{"duration":451.2000000476837,"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":195.19999980926514,"connectEnd":195.19999980926514,"connectStart":195.19999980926514,"domainLookupEnd":195.19999980926514,"domainLookupStart":195.19999980926514,"fetchStart":195.19999980926514,"redirectEnd":0,"redirectStart":0,"requestStart":307.69999980926514,"responseEnd":646.3999998569489,"responseStart":625.5,"secureConnectionStart":195.19999980926514},{"duration":70.70000004768372,"initiatorType":"xmlhttprequest","name":"https://jira.mariadb.org/rest/webResources/1.0/resources","startTime":679.6999998092651,"connectEnd":679.6999998092651,"connectStart":679.6999998092651,"domainLookupEnd":679.6999998092651,"domainLookupStart":679.6999998092651,"fetchStart":679.6999998092651,"redirectEnd":0,"redirectStart":0,"requestStart":721.5,"responseEnd":750.3999998569489,"responseStart":749.6999998092651,"secureConnectionStart":679.6999998092651},{"duration":251.89999985694885,"initiatorType":"xmlhttprequest","name":"https://jira.mariadb.org/rest/webResources/1.0/resources","startTime":970.2999999523163,"connectEnd":970.2999999523163,"connectStart":970.2999999523163,"domainLookupEnd":970.2999999523163,"domainLookupStart":970.2999999523163,"fetchStart":970.2999999523163,"redirectEnd":0,"redirectStart":0,"requestStart":1192.0999999046326,"responseEnd":1222.1999998092651,"responseStart":1221.5,"secureConnectionStart":970.2999999523163},{"duration":189,"initiatorType":"script","name":"https://www.google-analytics.com/analytics.js","startTime":1012.6999998092651,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":1012.6999998092651,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":1201.6999998092651,"responseStart":0,"secureConnectionStart":0}],"fetchStart":0,"domainLookupStart":0,"domainLookupEnd":0,"connectStart":0,"connectEnd":0,"requestStart":37,"responseStart":180,"responseEnd":188,"domLoading":190,"domInteractive":1257,"domContentLoadedEventStart":1257,"domContentLoadedEventEnd":1324,"domComplete":1567,"loadEventStart":1567,"loadEventEnd":1567,"userAgent":"Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)","marks":[{"name":"bigPipe.sidebar-id.start","time":1225.0999999046326},{"name":"bigPipe.sidebar-id.end","time":1226},{"name":"bigPipe.activity-panel-pipe-id.start","time":1226.0999999046326},{"name":"bigPipe.activity-panel-pipe-id.end","time":1227.1999998092651},{"name":"activityTabFullyLoaded","time":1339.0999999046326}],"measures":[],"correlationId":"d030ce5b006023","effectiveType":"4g","downlink":10,"rtt":0,"serverDuration":72,"dbReadsTimeInMs":14,"dbConnsTimeInMs":21,"applicationHash":"9d11dbea5f4be3d4cc21f03a88dd11d8c8687422","experiments":[]}}