From df8e1687b2db3f49ba8c3d97a4c92b7892a54f1e Mon Sep 17 00:00:00 2001 From: Bruno Bierbaumer Date: Thu, 20 Jul 2023 19:26:29 +0200 Subject: [PATCH] fix: Fix insecure Zigbee network encryption key generation (#18372) --- lib/zigbee.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/zigbee.ts b/lib/zigbee.ts index a97576b96..6ecc257c8 100644 --- a/lib/zigbee.ts +++ b/lib/zigbee.ts @@ -9,6 +9,7 @@ import Device from './model/device'; import Group from './model/group'; import * as ZHEvents from 'zigbee-herdsman/dist/controller/events'; import bind from 'bind-decorator'; +import {randomInt} from 'crypto'; export default class Zigbee { private herdsman: Controller; @@ -164,13 +165,13 @@ export default class Zigbee { } private generateNetworkKey(): number[] { - const key = Array.from({length: 16}, () => Math.floor(Math.random() * 255)); + const key = Array.from({length: 16}, () => randomInt(256)); settings.set(['advanced', 'network_key'], key); return key; } private generatePanID(): number { - const panID = Math.floor(Math.random() * (0xFFFF - 2)) + 1; + const panID = randomInt(1, 0xFFFF - 1); settings.set(['advanced', 'pan_id'], panID); return panID; }