homebridge-smartthings-oauth 1.0.66 → 1.0.67

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,6 +1,29 @@
1
1
  # Changelog
2
2
  All notable changes to this project will be documented in this file.
3
3
 
4
+ ## [1.0.67] - Optional SmartThings webhook signature verification
5
+
6
+ > Stable release of the `1.0.67-beta.0` work (below), validated end-to-end against live SmartThings traffic: with verification enabled, the signed `CONFIRMATION` handshake and live device `EVENT`s are accepted and applied, while unsigned/forged requests are rejected with **HTTP 401**; with the flag off (the default) webhook handling is unchanged. Opt-in and **off by default**, so existing setups are unaffected until they enable it.
7
+
8
+ ### Added
9
+ - **`verifyWebhookSignatures` config option** (default `false`). When enabled, every inbound webhook POST must carry a valid SmartThings HTTP signature, a matching body digest, and a recent `Date` (within ±15 minutes) — otherwise it is rejected with **HTTP 401** before any processing. The signed-header set must cover `(request-target)`, `digest`, and `date`, so the digest is bound to the RSA signature. Only known SmartThings lifecycles (`PING`, `CONFIRMATION`, `INSTALL`, `UPDATE`, `UNINSTALL`, `CONFIGURATION`, `EVENT`) are processed; anything else is dropped with **HTTP 400**. Requires an `https` Server URL — otherwise verification stays disabled (logged) rather than breaking the webhook; for polling-only setups (no Server URL) the option is a harmless no-op. The signing certificate is fetched from `key.smartthings.com` (key id validated, cached per key id with a size cap and brief negative caching). When the flag is off, webhook handling is unchanged.
10
+
11
+ ### Security
12
+ - **Webhook endpoint hardening** (applies regardless of the flag): the inbound body is capped (oversized POSTs get **HTTP 413**) to protect the public endpoint from memory exhaustion, and the `CONFIRMATION` lifecycle's outbound call is restricted to `https` URLs with no redirects and a timeout, reducing the server-side request-forgery surface.
13
+
14
+ ### Fixed
15
+ - Resolved long-standing ESLint errors in the air conditioner service (an unused variable and a `case`-block declaration) and corrected the `lint` script glob (`src/**.ts` → `src/**/*.ts`) so the whole `src/` tree is actually linted.
16
+
17
+ ## [1.0.67-beta.0] - Optional SmartThings webhook signature verification
18
+
19
+ > Opt-in hardening for the webhook (tunnel) route. SmartThings already signs every inbound webhook POST with an HTTP Signature (RSA-SHA256 over the request body, using its rotating "Padlock CA" certificate), but the plugin previously did not verify it — any host that could reach the public webhook URL could forge device events. This release adds verification behind a new, **off-by-default** flag, so existing setups are unaffected until they opt in.
20
+
21
+ ### Added
22
+ - **`verifyWebhookSignatures` config option** (default `false`). When enabled, every inbound webhook POST must carry a valid SmartThings HTTP signature, a matching body digest, and a recent `Date` (within ±15 minutes) — otherwise it is rejected with **HTTP 401** before any processing. The signed-header set is required to cover `(request-target)`, `digest`, and `date`, so the digest is genuinely bound to the RSA signature. Only known SmartThings lifecycles (`PING`, `CONFIRMATION`, `INSTALL`, `UPDATE`, `UNINSTALL`, `CONFIGURATION`, `EVENT`) are processed; anything else is dropped with **HTTP 400**. Requires an `https` Server URL — if the Server URL is not https, verification stays disabled (with a logged warning) rather than breaking the webhook. The signing certificate is fetched from `key.smartthings.com` (key id validated to a safe path shape) and cached per key id with a size cap and brief negative caching (keys rotate ~monthly). When the flag is off, webhook handling is unchanged.
23
+
24
+ ### Security
25
+ - **Webhook endpoint hardening** (applies regardless of the flag): the inbound body is now capped (oversized POSTs get **HTTP 413**) to protect the public endpoint from memory exhaustion, and the `CONFIRMATION` lifecycle's outbound call is restricted to `https` URLs with no redirects and a timeout, reducing the server-side request forgery surface.
26
+
4
27
  ## [1.0.66] - Samsung Frame & Tizen TV Control + Laundry/Dishwasher Countdown
5
28
 
6
29
  > Consolidates the `1.0.66-beta.0`–`beta.7` work (see the beta entries below for full detail). Two themes: Samsung **Frame & Tizen TV** control over the local WebSocket (#46), and a working **remaining-time countdown** for Samsung washers, dryers, and dishwashers in Apple Home (#13). Does not include the in-progress air-purifier work (PR #48).
@@ -62,6 +62,13 @@
62
62
  "default": 3000,
63
63
  "description": "Port for webhook server (only used if Server URL is configured)"
64
64
  },
