Earlier MySQL used to read my.cnf from three locations, in that order:
- /etc
- datadir
- $HOME/.my.cnf
The second is particularly unsafe, because datadir is writable by the mysqld server, and a user that can connect to MySQL can create my.cnf in the datadir using SELECT ... OUTFILE. Over time various safety mechanisms were implemented:
- mysqld no longer reads my.cnf in the datadir. Still, mysqld_safe.sh does and forces the server to, so if the server is started via mysqld_safe.sh, my.cnf in the datadir is still used.
- --secure-file-priv command-line option limits SELECT ... OUTFILE to the specified directory, it's recommended to set it outside of datadir
- SELECT ... OUTFILE creates files that are world-writable and mysqld refuses to read my.cnf if it is world-writable.
But as was recently discovered by Dawid Golunski, one can abuse @@general_log_file variable to create a my.cnf in the datadir, and it will be not created world-writable, so the both mysqld_safe and mysqld will read it on startup.
{"report":{"fcp":1018.1999999880791,"ttfb":180.19999998807907,"pageVisibility":"visible","entityId":57527,"key":"jira.project.issue.view-issue","isInitial":true,"threshold":1000,"elementTimings":{},"userDeviceMemory":8,"userDeviceProcessors":64,"apdex":0.5,"journeyId":"a7516edc-8ae7-40d2-9b5d-1a3cfcfcbf0f","navigationType":0,"readyForUser":1085.699999988079,"redirectCount":0,"resourceLoadedEnd":942.6999999880791,"resourceLoadedStart":190.69999998807907,"resourceTiming":[{"duration":342.90000000596046,"initiatorType":"link","name":"https://jira.mariadb.org/s/2c21342762a6a02add1c328bed317ffd-CDN/lu2bv2/820016/12ta74/0a8bac35585be7fc6c9cc5a0464cd4cf/_/download/contextbatch/css/_super/batch.css","startTime":190.69999998807907,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":190.69999998807907,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":533.5999999940395,"responseStart":0,"secureConnectionStart":0},{"duration":343,"initiatorType":"link","name":"https://jira.mariadb.org/s/7ebd35e77e471bc30ff0eba799ebc151-CDN/lu2bv2/820016/12ta74/2380add21a9a1006587582385952de73/_/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":190.90000000596046,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":190.90000000596046,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":533.9000000059605,"responseStart":0,"secureConnectionStart":0},{"duration":351.59999999403954,"initiatorType":"script","name":"https://jira.mariadb.org/s/e9b27a47da5fb0f74a35acd57e9847fb-CDN/lu2bv2/820016/12ta74/0a8bac35585be7fc6c9cc5a0464cd4cf/_/download/contextbatch/js/_super/batch.js?locale=en","startTime":191.09999999403954,"connectEnd":191.09999999403954,"connectStart":191.09999999403954,"domainLookupEnd":191.09999999403954,"domainLookupStart":191.09999999403954,"fetchStart":191.09999999403954,"redirectEnd":0,"redirectStart":0,"requestStart":191.09999999403954,"responseEnd":542.6999999880791,"responseStart":542.6999999880791,"secureConnectionStart":191.09999999403954},{"duration":438.2999999821186,"initiatorType":"script","name":"https://jira.mariadb.org/s/c32eb0da7ad9831253f8397e6cc26afd-CDN/lu2bv2/820016/12ta74/2380add21a9a1006587582385952de73/_/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":191.30000001192093,"connectEnd":191.30000001192093,"connectStart":191.30000001192093,"domainLookupEnd":191.30000001192093,"domainLookupStart":191.30000001192093,"fetchStart":191.30000001192093,"redirectEnd":0,"redirectStart":0,"requestStart":191.30000001192093,"responseEnd":629.5999999940395,"responseStart":629.5999999940395,"secureConnectionStart":191.30000001192093},{"duration":441.90000000596046,"initiatorType":"script","name":"https://jira.mariadb.org/s/bc0bcb146314416123c992714ee00ff7-CDN/lu2bv2/820016/12ta74/c92c0caa9a024ae85b0ebdbed7fb4bd7/_/download/contextbatch/js/atl.global,-_super/batch.js?locale=en","startTime":191.5,"connectEnd":191.5,"connectStart":191.5,"domainLookupEnd":191.5,"domainLookupStart":191.5,"fetchStart":191.5,"redirectEnd":0,"redirectStart":0,"requestStart":191.5,"responseEnd":633.4000000059605,"responseStart":633.4000000059605,"secureConnectionStart":191.5},{"duration":442.10000002384186,"initiatorType":"script","name":"https://jira.mariadb.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/lu2bv2/820016/12ta74/1.0/_/download/batch/jira.webresources:calendar-en/jira.webresources:calendar-en.js","startTime":191.69999998807907,"connectEnd":191.69999998807907,"connectStart":191.69999998807907,"domainLookupEnd":191.69999998807907,"domainLookupStart":191.69999998807907,"fetchStart":191.69999998807907,"redirectEnd":0,"redirectStart":0,"requestStart":191.69999998807907,"responseEnd":633.8000000119209,"responseStart":633.8000000119209,"secureConnectionStart":191.69999998807907},{"duration":442.2999999821186,"initiatorType":"script","name":"https://jira.mariadb.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/lu2bv2/820016/12ta74/1.0/_/download/batch/jira.webresources:calendar-localisation-moment/jira.webresources:calendar-localisation-moment.js","startTime":191.90000000596046,"connectEnd":191.90000000596046,"connectStart":191.90000000596046,"domainLookupEnd":191.90000000596046,"domainLookupStart":191.90000000596046,"fetchStart":191.90000000596046,"redirectEnd":0,"redirectStart":0,"requestStart":191.90000000596046,"responseEnd":634.1999999880791,"responseStart":634.1999999880791,"secureConnectionStart":191.90000000596046},{"duration":489.90000000596046,"initiatorType":"link","name":"https://jira.mariadb.org/s/b04b06a02d1959df322d9cded3aeecc1-CDN/lu2bv2/820016/12ta74/a2ff6aa845ffc9a1d22fe23d9ee791fc/_/download/contextbatch/css/jira.global.look-and-feel,-_super/batch.css","startTime":192,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":192,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":681.9000000059605,"responseStart":0,"secureConnectionStart":0},{"duration":442.40000000596046,"initiatorType":"script","name":"https://jira.mariadb.org/rest/api/1.0/shortcuts/820016/47140b6e0a9bc2e4913da06536125810/shortcuts.js?context=issuenavigation&context=issueaction","startTime":192.19999998807907,"connectEnd":192.19999998807907,"connectStart":192.19999998807907,"domainLookupEnd":192.19999998807907,"domainLookupStart":192.19999998807907,"fetchStart":192.19999998807907,"redirectEnd":0,"redirectStart":0,"requestStart":192.19999998807907,"responseEnd":634.5999999940395,"responseStart":634.5999999940395,"secureConnectionStart":192.19999998807907},{"duration":489.69999998807907,"initiatorType":"link","name":"https://jira.mariadb.org/s/3ac36323ba5e4eb0af2aa7ac7211b4bb-CDN/lu2bv2/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":192.30000001192093,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":192.30000001192093,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":682,"responseStart":0,"secureConnectionStart":0},{"duration":442.59999999403954,"initiatorType":"script","name":"https://jira.mariadb.org/s/719848dd97ebe0663199f49a3936487a-CDN/lu2bv2/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":192.5,"connectEnd":192.5,"connectStart":192.5,"domainLookupEnd":192.5,"domainLookupStart":192.5,"fetchStart":192.5,"redirectEnd":0,"redirectStart":0,"requestStart":192.5,"responseEnd":635.0999999940395,"responseStart":635.0999999940395,"secureConnectionStart":192.5},{"duration":536.7999999821186,"initiatorType":"script","name":"https://jira.mariadb.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/lu2bv2/820016/12ta74/1.0/_/download/batch/jira.webresources:bigpipe-js/jira.webresources:bigpipe-js.js","startTime":193.30000001192093,"connectEnd":193.30000001192093,"connectStart":193.30000001192093,"domainLookupEnd":193.30000001192093,"domainLookupStart":193.30000001192093,"fetchStart":193.30000001192093,"redirectEnd":0,"redirectStart":0,"requestStart":193.30000001192093,"responseEnd":730.0999999940395,"responseStart":730,"secureConnectionStart":193.30000001192093},{"duration":567.0999999940395,"initiatorType":"script","name":"https://jira.mariadb.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/lu2bv2/820016/12ta74/1.0/_/download/batch/jira.webresources:bigpipe-init/jira.webresources:bigpipe-init.js","startTime":193.30000001192093,"connectEnd":193.30000001192093,"connectStart":193.30000001192093,"domainLookupEnd":193.30000001192093,"domainLookupStart":193.30000001192093,"fetchStart":193.30000001192093,"redirectEnd":0,"redirectStart":0,"requestStart":193.30000001192093,"responseEnd":760.4000000059605,"responseStart":760.4000000059605,"secureConnectionStart":193.30000001192093},{"duration":41.099999994039536,"initiatorType":"xmlhttprequest","name":"https://jira.mariadb.org/rest/webResources/1.0/resources","startTime":692.8000000119209,"connectEnd":692.8000000119209,"connectStart":692.8000000119209,"domainLookupEnd":692.8000000119209,"domainLookupStart":692.8000000119209,"fetchStart":692.8000000119209,"redirectEnd":0,"redirectStart":0,"requestStart":692.8000000119209,"responseEnd":733.9000000059605,"responseStart":733.8000000119209,"secureConnectionStart":692.8000000119209},{"duration":205.69999998807907,"initiatorType":"link","name":"https://jira.mariadb.org/s/d5715adaadd168a9002b108b2b039b50-CDN/lu2bv2/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":737,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":737,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":942.6999999880791,"responseStart":0,"secureConnectionStart":0}],"fetchStart":0,"domainLookupStart":0,"domainLookupEnd":0,"connectStart":0,"connectEnd":0,"requestStart":17,"responseStart":181,"responseEnd":182,"domLoading":189,"domInteractive":1132,"domContentLoadedEventStart":1132,"domContentLoadedEventEnd":1169,"domComplete":1857,"loadEventStart":1857,"loadEventEnd":1859,"userAgent":"Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)","marks":[{"name":"bigPipe.sidebar-id.start","time":1114.9000000059605},{"name":"bigPipe.sidebar-id.end","time":1115.5999999940395},{"name":"bigPipe.activity-panel-pipe-id.start","time":1115.699999988079},{"name":"bigPipe.activity-panel-pipe-id.end","time":1118.5},{"name":"activityTabFullyLoaded","time":1176.800000011921}],"measures":[],"correlationId":"1ab4d0cdf86e8a","effectiveType":"4g","downlink":10,"rtt":0,"serverDuration":99,"dbReadsTimeInMs":10,"dbConnsTimeInMs":18,"applicationHash":"9d11dbea5f4be3d4cc21f03a88dd11d8c8687422","experiments":[]}}