-
Type:
Improvement
-
Status:
Closed
-
Priority:
Major
-
Resolution:
Fixed
-
Affects Version/s:
3.1.1
-
-
-
-
-
Proposal:
Hide
No new return code will be added, for clarity the following sentences will be added
After line 751 WD11
add "If a correctly formed CONNECT packet is received by the server, but the server is unable to process it (for some reason), then the server SHOULD attempt to flow one of the following connack return codes before disconnecting the TCP Connection."
In the table from 753, elaborate as follows:
1 0x01 Connection Refused: unacceptable protocol version - The server does not support the level of the MQTT protocol requested by the client.
2 0x02 Connection Refused: identifier rejected - the client identifier is correct UTF-8 but not allowed in the server.
3 0x03 Connection Refused: server unavailable - the TCP connection has been made but the MQTT service is unavailable.
4 0x04 Connection Refused: bad user name or password - the data in the user name or password is malformed.
5 0x05 Connection Refused: not authorized - the client is not authorized to connect.
line 754 add "If none of these return codes are deemed applicable, then the server MUST disconnect the TCP Connection without flowing a connack."
Show
No new return code will be added, for clarity the following sentences will be added
After line 751 WD11
add "If a correctly formed CONNECT packet is received by the server, but the server is unable to process it (for some reason), then the server SHOULD attempt to flow one of the following connack return codes before disconnecting the TCP Connection."
In the table from 753, elaborate as follows:
1 0x01 Connection Refused: unacceptable protocol version - The server does not support the level of the MQTT protocol requested by the client.
2 0x02 Connection Refused: identifier rejected - the client identifier is correct UTF-8 but not allowed in the server.
3 0x03 Connection Refused: server unavailable - the TCP connection has been made but the MQTT service is unavailable.
4 0x04 Connection Refused: bad user name or password - the data in the user name or password is malformed.
5 0x05 Connection Refused: not authorized - the client is not authorized to connect.
line 754 add "If none of these return codes are deemed applicable, then the server MUST disconnect the TCP Connection without flowing a connack."
The server should flow a new CONNACK with a new return code before disconnecting the TCP session if it receives a CONNECT message which is malformed.
Malformed means that the protocol name and version are correct but something else is incorrect, for example a User Name flag is set to indicate there is a User Name in the payload but the payload is empty.
{"report":{"apdex":1,"isInitial":true,"journeyId":"2d861b98-22c2-4b4e-94fc-52202b2c60ad","key":"jira.project.issue.view-issue","navigationType":0,"readyForUser":648,"redirectCount":0,"resourceLoadedEnd":703.5999999046326,"resourceLoadedStart":169,"resourceTiming":[{"duration":82.30000019073486,"initiatorType":"link","name":"https://issues.oasis-open.org/s/3edeca31ab9ba77980aae0809fbe7121-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/0a4716d29b2d5b1bdcdb168b4efc119e/_/download/contextbatch/css/_super/batch.css","startTime":169,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":169,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":251.30000019073486,"responseStart":0,"secureConnectionStart":0},{"duration":83.09999990463257,"initiatorType":"link","name":"https://issues.oasis-open.org/s/7d2823769c2e7b66e860863fe879b7f8-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/9aebb1c0aaa4c36289529757ec9dbb54/_/download/contextbatch/css/project.issue.navigator,jira.view.issue,jira.global,atl.general,-_super/batch.css?agile_global_admin_condition=true&jag=true&jira.create.linked.issue=true&richediton=true","startTime":169.30000019073486,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":169.30000019073486,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":252.40000009536743,"responseStart":0,"secureConnectionStart":0},{"duration":83.90000009536743,"initiatorType":"link","name":"https://issues.oasis-open.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/8.0.5/_/download/batch/com.atlassian.auiplugin:split_aui.pattern.label/com.atlassian.auiplugin:split_aui.pattern.label.css","startTime":169.5,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":169.5,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":253.40000009536743,"responseStart":0,"secureConnectionStart":0},{"duration":84.2999997138977,"initiatorType":"link","name":"https://issues.oasis-open.org/s/645acc233eb869f48a571293b8358a7d-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/1.0/_/download/batch/jira.webresources:global-static-adgs/jira.webresources:global-static-adgs.css","startTime":169.80000019073486,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":169.80000019073486,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":254.09999990463257,"responseStart":0,"secureConnectionStart":0},{"duration":86.5,"initiatorType":"link","name":"https://issues.oasis-open.org/s/a0dd6509771c1de0667aae5429c04cda-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/1.0/_/download/batch/jira.webresources:global-static/jira.webresources:global-static.css","startTime":170,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":170,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":256.5,"responseStart":0,"secureConnectionStart":0},{"duration":133.30000019073486,"initiatorType":"script","name":"https://issues.oasis-open.org/s/e5479157e7a0c08b005e6522f2f04104-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/0a4716d29b2d5b1bdcdb168b4efc119e/_/download/contextbatch/js/_super/batch.js?locale=en-US","startTime":170.19999980926514,"connectEnd":170.19999980926514,"connectStart":170.19999980926514,"domainLookupEnd":170.19999980926514,"domainLookupStart":170.19999980926514,"fetchStart":170.19999980926514,"redirectEnd":0,"redirectStart":0,"requestStart":170.19999980926514,"responseEnd":303.5,"responseStart":303.5,"secureConnectionStart":170.19999980926514},{"duration":160.40000009536743,"initiatorType":"script","name":"https://issues.oasis-open.org/s/83514d5d4e8543747b02042eafcdc99c-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/9aebb1c0aaa4c36289529757ec9dbb54/_/download/contextbatch/js/project.issue.navigator,jira.view.issue,jira.global,atl.general,-_super/batch.js?agile_global_admin_condition=true&jag=true&jira.create.linked.issue=true&locale=en-US&richediton=true","startTime":170.69999980926514,"connectEnd":170.69999980926514,"connectStart":170.69999980926514,"domainLookupEnd":170.69999980926514,"domainLookupStart":170.69999980926514,"fetchStart":170.69999980926514,"redirectEnd":0,"redirectStart":0,"requestStart":170.69999980926514,"responseEnd":331.09999990463257,"responseStart":331.09999990463257,"secureConnectionStart":170.69999980926514},{"duration":162.5,"initiatorType":"script","name":"https://issues.oasis-open.org/s/70bb2263e59e7e1f04fbd137c80b895b-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/aae1242f5fc81cc6a5bb8bc963ccda29/_/download/contextbatch/js/atl.global,-_super/batch.js?locale=en-US","startTime":171,"connectEnd":171,"connectStart":171,"domainLookupEnd":171,"domainLookupStart":171,"fetchStart":171,"redirectEnd":0,"redirectStart":0,"requestStart":171,"responseEnd":333.5,"responseStart":333.5,"secureConnectionStart":171},{"duration":162.7000002861023,"initiatorType":"script","name":"https://issues.oasis-open.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/1.0/_/download/batch/jira.webresources:calendar-en/jira.webresources:calendar-en.js","startTime":171.19999980926514,"connectEnd":171.19999980926514,"connectStart":171.19999980926514,"domainLookupEnd":171.19999980926514,"domainLookupStart":171.19999980926514,"fetchStart":171.19999980926514,"redirectEnd":0,"redirectStart":0,"requestStart":171.19999980926514,"responseEnd":333.90000009536743,"responseStart":333.90000009536743,"secureConnectionStart":171.19999980926514},{"duration":163.09999990463257,"initiatorType":"script","name":"https://issues.oasis-open.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/1.0/_/download/batch/jira.webresources:calendar-localisation-moment/jira.webresources:calendar-localisation-moment.js","startTime":171.30000019073486,"connectEnd":171.30000019073486,"connectStart":171.30000019073486,"domainLookupEnd":171.30000019073486,"domainLookupStart":171.30000019073486,"fetchStart":171.30000019073486,"redirectEnd":0,"redirectStart":0,"requestStart":171.30000019073486,"responseEnd":334.40000009536743,"responseStart":334.40000009536743,"secureConnectionStart":171.30000019073486},{"duration":163.19999980926514,"initiatorType":"script","name":"https://issues.oasis-open.org/s/cda37faab827dbdf305de8efe8282062-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/8.0.5/_/download/batch/com.atlassian.auiplugin:split_aui.pattern.label/com.atlassian.auiplugin:split_aui.pattern.label.js?locale=en-US","startTime":171.5,"connectEnd":171.5,"connectStart":171.5,"domainLookupEnd":171.5,"domainLookupStart":171.5,"fetchStart":171.5,"redirectEnd":0,"redirectStart":0,"requestStart":171.5,"responseEnd":334.69999980926514,"responseStart":334.69999980926514,"secureConnectionStart":171.5},{"duration":163.5,"initiatorType":"link","name":"https://issues.oasis-open.org/s/07245784f53abc49bad9d9d4d36c577a-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/cadc4f20cc5c138dee060d42cf85f220/_/download/contextbatch/css/jira.global.look-and-feel,-_super/batch.css","startTime":171.69999980926514,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":171.69999980926514,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":335.19999980926514,"responseStart":0,"secureConnectionStart":0},{"duration":163.39999961853027,"initiatorType":"script","name":"https://issues.oasis-open.org/rest/api/1.0/shortcuts/803004/a29179d70fa8562374ee16707692af77/shortcuts.js?context=issuenavigation&context=issueaction","startTime":171.80000019073486,"connectEnd":171.80000019073486,"connectStart":171.80000019073486,"domainLookupEnd":171.80000019073486,"domainLookupStart":171.80000019073486,"fetchStart":171.80000019073486,"redirectEnd":0,"redirectStart":0,"requestStart":171.80000019073486,"responseEnd":335.19999980926514,"responseStart":335.19999980926514,"secureConnectionStart":171.80000019073486},{"duration":252.2000002861023,"initiatorType":"link","name":"https://issues.oasis-open.org/s/f77fd89aa211a76b20e9b0e63564383c-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/4a9288299d147101bf66484f4be48925/_/download/contextbatch/css/com.atlassian.jira.projects.sidebar.init,-_super,-jira.view.issue,-project.issue.navigator/batch.css?jira.create.linked.issue=true&richediton=true","startTime":201.69999980926514,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":201.69999980926514,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":453.90000009536743,"responseStart":0,"secureConnectionStart":0},{"duration":180.59999990463257,"initiatorType":"script","name":"https://issues.oasis-open.org/s/41525c48ddceeb9b11e54085268fc285-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/4a9288299d147101bf66484f4be48925/_/download/contextbatch/js/com.atlassian.jira.projects.sidebar.init,-_super,-jira.view.issue,-project.issue.navigator/batch.js?jira.create.linked.issue=true&locale=en-US&richediton=true","startTime":202,"connectEnd":202,"connectStart":202,"domainLookupEnd":202,"domainLookupStart":202,"fetchStart":202,"redirectEnd":0,"redirectStart":0,"requestStart":202,"responseEnd":382.59999990463257,"responseStart":382.59999990463257,"secureConnectionStart":202}],"threshold":1000,"fetchStart":0,"domainLookupStart":61,"domainLookupEnd":61,"connectStart":61,"connectEnd":112,"secureConnectionStart":86,"requestStart":112,"responseStart":160,"responseEnd":241,"domLoading":164,"domInteractive":737,"domContentLoadedEventStart":737,"domContentLoadedEventEnd":786,"domComplete":1147,"loadEventStart":1147,"loadEventEnd":1149,"userAgent":"Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)","marks":[],"measures":[],"correlationId":"370496bdf0a98f","effectiveType":"4g","downlink":10,"rtt":0,"serverDuration":102,"dbReadsTimeInMs":17,"dbConnsTimeInMs":20,"applicationHash":"4d4040e0714d65b7fffa4801569d014c0b16eaa9","experiments":[]}}
I can see the use case, but I feel that many brokers will want to simply kill the TCP connection dead...
If we make this MAY, then we give information to an attacker who can exploit the differences in behaviour to sniff a broker type...