65
+ "verifyWebhookSignatures": {
66
+ "title": "Verify SmartThings Webhook Signatures",
67
+ "type": "boolean",
68
+ "required": false,
69
+ "default": false,
70
+ "description": "When enabled, every inbound webhook POST must carry a valid SmartThings HTTP signature (and a recent timestamp) or it is rejected with HTTP 401. Only applies when an https Server URL is configured; with a non-https URL it stays disabled. Register/confirm your Server URL with SmartThings BEFORE enabling, then confirm real-time updates still work (polling continues either way). Off (default) preserves existing behavior."
71
+ },
65
72
  "GarageDoorMaxPoll": {
66
73
  "title": "Garage Door Max Poll",
67
74
  "type": "integer",
@@ -1 +1 @@
1
- {"version":3,"file":"airConditionerService.d.ts","sourceRoot":"","sources":["../../src/services/airConditionerService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAgC,MAAM,YAAY,CAAC;AAC7E,OAAO,EAAE,8BAA8B,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAEjE,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AA0C5C,qBAAa,qBAAsB,SAAQ,WAAW;IAEpD,OAAO,CAAC,eAAe,CAA4C;IAEnE,OAAO,CAAC,iBAAiB,CAAU;IACnC,OAAO,CAAC,UAAU,CAAU;IAC5B,OAAO,CAAC,eAAe,CAAsB;IAC7C,OAAO,CAAC,yBAAyB,CAAsB;IACvD,OAAO,CAAC,YAAY,CAA2B;IAC/C,OAAO,CAAC,YAAY,CAAsB;IAG1C,OAAO,CAAC,sBAAsB,CAAsB;IACpD,OAAO,CAAC,yBAAyB,CAAsB;IAEvD,OAAO,CAAC,4BAA4B,CAAS;IAG7C,OAAO,CAAC,gBAAgB,CAAS;gBAErB,QAAQ,EAAE,8BAA8B,EAAE,SAAS,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,EAC7H,qBAAqB,EAAE,qBAAqB,EAC5C,IAAI,EAAE,MAAM,EAAE,YAAY,KAAA;IAwD5B,OAAO,CAAC,qBAAqB;IAI7B,OAAO,CAAC,eAAe;IAwCvB,OAAO,CAAC,QAAQ;IA4BhB,OAAO,CAAC,+BAA+B;IAkCvC,OAAO,CAAC,mBAAmB;IAY3B,OAAO,CAAC,gBAAgB;YAmBV,gBAAgB;IAK9B,OAAO,CAAC,cAAc;IAoBtB,OAAO,CAAC,cAAc;IAetB,OAAO,CAAC,6BAA6B;YAUvB,mBAAmB;YAKnB,mBAAmB;YAKnB,kBAAkB;YAKlB,kBAAkB;YAKlB,kCAAkC;YAMlC,kCAAkC;YAUlC,cAAc;YAmDd,cAAc;IAK5B,OAAO,CAAC,WAAW;YAkBL,WAAW;IAYzB,OAAO,CAAC,YAAY;YAQN,YAAY;IAQ1B,OAAO,CAAC,6CAA6C;IAgBrD,OAAO,CAAC,6CAA6C;YAcvC,4BAA4B;YAe5B,4BAA4B;YAqB5B,6BAA6B;YAyB7B,qBAAqB;YAkBrB,oBAAoB;IAYlC,OAAO,CAAC,oBAAoB;IAQ5B,OAAO,CAAC,0BAA0B;IAQlC,OAAO,CAAC,SAAS;IAKjB,OAAO,CAAC,WAAW;YAIL,kBAAkB;YAYlB,eAAe;IAetB,YAAY,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;CAsD7C"}
1
+ {"version":3,"file":"airConditionerService.d.ts","sourceRoot":"","sources":["../../src/services/airConditionerService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAgC,MAAM,YAAY,CAAC;AAC7E,OAAO,EAAE,8BAA8B,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAEjE,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AA0C5C,qBAAa,qBAAsB,SAAQ,WAAW;IAEpD,OAAO,CAAC,eAAe,CAA4C;IAEnE,OAAO,CAAC,iBAAiB,CAAU;IACnC,OAAO,CAAC,UAAU,CAAU;IAC5B,OAAO,CAAC,eAAe,CAAsB;IAC7C,OAAO,CAAC,yBAAyB,CAAsB;IACvD,OAAO,CAAC,YAAY,CAA2B;IAC/C,OAAO,CAAC,YAAY,CAAsB;IAG1C,OAAO,CAAC,sBAAsB,CAAsB;IACpD,OAAO,CAAC,yBAAyB,CAAsB;IAEvD,OAAO,CAAC,4BAA4B,CAAS;IAG7C,OAAO,CAAC,gBAAgB,CAAS;gBAErB,QAAQ,EAAE,8BAA8B,EAAE,SAAS,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,EAC7H,qBAAqB,EAAE,qBAAqB,EAC5C,IAAI,EAAE,MAAM,EAAE,YAAY,KAAA;IAwD5B,OAAO,CAAC,qBAAqB;IAI7B,OAAO,CAAC,eAAe;IAwCvB,OAAO,CAAC,QAAQ;IA4BhB,OAAO,CAAC,+BAA+B;IAkCvC,OAAO,CAAC,mBAAmB;IAY3B,OAAO,CAAC,gBAAgB;YAmBV,gBAAgB;IAK9B,OAAO,CAAC,cAAc;IAoBtB,OAAO,CAAC,cAAc;IAetB,OAAO,CAAC,6BAA6B;YAUvB,mBAAmB;YAKnB,mBAAmB;YAKnB,kBAAkB;YAKlB,kBAAkB;YAKlB,kCAAkC;YAMlC,kCAAkC;YAUlC,cAAc;YAkDd,cAAc;IAK5B,OAAO,CAAC,WAAW;YAkBL,WAAW;IAYzB,OAAO,CAAC,YAAY;YAQN,YAAY;IAQ1B,OAAO,CAAC,6CAA6C;IAgBrD,OAAO,CAAC,6CAA6C;YAcvC,4BAA4B;YAe5B,4BAA4B;YAqB5B,6BAA6B;YAyB7B,qBAAqB;YAkBrB,oBAAoB;IAYlC,OAAO,CAAC,oBAAoB;IAQ5B,OAAO,CAAC,0BAA0B;IAQlC,OAAO,CAAC,SAAS;IAKjB,OAAO,CAAC,WAAW;YAIL,kBAAkB;YAYlB,eAAe;IAetB,YAAY,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;CAuD7C"}
@@ -259,7 +259,6 @@ class AirConditionerService extends baseService_1.BaseService {
259
259
  // If fan is turned on, and thermostat is not active, sets the air conditioner to the Wind mode or mantains the current one.
260
260
  async setSwitchState(value) {
261
261
  var _a, _b;
262
- const CurrentHeatingCoolingState = this.platform.Characteristic.CurrentHeatingCoolingState;
263
262
  const heatingCoolingState = await this.getTargetHeatingCoolingState(); // Use target state for mode decision when turning on
264
263
  const currentAirConditionerMode = this.targetHeatingCoolingStateToAirConditionerMode(heatingCoolingState);
265
264
  const airConditionerMode = heatingCoolingState === this.platform.Characteristic.TargetHeatingCoolingState.OFF ? AirConditionerMode.Wind : currentAirConditionerMode;
@@ -515,7 +514,7 @@ class AirConditionerService extends baseService_1.BaseService {
515
514
  case 'relativeHumidityMeasurement':
516
515
  (_a = this.humidityService) === null || _a === void 0 ? void 0 : _a.updateCharacteristic(this.platform.Characteristic.CurrentRelativeHumidity, event.value);
517
516
  break;
518
- case 'custom.airConditionerOptionalMode':
517
+ case 'custom.airConditionerOptionalMode': {
519
518
  const currentDeviceMode = event.value;
520
519
  this.log.info(`[${this.name}] Event for custom.airConditionerOptionalMode: ${currentDeviceMode}`);
521
520
  if (this.multipleOptionalModesEnabled) {
@@ -529,6 +528,7 @@ class AirConditionerService extends baseService_1.BaseService {
529
528
  (_d = this.optionalModeSwitchService) === null || _d === void 0 ? void 0 : _d.updateCharacteristic(this.platform.Characteristic.On, currentDeviceMode === this.optionalMode);
530
529
  }
531
530
  break;
531
+ }
532
532
  case 'switchLevel':
533
533
  (_e = this.lightService) === null || _e === void 0 ? void 0 : _e.updateCharacteristic(this.platform.Characteristic.On, event.value > 0);
534
534
  (_f = this.lightService) === null || _f === void 0 ? void 0 : _f.updateCharacteristic(this.platform.Characteristic.Brightness, event.value);
@@ -1 +1 @@
1
- {"version":3,"file":"airConditionerService.js","sourceRoot":"","sources":["../../src/services/airConditionerService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"airConditionerService.js","sourceRoot":"","sources":["../../src/services/airConditionerService.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"airPurifierService.d.ts","sourceRoot":"","sources":["../../src/services/airPurifierService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAgC,MAAM,YAAY,CAAC;AAC7E,OAAO,EAAE,8BAA8B,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAEjE,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAe5C,qBAAa,kBAAmB,SAAQ,WAAW;IAEjD,OAAO,CAAC,kBAAkB,CAAU;IACpC,OAAO,CAAC,uBAAuB,CAAC,CAAU;IAC1C,OAAO,CAAC,qBAAqB,CAAC,CAAU;IAKxC,OAAO,CAAC,kBAAkB,CAAC,CAAS;IACpC,OAAO,CAAC,sBAAsB,CAAC,CAAqB;IACpD,OAAO,CAAC,YAAY,CAAC,CAAgC;IACrD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,oBAAoB,CAAO;gBAEvC,QAAQ,EAAE,8BAA8B,EAAE,SAAS,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,EAC7H,qBAAqB,EAAE,qBAAqB,EAC5C,IAAI,EAAE,MAAM,EAAE,YAAY,KAAA;IAgB5B,OAAO,CAAC,qBAAqB;IAI7B,OAAO,CAAC,gBAAgB;IAqCxB,OAAO,CAAC,qBAAqB;IAgC7B,OAAO,CAAC,mBAAmB;YAmBb,SAAS;YAKT,SAAS;YAkBT,0BAA0B;YAS1B,yBAAyB;YAOzB,yBAAyB;YAQzB,gBAAgB;YAMhB,gBAAgB;IAO9B;;;;;OAKG;IACH,OAAO,CAAC,iBAAiB;YA0BX,kBAAkB;YAKlB,yBAAyB;YASzB,aAAa;YAiBb,cAAc;YAKd,cAAc;YAKd,aAAa;YAOb,gBAAgB;IAO9B,OAAO,CAAC,cAAc;IAgBtB,OAAO,CAAC,cAAc;IAiBtB,OAAO,CAAC,gBAAgB;IAkBxB,OAAO,CAAC,qBAAqB;YAgBf,kBAAkB;YAWlB,eAAe;IAYtB,YAAY,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;CA4D7C"}
1
+ {"version":3,"file":"airPurifierService.d.ts","sourceRoot":"","sources":["../../src/services/airPurifierService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAgC,MAAM,YAAY,CAAC;AAC7E,OAAO,EAAE,8BAA8B,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAEjE,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAe5C,qBAAa,kBAAmB,SAAQ,WAAW;IAEjD,OAAO,CAAC,kBAAkB,CAAU;IACpC,OAAO,CAAC,uBAAuB,CAAC,CAAU;IAC1C,OAAO,CAAC,qBAAqB,CAAC,CAAU;IAKxC,OAAO,CAAC,kBAAkB,CAAC,CAAS;IACpC,OAAO,CAAC,sBAAsB,CAAC,CAAqB;IACpD,OAAO,CAAC,YAAY,CAAC,CAAgC;IACrD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,oBAAoB,CAAO;gBAEvC,QAAQ,EAAE,8BAA8B,EAAE,SAAS,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,EAC7H,qBAAqB,EAAE,qBAAqB,EAC5C,IAAI,EAAE,MAAM,EAAE,YAAY,KAAA;IAoB5B,OAAO,CAAC,qBAAqB;IAI7B,OAAO,CAAC,gBAAgB;IAqCxB,OAAO,CAAC,qBAAqB;IAgC7B,OAAO,CAAC,mBAAmB;YAmBb,SAAS;YAKT,SAAS;YAkBT,0BAA0B;YAS1B,yBAAyB;YAOzB,yBAAyB;YAQzB,gBAAgB;YAMhB,gBAAgB;IAO9B;;;;;OAKG;IACH,OAAO,CAAC,iBAAiB;YA0BX,kBAAkB;YAKlB,yBAAyB;YASzB,aAAa;YAiBb,cAAc;YAKd,cAAc;YAKd,aAAa;YAOb,gBAAgB;IAO9B,OAAO,CAAC,cAAc;IAgBtB,OAAO,CAAC,cAAc;IAiBtB,OAAO,CAAC,gBAAgB;IAkBxB,OAAO,CAAC,qBAAqB;YAgBf,kBAAkB;YAWlB,eAAe;IAYtB,YAAY,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;CA4D7C"}
@@ -21,7 +21,9 @@ class AirPurifierService extends baseService_1.BaseService {
21
21
  super(platform, accessory, componentId, capabilities, multiServiceAccessory, name, deviceStatus);
22
22
  this.log.debug(`Adding AirPurifierService to ${this.name}`);
23
23
  this.airPurifierService = this.setupAirPurifier(platform, multiServiceAccessory);
24
- if (this.isCapabilitySupported('airQualitySensor') || this.isCapabilitySupported('dustSensor') || this.isCapabilitySupported('odorSensor')) {
24
+ if (this.isCapabilitySupported('airQualitySensor') ||
25
+ this.isCapabilitySupported('dustSensor') ||
26
+ this.isCapabilitySupported('odorSensor')) {
25
27
  this.airQualitySensorService = this.setupAirQualitySensor(platform, multiServiceAccessory);
26
28
  }
27
29
  if (this.isCapabilitySupported('relativeHumidityMeasurement')) {
@@ -1 +1 @@
1
- {"version":3,"file":"airPurifierService.js","sourceRoot":"","sources":["../../src/services/airPurifierService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"airPurifierService.js","sourceRoot":"","sources":["../../src/services/airPurifierService.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,45 @@
1
+ import { Logger } from 'homebridge';
2
+ import * as http from 'http';
3
+ export declare class SignatureVerifier {
4
+ private readonly log;
5
+ private readonly certCache;
6
+ private readonly inFlight;
7
+ private readonly negativeCache;
8
+ constructor(log: Logger);
9
+ /**
10
+ * Returns true only if the request carries a valid, fresh SmartThings signature over the
11
+ * given raw body. Logs a specific reason on failure to aid diagnosis of 401s.
12
+ */
13
+ verify(rawBody: Buffer, method: string | undefined, path: string, headers: http.IncomingHttpHeaders): Promise<boolean>;
14
+ /**
15
+ * Parses `Authorization: Signature keyId="...",signature="...",headers="...",algorithm="..."`.
16
+ * Returns null if the scheme is wrong or any required member is missing.
17
+ */
18
+ private parseSignatureHeader;
19
+ /**
20
+ * Confirms base64(sha256(rawBody)) equals the value in the Digest header.
21
+ * Accepts both `SHA256=` and `SHA-256=` prefixes.
22
+ */
23
+ private verifyDigest;
24
+ /**
25
+ * Rejects requests whose Date header is missing, unparseable, or outside the skew tolerance.
26
+ */
27
+ private verifyDateFreshness;
28
+ /**
29
+ * Builds the signing string from the signed header list, verbatim and in order.
30
+ * `(request-target)` => "<method> <path>"; every other token => "<name>: <value>".
31
+ * Returns null if any named header is absent or multi-valued.
32
+ */
33
+ private buildSigningString;
34
+ /**
35
+ * Returns the PEM cert for a keyId, using a per-keyId cache and de-duplicating concurrent
36
+ * fetches. keyId rotation is handled implicitly: a new keyId is simply a new cache key.
37
+ */
38
+ private getCertificate;
39
+ private fetchCertificate;
40
+ private computeExpiry;
41
+ private rsaVerify;
42
+ private pruneExpired;
43
+ private evictIfFull;
44
+ }
45
+ //# sourceMappingURL=signatureVerifier.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signatureVerifier.d.ts","sourceRoot":"","sources":["../../src/webhook/signatureVerifier.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AACpC,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AA0C7B,qBAAa,iBAAiB;IAKhB,OAAO,CAAC,QAAQ,CAAC,GAAG;IAJhC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAiC;IAC3D,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA6C;IACtE,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA6B;gBAE9B,GAAG,EAAE,MAAM;IAExC;;;OAGG;IACU,MAAM,CACjB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,IAAI,CAAC,mBAAmB,GAChC,OAAO,CAAC,OAAO,CAAC;IAiDnB;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IAiC5B;;;OAGG;IACH,OAAO,CAAC,YAAY;IAkBpB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAqB3B;;;;OAIG;IACH,OAAO,CAAC,kBAAkB;IAqB1B;;;OAGG;YACW,cAAc;YAoCd,gBAAgB;IAqB9B,OAAO,CAAC,aAAa;IAarB,OAAO,CAAC,SAAS;IAYjB,OAAO,CAAC,YAAY;IAepB,OAAO,CAAC,WAAW;CASpB"}
@@ -0,0 +1,320 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.SignatureVerifier = void 0;
40
+ const crypto = __importStar(require("crypto"));
41
+ const axios_1 = __importDefault(require("axios"));
42
+ /**
43
+ * Verifies the IETF HTTP Signature (draft-cavage) that SmartThings attaches to every
44
+ * inbound webhook POST. SmartThings signs requests with its rotating x.509 "Padlock CA"
45
+ * certificate (signatureType ST_PADLOCK); the public cert is served at
46
+ * `https://key.smartthings.com{keyId}` where keyId comes from the Authorization header.
47
+ *
48
+ * Every code path is total: any malformed input, fetch failure, or crypto error resolves
49
+ * to `false` (=> the caller returns 401). Nothing here throws to the request handler.
50
+ */
51
+ const KEY_HOST = 'https://key.smartthings.com';
52
+ const KEY_FETCH_TIMEOUT_MS = 5000;
53
+ // Hard cap so a cache entry can never outlive this even if validTo parsing misbehaves.
54
+ const CERT_TTL_CAP_MS = 24 * 60 * 60 * 1000;
55
+ // Reject requests whose Date header is outside this window (anti-replay; tolerant of clock skew).
56
+ const DATE_SKEW_TOLERANCE_MS = 15 * 60 * 1000;
57
+ // Bound the cert cache and briefly remember failed fetches so a flood of distinct keyIds
58
+ // can't drive unbounded outbound requests to key.smartthings.com.
59
+ const MAX_CERT_CACHE_ENTRIES = 32;
60
+ const NEGATIVE_CACHE_TTL_MS = 60 * 1000;
61
+ // SmartThings always signs these; require them in the signed set so the digest/date checks
62
+ // are actually bound to the RSA signature rather than self-referential.
63
+ const REQUIRED_SIGNED_HEADERS = ['(request-target)', 'digest', 'date'];
64
+ // keyId is attacker-influenced (it comes from the request header); only allow a safe path shape.
65
+ const KEY_ID_PATTERN = /^\/[A-Za-z0-9._\-/]+$/;
66
+ class SignatureVerifier {
67
+ constructor(log) {
68
+ this.log = log;
69
+ this.certCache = new Map();
70
+ this.inFlight = new Map();
71
+ this.negativeCache = new Map();
72
+ }
73
+ /**
74
+ * Returns true only if the request carries a valid, fresh SmartThings signature over the
75
+ * given raw body. Logs a specific reason on failure to aid diagnosis of 401s.
76
+ */
77
+ async verify(rawBody, method, path, headers) {
78
+ try {
79
+ const parsed = this.parseSignatureHeader(headers['authorization']);
80
+ if (!parsed) {
81
+ this.log.warn('Webhook signature: missing or malformed Authorization signature header');
82
+ return false;
83
+ }
84
+ // The RSA signature only authenticates the headers listed in `headers="..."`. Require the
85
+ // body-/replay-binding headers to be present, else digest/date are checked but not signed.
86
+ const signedSet = parsed.headers.map(h => h.toLowerCase());
87
+ if (!REQUIRED_SIGNED_HEADERS.every(h => signedSet.includes(h))) {
88
+ this.log.warn('Webhook signature: signed header list must include (request-target), digest, and date');
89
+ return false;
90
+ }
91
+ if (!this.verifyDigest(rawBody, headers['digest'])) {
92
+ this.log.warn('Webhook signature: body digest mismatch');
93
+ return false;
94
+ }
95
+ if (!this.verifyDateFreshness(headers['date'])) {
96
+ return false;
97
+ }
98
+ const signingString = this.buildSigningString(parsed.headers, method, path, headers);
99
+ if (signingString === null) {
100
+ this.log.warn('Webhook signature: could not build signing string (a signed header is missing)');
101
+ return false;
102
+ }
103
+ const certPem = await this.getCertificate(parsed.keyId);
104
+ if (!certPem) {
105
+ this.log.warn(`Webhook signature: could not obtain certificate for keyId ${parsed.keyId}`);
106
+ return false;
107
+ }
108
+ if (!this.rsaVerify(signingString, parsed.signature, certPem)) {
109
+ this.log.warn('Webhook signature: RSA signature verification failed');
110
+ return false;
111
+ }
112
+ return true;
113
+ }
114
+ catch (error) {
115
+ this.log.warn('Webhook signature: unexpected error during verification:', error);
116
+ return false;
117
+ }
118
+ }
119
+ /**
120
+ * Parses `Authorization: Signature keyId="...",signature="...",headers="...",algorithm="..."`.
121
+ * Returns null if the scheme is wrong or any required member is missing.
122
+ */
123
+ parseSignatureHeader(authHeader) {
124
+ if (typeof authHeader !== 'string') {
125
+ return null;
126
+ }
127
+ const trimmed = authHeader.trim();
128
+ if (!/^signature\s+/i.test(trimmed)) {
129
+ return null;
130
+ }
131
+ const paramStr = trimmed.replace(/^signature\s+/i, '');
132
+ const params = {};
133
+ const re = /(\w+)\s*=\s*"([^"]*)"/g;
134
+ let match;
135
+ while ((match = re.exec(paramStr)) !== null) {
136
+ params[match[1].toLowerCase()] = match[2];
137
+ }
138
+ const keyId = params['keyid'];
139
+ const signature = params['signature'];
140
+ const headers = params['headers'];
141
+ const algorithm = params['algorithm'];
142
+ if (!keyId || !signature || !headers || !algorithm) {
143
+ return null;
144
+ }
145
+ return {
146
+ keyId,
147
+ signature,
148
+ headers: headers.split(/\s+/).filter(h => h.length > 0),
149
+ algorithm,
150
+ };
151
+ }
152
+ /**
153
+ * Confirms base64(sha256(rawBody)) equals the value in the Digest header.
154
+ * Accepts both `SHA256=` and `SHA-256=` prefixes.
155
+ */
156
+ verifyDigest(rawBody, digestHeader) {
157
+ if (typeof digestHeader !== 'string') {
158
+ return false;
159
+ }
160
+ const m = /^\s*SHA-?256\s*=\s*(.+?)\s*$/i.exec(digestHeader);
161
+ if (!m) {
162
+ return false;
163
+ }
164
+ const expected = m[1];
165
+ const actual = crypto.createHash('sha256').update(rawBody).digest('base64');
166
+ const expectedBuf = Buffer.from(expected);
167
+ const actualBuf = Buffer.from(actual);
168
+ if (expectedBuf.length !== actualBuf.length) {
169
+ return false;
170
+ }
171
+ return crypto.timingSafeEqual(expectedBuf, actualBuf);
172
+ }
173
+ /**
174
+ * Rejects requests whose Date header is missing, unparseable, or outside the skew tolerance.
175
+ */
176
+ verifyDateFreshness(dateHeader) {
177
+ if (typeof dateHeader !== 'string') {
178
+ this.log.warn('Webhook signature: missing Date header');
179
+ return false;
180
+ }
181
+ const dateMs = Date.parse(dateHeader);
182
+ if (Number.isNaN(dateMs)) {
183
+ this.log.warn('Webhook signature: unparseable Date header');
184
+ return false;
185
+ }
186
+ const skew = Math.abs(Date.now() - dateMs);
187
+ if (skew > DATE_SKEW_TOLERANCE_MS) {
188
+ this.log.warn(`Webhook signature: Date header outside ${DATE_SKEW_TOLERANCE_MS / 60000}-minute window ` +
189
+ `(skew ${Math.round(skew / 1000)}s) - rejecting as stale/replayed. Check the host clock if this is unexpected.`);
190
+ return false;
191
+ }
192
+ return true;
193
+ }
194
+ /**
195
+ * Builds the signing string from the signed header list, verbatim and in order.
196
+ * `(request-target)` => "<method> <path>"; every other token => "<name>: <value>".
197
+ * Returns null if any named header is absent or multi-valued.
198
+ */
199
+ buildSigningString(headerList, method, path, headers) {
200
+ const lines = [];
201
+ for (const name of headerList) {
202
+ if (name === '(request-target)') {
203
+ lines.push(`(request-target): ${(method || '').toLowerCase()} ${path}`);
204
+ continue;
205
+ }
206
+ const value = headers[name];
207
+ if (value === undefined || Array.isArray(value)) {
208
+ return null;
209
+ }
210
+ lines.push(`${name}: ${value}`);
211
+ }
212
+ return lines.join('\n');
213
+ }
214
+ /**
215
+ * Returns the PEM cert for a keyId, using a per-keyId cache and de-duplicating concurrent
216
+ * fetches. keyId rotation is handled implicitly: a new keyId is simply a new cache key.
217
+ */
218
+ async getCertificate(keyId) {
219
+ this.pruneExpired();
220
+ const cached = this.certCache.get(keyId);
221
+ if (cached && Date.now() < cached.expiresAt) {
222
+ return cached.pem;
223
+ }
224
+ const negativeUntil = this.negativeCache.get(keyId);
225
+ if (negativeUntil !== undefined && Date.now() < negativeUntil) {
226
+ return null;
227
+ }
228
+ const existing = this.inFlight.get(keyId);
229
+ if (existing) {
230
+ return existing;
231
+ }
232
+ const fetchPromise = this.fetchCertificate(keyId)
233
+ .then(pem => {
234
+ if (pem) {
235
+ this.evictIfFull();
236
+ this.certCache.set(keyId, { pem, expiresAt: this.computeExpiry(pem) });
237
+ }
238
+ else {
239
+ this.negativeCache.set(keyId, Date.now() + NEGATIVE_CACHE_TTL_MS);
240
+ }
241
+ return pem;
242
+ })
243
+ .finally(() => {
244
+ this.inFlight.delete(keyId);
245
+ });
246
+ this.inFlight.set(keyId, fetchPromise);
247
+ return fetchPromise;
248
+ }
249
+ async fetchCertificate(keyId) {
250
+ // Defend against keyId injecting an absolute URL / different host or scheme, or a flood of
251
+ // distinct malformed keyIds. Only a plain key-path shape is allowed.
252
+ if (!KEY_ID_PATTERN.test(keyId)) {
253
+ this.log.warn(`Webhook signature: refusing to fetch certificate for malformed keyId ${keyId}`);
254
+ return null;
255
+ }
256
+ try {
257
+ const resp = await axios_1.default.get(`${KEY_HOST}${keyId}`, {
258
+ timeout: KEY_FETCH_TIMEOUT_MS,
259
+ responseType: 'text',
260
+ maxRedirects: 0,
261
+ validateStatus: status => status === 200,
262
+ });
263
+ return typeof resp.data === 'string' ? resp.data : String(resp.data);
264
+ }
265
+ catch (error) {
266
+ this.log.warn(`Webhook signature: failed to fetch certificate ${keyId}:`, error instanceof Error ? error.message : error);
267
+ return null;
268
+ }
269
+ }
270
+ computeExpiry(pem) {
271
+ const cap = Date.now() + CERT_TTL_CAP_MS;
272
+ try {
273
+ const validTo = Date.parse(new crypto.X509Certificate(pem).validTo);
274
+ if (!Number.isNaN(validTo)) {
275
+ return Math.min(validTo, cap);
276
+ }
277
+ }
278
+ catch (_a) {
279
+ // Fall through to the hard cap if the cert can't be parsed for an expiry.
280
+ }
281
+ return cap;
282
+ }
283
+ rsaVerify(signingString, signatureB64, certPem) {
284
+ try {
285
+ return crypto
286
+ .createVerify('RSA-SHA256')
287
+ .update(signingString)
288
+ .verify(certPem, signatureB64, 'base64');
289
+ }
290
+ catch (error) {
291
+ this.log.debug('Webhook signature: crypto verify threw:', error);
292
+ return false;
293
+ }
294
+ }
295
+ pruneExpired() {
296
+ const now = Date.now();
297
+ for (const [keyId, entry] of this.certCache) {
298
+ if (now >= entry.expiresAt) {
299
+ this.certCache.delete(keyId);
300
+ }
301
+ }
302
+ for (const [keyId, until] of this.negativeCache) {
303
+ if (now >= until) {
304
+ this.negativeCache.delete(keyId);
305
+ }
306
+ }
307
+ }
308
+ // Bound cache growth: if at capacity, drop the oldest entry (Map preserves insertion order).
309
+ evictIfFull() {
310
+ while (this.certCache.size >= MAX_CERT_CACHE_ENTRIES) {
311
+ const oldest = this.certCache.keys().next().value;
312
+ if (oldest === undefined) {
313
+ break;
314
+ }
315
+ this.certCache.delete(oldest);
316
+ }
317
+ }
318
+ }
319
+ exports.SignatureVerifier = SignatureVerifier;
320
+ //# sourceMappingURL=signatureVerifier.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signatureVerifier.js","sourceRoot":"","sources":["../../src/webhook/signatureVerifier.ts"],"names":[],"mappings":"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"}
@@ -9,11 +9,15 @@ export declare class WebhookServer {
9
9
  private eventHandlers;
10
10
  private authHandler;
11
11
  private isRunning;
12
+ private verifyEnabled;
13
+ private signatureVerifier;
12
14
  constructor(platform: IKHomeBridgeHomebridgePlatform, log: Logger);
13
15
  private startServer;
14
16
  setAuthHandler(auth: SmartThingsAuth): void;
15
17
  private handleOAuthCallback;
16
18
  private handleIncomingPost;
19
+ private handleLegacyPost;
20
+ private handleVerifiedPost;
17
21
  private handleSmartThingsLifecycle;
18
22
  private handlePing;
19
23
  private handleConfirmation;
@@ -1 +1 @@
1
- {"version":3,"file":"webhookServer.d.ts","sourceRoot":"","sources":["../../src/webhook/webhookServer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAGpC,OAAO,EAAE,8BAA8B,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAGnD,qBAAa,aAAa;IAOtB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,GAAG;IAPtB,OAAO,CAAC,MAAM,CAA4B;IAC1C,OAAO,CAAC,aAAa,CAAuC;IAC5D,OAAO,CAAC,WAAW,CAAgC;IACnD,OAAO,CAAC,SAAS,CAAS;gBAGP,QAAQ,EAAE,8BAA8B,EACxC,GAAG,EAAE,MAAM;IAa9B,OAAO,CAAC,WAAW;IAgCZ,cAAc,CAAC,IAAI,EAAE,eAAe,GAAG,IAAI;YAIpC,mBAAmB;YAanB,kBAAkB;IAmDhC,OAAO,CAAC,0BAA0B;IAgClC,OAAO,CAAC,UAAU;IAclB,OAAO,CAAC,kBAAkB;IAsB1B,OAAO,CAAC,oBAAoB;IAqC5B,OAAO,CAAC,aAAa;IAcrB,OAAO,CAAC,qBAAqB;IAwBtB,eAAe,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,GAAG,IAAI;IAIlE,OAAO,CAAC,mBAAmB;IAUpB,IAAI,IAAI,IAAI;IAOZ,eAAe,IAAI,OAAO;CAGlC"}
1
+ {"version":3,"file":"webhookServer.d.ts","sourceRoot":"","sources":["../../src/webhook/webhookServer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAGpC,OAAO,EAAE,8BAA8B,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AASnD,qBAAa,aAAa;IAStB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,GAAG;IATtB,OAAO,CAAC,MAAM,CAA4B;IAC1C,OAAO,CAAC,aAAa,CAAuC;IAC5D,OAAO,CAAC,WAAW,CAAgC;IACnD,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,iBAAiB,CAAkC;gBAGxC,QAAQ,EAAE,8BAA8B,EACxC,GAAG,EAAE,MAAM;IA6B9B,OAAO,CAAC,WAAW;IAgCZ,cAAc,CAAC,IAAI,EAAE,eAAe,GAAG,IAAI;YAIpC,mBAAmB;YAanB,kBAAkB;IAkDhC,OAAO,CAAC,gBAAgB;YAwCV,kBAAkB;IAgChC,OAAO,CAAC,0BAA0B;IAgClC,OAAO,CAAC,UAAU;IAclB,OAAO,CAAC,kBAAkB;IA4B1B,OAAO,CAAC,oBAAoB;IAqC5B,OAAO,CAAC,aAAa;IAcrB,OAAO,CAAC,qBAAqB;IAwBtB,eAAe,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,GAAG,IAAI;IAIlE,OAAO,CAAC,mBAAmB;IAUpB,IAAI,IAAI,IAAI;IAOZ,eAAe,IAAI,OAAO;CAGlC"}
@@ -39,7 +39,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
39
39
  exports.WebhookServer = void 0;
40
40
  const http = __importStar(require("http"));
41
41
  const url = __importStar(require("url"));
42
+ const signatureVerifier_1 = require("./signatureVerifier");
42
43
  const axios_1 = __importDefault(require("axios"));
44
+ // Lifecycles we process when signature verification is enabled. Anything else is dropped (400).
45
+ const KNOWN_LIFECYCLES = ['PING', 'CONFIRMATION', 'INSTALL', 'UPDATE', 'UNINSTALL', 'CONFIGURATION', 'EVENT'];
46
+ // Cap the inbound body on the public webhook endpoint. SmartThings lifecycle payloads are well under 1 KB.
47
+ const MAX_BODY_BYTES = 1024 * 1024;
43
48
  class WebhookServer {
44
49
  constructor(platform, log) {
45
50
  this.platform = platform;
@@ -48,6 +53,26 @@ class WebhookServer {
48
53
  this.eventHandlers = [];
49
54
  this.authHandler = null;
50
55
  this.isRunning = false;
56
+ this.verifyEnabled = false;
57
+ this.signatureVerifier = null;
58
+ // Opt-in HTTP signature verification of inbound SmartThings webhooks.
59
+ if (this.platform.config.verifyWebhookSignatures === true) {
60
+ const serverUrl = (this.platform.config.server_url || '').trim();
61
+ if (serverUrl === '') {
62
+ // Polling-only setup: the webhook server never starts, so the flag is a harmless no-op.
63
+ this.log.debug('verifyWebhookSignatures is set but no Server URL is configured - this setting only ' +
64
+ 'applies to the webhook route, so it has no effect in polling mode.');
65
+ }
66
+ else if (serverUrl.toLowerCase().startsWith('https://')) {
67
+ this.verifyEnabled = true;
68
+ this.signatureVerifier = new signatureVerifier_1.SignatureVerifier(this.log);
69
+ this.log.info('Webhook signature verification is ENABLED - unsigned/invalid requests will be rejected with 401');
70
+ }
71
+ else {
72
+ this.log.error('verifyWebhookSignatures is enabled but Server URL is not https. ' +
73
+ 'Signature verification is DISABLED for this run. Set an https Server URL to enable it.');
74
+ }
75
+ }
51
76
  // Only start the webhook server if server_url is configured
52
77
  // This is needed for both OAuth callback (traditional flow) and device events
53
78
  if (this.platform.config.server_url && this.platform.config.server_url.trim() !== '') {
@@ -107,46 +132,43 @@ class WebhookServer {
107
132
  }
108
133
  async handleIncomingPost(req, res) {
109
134
  try {
110
- let body = '';
135
+ // Accumulate as Buffer so signature verification can hash the exact received bytes.
136
+ const chunks = [];
137
+ let totalBytes = 0;
138
+ let aborted = false;
111
139
  req.on('data', chunk => {
112
- body += chunk.toString();
140
+ if (aborted) {
141
+ return;
142
+ }
143
+ const buf = Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk);
144
+ totalBytes += buf.length;
145
+ if (totalBytes > MAX_BODY_BYTES) {
146
+ // Guard a public endpoint against memory exhaustion. SmartThings payloads are tiny.
147
+ aborted = true;
148
+ this.log.warn('Rejected webhook POST on / - request body exceeds size limit (413)');
149
+ res.writeHead(413);
150
+ res.end();
151
+ req.destroy();
152
+ return;
153
+ }
154
+ chunks.push(buf);
113
155
  });
114
156
  req.on('end', () => {
115
- // Empty POSTs (tunnel/SmartThings health checks) must be acked, not 400'd —
116
- // a 400 can be treated by SmartThings as a failed lifecycle delivery.
117
- if (body.trim() === '') {
118
- this.log.debug('Received empty POST body on /, acknowledging');
119
- res.writeHead(200);
120
- res.end();
157
+ if (aborted) {
121
158
  return;
122
159
  }
123
- try {
124
- const parsed = JSON.parse(body);
125
- // Detect SmartThings lifecycle format
126
- // SmartApps use "lifecycle", API_ONLY/Connected Service apps use "messageType"
127
- const lifecycleType = parsed.lifecycle || parsed.messageType;
128
- if (lifecycleType) {
129
- parsed.lifecycle = lifecycleType; // Normalize to "lifecycle" for handler
130
- this.handleSmartThingsLifecycle(parsed, res);
131
- }
132
- else if (parsed.deviceId && parsed.capability) {
133
- // Legacy direct ShortEvent format (for compatibility)
134
- this.notifyEventHandlers(parsed);
135
- res.writeHead(200);
136
- res.end();
137
- }
138
- else {
139
- this.log.debug('Received unknown POST format on /, ignoring');
140
- res.writeHead(200);
141
- res.end();
142
- }
160
+ const rawBody = Buffer.concat(chunks);
161
+ if (this.verifyEnabled) {
162
+ this.handleVerifiedPost(rawBody, req, res).catch(error => {
163
+ this.log.error('Error handling verified webhook POST:', error);
164
+ if (!res.writableEnded) {
165
+ res.writeHead(500);
166
+ res.end();
167
+ }
168
+ });
143
169
  }
144
- catch (error) {
145
- // Malformed body — ack with 200 so SmartThings doesn't mark a lifecycle
146
- // delivery as failed; log for visibility.
147
- this.log.warn('Received unparseable POST body on /, acknowledging:', error);
148
- res.writeHead(200);
149
- res.end();
170
+ else {
171
+ this.handleLegacyPost(rawBody.toString(), res);
150
172
  }
151
173
  });
152
174
  }
@@ -156,6 +178,79 @@ class WebhookServer {
156
178
  res.end();
157
179
  }
158
180
  }
181
+ // Unauthenticated path (default). Behavior is unchanged from prior releases: every
182
+ // non-error case acks with 200 so SmartThings never marks a delivery as failed.
183
+ handleLegacyPost(body, res) {
184
+ // Empty POSTs (tunnel/SmartThings health checks) must be acked, not 400'd —
185
+ // a 400 can be treated by SmartThings as a failed lifecycle delivery.
186
+ if (body.trim() === '') {
187
+ this.log.debug('Received empty POST body on /, acknowledging');
188
+ res.writeHead(200);
189
+ res.end();
190
+ return;
191
+ }
192
+ try {
193
+ const parsed = JSON.parse(body);
194
+ // Detect SmartThings lifecycle format
195
+ // SmartApps use "lifecycle", API_ONLY/Connected Service apps use "messageType"
196
+ const lifecycleType = parsed.lifecycle || parsed.messageType;
197
+ if (lifecycleType) {
198
+ parsed.lifecycle = lifecycleType; // Normalize to "lifecycle" for handler
199
+ this.handleSmartThingsLifecycle(parsed, res);
200
+ }
201
+ else if (parsed.deviceId && parsed.capability) {
202
+ // Legacy direct ShortEvent format (for compatibility)
203
+ this.notifyEventHandlers(parsed);
204
+ res.writeHead(200);
205
+ res.end();
206
+ }
207
+ else {
208
+ this.log.debug('Received unknown POST format on /, ignoring');
209
+ res.writeHead(200);
210
+ res.end();
211
+ }
212
+ }
213
+ catch (error) {
214
+ // Malformed body — ack with 200 so SmartThings doesn't mark a lifecycle
215
+ // delivery as failed; log for visibility.
216
+ this.log.warn('Received unparseable POST body on /, acknowledging:', error);
217
+ res.writeHead(200);
218
+ res.end();
219
+ }
220
+ }
221
+ // Verified path (verifyWebhookSignatures enabled). Rejects anything without a valid
222
+ // SmartThings HTTP signature with 401, and only dispatches known lifecycles.
223
+ async handleVerifiedPost(rawBody, req, res) {
224
+ const path = url.parse(req.url || '/').pathname || '/';
225
+ const ok = await this.signatureVerifier.verify(rawBody, req.method, path, req.headers);
226
+ if (!ok) {
227
+ this.log.warn('Rejected webhook POST on / - HTTP signature verification failed (401)');
228
+ res.writeHead(401, { 'Content-Type': 'text/plain' });
229
+ res.end('Unauthorized');
230
+ return;
231
+ }
232
+ let parsed;
233
+ try {
234
+ parsed = JSON.parse(rawBody.toString());
235
+ }
236
+ catch (error) {
237
+ // The request was signed by SmartThings, so an unparseable body is anomalous - drop it.
238
+ this.log.warn('Dropping signed webhook POST with unparseable body (400):', error);
239
+ res.writeHead(400);
240
+ res.end();
241
+ return;
242
+ }
243
+ const lifecycleType = parsed.lifecycle || parsed.messageType;
244
+ if (lifecycleType && KNOWN_LIFECYCLES.includes(lifecycleType)) {
245
+ parsed.lifecycle = lifecycleType; // Normalize to "lifecycle" for handler
246
+ this.handleSmartThingsLifecycle(parsed, res);
247
+ }
248
+ else {
249
+ this.log.warn(`Dropping webhook POST with non-allowlisted lifecycle (lifecycle=${lifecycleType !== null && lifecycleType !== void 0 ? lifecycleType : 'none'}) (400)`);
250
+ res.writeHead(400);
251
+ res.end();
252
+ }
253
+ }
159
254
  handleSmartThingsLifecycle(body, res) {
160
255
  const lifecycle = body.lifecycle;
161
256
  this.log.debug(`Received SmartThings lifecycle event: ${lifecycle}`);
@@ -206,13 +301,20 @@ class WebhookServer {
206
301
  const confirmationUrl = (_a = body.confirmationData) === null || _a === void 0 ? void 0 : _a.confirmationUrl;
207
302
  if (confirmationUrl) {
208
303
  this.log.info('Received SmartThings CONFIRMATION - hitting confirmation URL');
209
- axios_1.default.get(confirmationUrl)
210
- .then(() => {
211
- this.log.info('Successfully confirmed SmartThings app registration');
212
- })
213
- .catch((error) => {
214
- this.log.error('Failed to confirm SmartThings app registration:', error);
215
- });
304
+ // Only call https URLs, never follow redirects, and time out — limits SSRF if a forged
305
+ // CONFIRMATION reaches this handler (always possible when verification is disabled).
306
+ if (typeof confirmationUrl === 'string' && /^https:\/\//i.test(confirmationUrl)) {
307
+ axios_1.default.get(confirmationUrl, { timeout: 5000, maxRedirects: 0 })
308
+ .then(() => {
309
+ this.log.info('Successfully confirmed SmartThings app registration');
310
+ })
311
+ .catch((error) => {
312
+ this.log.error('Failed to confirm SmartThings app registration:', error);
313
+ });
314
+ }
315
+ else {
316
+ this.log.error('Refusing to call non-https confirmation URL from CONFIRMATION lifecycle');
317
+ }
216
318
  const serverUrl = this.platform.config.server_url || '';
217
319
  res.writeHead(200, { 'Content-Type': 'application/json' });
218
320
  res.end(JSON.stringify({ targetUrl: serverUrl }));
@@ -1 +1 @@
1
- {"version":3,"file":"webhookServer.js","sourceRoot":"","sources":["../../src/webhook/webhookServer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"webhookServer.js","sourceRoot":"","sources":["../../src/webhook/webhookServer.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "private": false,
3
3
  "displayName": "Homebridge Smartthings oAuth Plugin",
4
4
  "name": "homebridge-smartthings-oauth",
5
- "version": "1.0.66",
5
+ "version": "1.0.67",
6
6
  "description": "Connects SmartThings devices to Homebridge. Automatically discovers devices.",
7
7
  "license": "Apache-2.0",
8
8
  "repository": {
@@ -19,7 +19,7 @@
19
19
  },
20
20
  "main": "dist/index.js",
21
21
  "scripts": {
22
- "lint": "eslint src/**.ts",
22
+ "lint": "eslint \"src/**/*.ts\"",
23
23
  "watch": "npm run build && npm link && nodemon",
24
24
  "build": "rimraf ./dist && tsc",
25
25
  "prepublishOnly": "npm run lint && npm run build"